vulkan_structs.hpp 4.9 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184591855918659187591885918959190591915919259193591945919559196591975919859199592005920159202592035920459205592065920759208592095921059211592125921359214592155921659217592185921959220592215922259223592245922559226592275922859229592305923159232592335923459235592365923759238592395924059241592425924359244592455924659247592485924959250592515925259253592545925559256592575925859259592605926159262592635926459265592665926759268592695927059271592725927359274592755927659277592785927959280592815928259283592845928559286592875928859289592905929159292592935929459295592965929759298592995930059301593025930359304593055930659307593085930959310593115931259313593145931559316593175931859319593205932159322593235932459325593265932759328593295933059331593325933359334593355933659337593385933959340593415934259343593445934559346593475934859349593505935159352593535935459355593565935759358593595936059361593625936359364593655936659367593685936959370593715937259373593745937559376593775937859379593805938159382593835938459385593865938759388593895939059391593925939359394593955939659397593985939959400594015940259403594045940559406594075940859409594105941159412594135941459415594165941759418594195942059421594225942359424594255942659427594285942959430594315943259433594345943559436594375943859439594405944159442594435944459445594465944759448594495945059451594525945359454594555945659457594585945959460594615946259463594645946559466594675946859469594705947159472594735947459475594765947759478594795948059481594825948359484594855948659487594885948959490594915949259493594945949559496594975949859499595005950159502595035950459505595065950759508595095951059511595125951359514595155951659517595185951959520595215952259523595245952559526595275952859529595305953159532595335953459535595365953759538595395954059541595425954359544595455954659547595485954959550595515955259553595545955559556595575955859559595605956159562595635956459565595665956759568595695957059571595725957359574595755957659577595785957959580595815958259583595845958559586595875958859589595905959159592595935959459595595965959759598595995960059601596025960359604596055960659607596085960959610596115961259613596145961559616596175961859619596205962159622596235962459625596265962759628596295963059631596325963359634596355963659637596385963959640596415964259643596445964559646596475964859649596505965159652596535965459655596565965759658596595966059661596625966359664596655966659667596685966959670596715967259673596745967559676596775967859679596805968159682596835968459685596865968759688596895969059691596925969359694596955969659697596985969959700597015970259703597045970559706597075970859709597105971159712597135971459715597165971759718597195972059721597225972359724597255972659727597285972959730597315973259733597345973559736597375973859739597405974159742597435974459745597465974759748597495975059751597525975359754597555975659757597585975959760597615976259763597645976559766597675976859769597705977159772597735977459775597765977759778597795978059781597825978359784597855978659787597885978959790597915979259793597945979559796597975979859799598005980159802598035980459805598065980759808598095981059811598125981359814598155981659817598185981959820598215982259823598245982559826598275982859829598305983159832598335983459835598365983759838598395984059841598425984359844598455984659847598485984959850598515985259853598545985559856598575985859859598605986159862598635986459865598665986759868598695987059871598725987359874598755987659877598785987959880598815988259883598845988559886598875988859889598905989159892598935989459895598965989759898598995990059901599025990359904599055990659907599085990959910599115991259913599145991559916599175991859919599205992159922599235992459925599265992759928599295993059931599325993359934599355993659937599385993959940599415994259943599445994559946599475994859949599505995159952599535995459955599565995759958599595996059961599625996359964599655996659967599685996959970599715997259973599745997559976599775997859979599805998159982599835998459985599865998759988599895999059991599925999359994599955999659997599985999960000600016000260003600046000560006600076000860009600106001160012600136001460015600166001760018600196002060021600226002360024600256002660027600286002960030600316003260033600346003560036600376003860039600406004160042600436004460045600466004760048600496005060051600526005360054600556005660057600586005960060600616006260063600646006560066600676006860069600706007160072600736007460075600766007760078600796008060081600826008360084600856008660087600886008960090600916009260093600946009560096600976009860099601006010160102601036010460105601066010760108601096011060111601126011360114601156011660117601186011960120601216012260123601246012560126601276012860129601306013160132601336013460135601366013760138601396014060141601426014360144601456014660147601486014960150601516015260153601546015560156601576015860159601606016160162601636016460165601666016760168601696017060171601726017360174601756017660177601786017960180601816018260183601846018560186601876018860189601906019160192601936019460195601966019760198601996020060201602026020360204602056020660207602086020960210602116021260213602146021560216602176021860219602206022160222602236022460225602266022760228602296023060231602326023360234602356023660237602386023960240602416024260243602446024560246602476024860249602506025160252602536025460255602566025760258602596026060261602626026360264602656026660267602686026960270602716027260273602746027560276602776027860279602806028160282602836028460285602866028760288602896029060291602926029360294602956029660297602986029960300603016030260303603046030560306603076030860309603106031160312603136031460315603166031760318603196032060321603226032360324603256032660327603286032960330603316033260333603346033560336603376033860339603406034160342603436034460345603466034760348603496035060351603526035360354603556035660357603586035960360603616036260363603646036560366603676036860369603706037160372603736037460375603766037760378603796038060381603826038360384603856038660387603886038960390603916039260393603946039560396603976039860399604006040160402604036040460405604066040760408604096041060411604126041360414604156041660417604186041960420604216042260423604246042560426604276042860429604306043160432604336043460435604366043760438604396044060441604426044360444604456044660447604486044960450604516045260453604546045560456604576045860459604606046160462604636046460465604666046760468604696047060471604726047360474604756047660477604786047960480604816048260483604846048560486604876048860489604906049160492604936049460495604966049760498604996050060501605026050360504605056050660507605086050960510605116051260513605146051560516605176051860519605206052160522605236052460525605266052760528605296053060531605326053360534605356053660537605386053960540605416054260543605446054560546605476054860549605506055160552605536055460555605566055760558605596056060561605626056360564605656056660567605686056960570605716057260573605746057560576605776057860579605806058160582605836058460585605866058760588605896059060591605926059360594605956059660597605986059960600606016060260603606046060560606606076060860609606106061160612606136061460615606166061760618606196062060621606226062360624606256062660627606286062960630606316063260633606346063560636606376063860639606406064160642606436064460645606466064760648606496065060651606526065360654606556065660657606586065960660606616066260663606646066560666606676066860669606706067160672606736067460675606766067760678606796068060681606826068360684606856068660687606886068960690606916069260693606946069560696606976069860699607006070160702607036070460705607066070760708607096071060711607126071360714607156071660717607186071960720607216072260723607246072560726607276072860729607306073160732607336073460735607366073760738607396074060741607426074360744607456074660747607486074960750607516075260753607546075560756607576075860759607606076160762607636076460765607666076760768607696077060771607726077360774607756077660777607786077960780607816078260783607846078560786607876078860789607906079160792607936079460795607966079760798607996080060801608026080360804608056080660807608086080960810608116081260813608146081560816608176081860819608206082160822608236082460825608266082760828608296083060831608326083360834608356083660837608386083960840608416084260843608446084560846608476084860849608506085160852608536085460855608566085760858608596086060861608626086360864608656086660867608686086960870608716087260873608746087560876608776087860879608806088160882608836088460885608866088760888608896089060891608926089360894608956089660897608986089960900609016090260903609046090560906609076090860909609106091160912609136091460915609166091760918609196092060921609226092360924609256092660927609286092960930609316093260933609346093560936609376093860939609406094160942609436094460945609466094760948609496095060951609526095360954609556095660957609586095960960609616096260963609646096560966609676096860969609706097160972609736097460975609766097760978609796098060981609826098360984609856098660987609886098960990609916099260993609946099560996609976099860999610006100161002610036100461005610066100761008610096101061011610126101361014610156101661017610186101961020610216102261023610246102561026610276102861029610306103161032610336103461035610366103761038610396104061041610426104361044610456104661047610486104961050610516105261053610546105561056610576105861059610606106161062610636106461065610666106761068610696107061071610726107361074610756107661077610786107961080610816108261083610846108561086610876108861089610906109161092610936109461095610966109761098610996110061101611026110361104611056110661107611086110961110611116111261113611146111561116611176111861119611206112161122611236112461125611266112761128611296113061131611326113361134611356113661137611386113961140611416114261143611446114561146611476114861149611506115161152611536115461155611566115761158611596116061161611626116361164611656116661167611686116961170611716117261173611746117561176611776117861179611806118161182611836118461185611866118761188611896119061191611926119361194611956119661197611986119961200612016120261203612046120561206612076120861209612106121161212612136121461215612166121761218612196122061221612226122361224612256122661227612286122961230612316123261233612346123561236612376123861239612406124161242612436124461245612466124761248612496125061251612526125361254612556125661257612586125961260612616126261263612646126561266612676126861269612706127161272612736127461275612766127761278612796128061281612826128361284612856128661287612886128961290612916129261293612946129561296612976129861299613006130161302613036130461305613066130761308613096131061311613126131361314613156131661317613186131961320613216132261323613246132561326613276132861329613306133161332613336133461335613366133761338613396134061341613426134361344613456134661347613486134961350613516135261353613546135561356613576135861359613606136161362613636136461365613666136761368613696137061371613726137361374613756137661377613786137961380613816138261383613846138561386613876138861389613906139161392613936139461395613966139761398613996140061401614026140361404614056140661407614086140961410614116141261413614146141561416614176141861419614206142161422614236142461425614266142761428614296143061431614326143361434614356143661437614386143961440614416144261443614446144561446614476144861449614506145161452614536145461455614566145761458614596146061461614626146361464614656146661467614686146961470614716147261473614746147561476614776147861479614806148161482614836148461485614866148761488614896149061491614926149361494614956149661497614986149961500615016150261503615046150561506615076150861509615106151161512615136151461515615166151761518615196152061521615226152361524615256152661527615286152961530615316153261533615346153561536615376153861539615406154161542615436154461545615466154761548615496155061551615526155361554615556155661557615586155961560615616156261563615646156561566615676156861569615706157161572615736157461575615766157761578615796158061581615826158361584615856158661587615886158961590615916159261593615946159561596615976159861599616006160161602616036160461605616066160761608616096161061611616126161361614616156161661617616186161961620616216162261623616246162561626616276162861629616306163161632616336163461635616366163761638616396164061641616426164361644616456164661647616486164961650616516165261653616546165561656616576165861659616606166161662616636166461665616666166761668616696167061671616726167361674616756167661677616786167961680616816168261683616846168561686616876168861689616906169161692616936169461695616966169761698616996170061701617026170361704617056170661707617086170961710617116171261713617146171561716617176171861719617206172161722617236172461725617266172761728617296173061731617326173361734617356173661737617386173961740617416174261743617446174561746617476174861749617506175161752617536175461755617566175761758617596176061761617626176361764617656176661767617686176961770617716177261773617746177561776617776177861779617806178161782617836178461785617866178761788617896179061791617926179361794617956179661797617986179961800618016180261803618046180561806618076180861809618106181161812618136181461815618166181761818618196182061821618226182361824618256182661827618286182961830618316183261833618346183561836618376183861839618406184161842618436184461845618466184761848618496185061851618526185361854618556185661857618586185961860618616186261863618646186561866618676186861869618706187161872618736187461875618766187761878618796188061881618826188361884618856188661887618886188961890618916189261893618946189561896618976189861899619006190161902619036190461905619066190761908619096191061911619126191361914619156191661917619186191961920619216192261923619246192561926619276192861929619306193161932619336193461935619366193761938619396194061941619426194361944619456194661947619486194961950619516195261953619546195561956619576195861959619606196161962619636196461965619666196761968619696197061971619726197361974619756197661977619786197961980619816198261983619846198561986619876198861989619906199161992619936199461995619966199761998619996200062001620026200362004620056200662007620086200962010620116201262013620146201562016620176201862019620206202162022620236202462025620266202762028620296203062031620326203362034620356203662037620386203962040620416204262043620446204562046620476204862049620506205162052620536205462055620566205762058620596206062061620626206362064620656206662067620686206962070620716207262073620746207562076620776207862079620806208162082620836208462085620866208762088620896209062091620926209362094620956209662097620986209962100621016210262103621046210562106621076210862109621106211162112621136211462115621166211762118621196212062121621226212362124621256212662127621286212962130621316213262133621346213562136621376213862139621406214162142621436214462145621466214762148621496215062151621526215362154621556215662157621586215962160621616216262163621646216562166621676216862169621706217162172621736217462175621766217762178621796218062181621826218362184621856218662187621886218962190621916219262193621946219562196621976219862199622006220162202622036220462205622066220762208622096221062211622126221362214622156221662217622186221962220622216222262223622246222562226622276222862229622306223162232622336223462235622366223762238622396224062241622426224362244622456224662247622486224962250622516225262253622546225562256622576225862259622606226162262622636226462265622666226762268622696227062271622726227362274622756227662277622786227962280622816228262283622846228562286622876228862289622906229162292622936229462295622966229762298622996230062301623026230362304623056230662307623086230962310623116231262313623146231562316623176231862319623206232162322623236232462325623266232762328623296233062331623326233362334623356233662337623386233962340623416234262343623446234562346623476234862349623506235162352623536235462355623566235762358623596236062361623626236362364623656236662367623686236962370623716237262373623746237562376623776237862379623806238162382623836238462385623866238762388623896239062391623926239362394623956239662397623986239962400624016240262403624046240562406624076240862409624106241162412624136241462415624166241762418624196242062421624226242362424624256242662427624286242962430624316243262433624346243562436624376243862439624406244162442624436244462445624466244762448624496245062451624526245362454624556245662457624586245962460624616246262463624646246562466624676246862469624706247162472624736247462475624766247762478624796248062481624826248362484624856248662487624886248962490624916249262493624946249562496624976249862499625006250162502625036250462505625066250762508625096251062511625126251362514625156251662517625186251962520625216252262523625246252562526625276252862529625306253162532625336253462535625366253762538625396254062541625426254362544625456254662547625486254962550625516255262553625546255562556625576255862559625606256162562625636256462565625666256762568625696257062571625726257362574625756257662577625786257962580625816258262583625846258562586625876258862589625906259162592625936259462595625966259762598625996260062601626026260362604626056260662607626086260962610626116261262613626146261562616626176261862619626206262162622626236262462625626266262762628626296263062631626326263362634626356263662637626386263962640626416264262643626446264562646626476264862649626506265162652626536265462655626566265762658626596266062661626626266362664626656266662667626686266962670626716267262673626746267562676626776267862679626806268162682626836268462685626866268762688626896269062691626926269362694626956269662697626986269962700627016270262703627046270562706627076270862709627106271162712627136271462715627166271762718627196272062721627226272362724627256272662727627286272962730627316273262733627346273562736627376273862739627406274162742627436274462745627466274762748627496275062751627526275362754627556275662757627586275962760627616276262763627646276562766627676276862769627706277162772627736277462775627766277762778627796278062781627826278362784627856278662787627886278962790627916279262793627946279562796627976279862799628006280162802628036280462805628066280762808628096281062811628126281362814628156281662817628186281962820628216282262823628246282562826628276282862829628306283162832628336283462835628366283762838628396284062841628426284362844628456284662847628486284962850628516285262853628546285562856628576285862859628606286162862628636286462865628666286762868628696287062871628726287362874628756287662877628786287962880628816288262883628846288562886628876288862889628906289162892628936289462895628966289762898628996290062901629026290362904629056290662907629086290962910629116291262913629146291562916629176291862919629206292162922629236292462925629266292762928629296293062931629326293362934629356293662937629386293962940629416294262943629446294562946629476294862949629506295162952629536295462955629566295762958629596296062961629626296362964629656296662967629686296962970629716297262973629746297562976629776297862979629806298162982629836298462985629866298762988629896299062991629926299362994629956299662997629986299963000630016300263003630046300563006630076300863009630106301163012630136301463015630166301763018630196302063021630226302363024630256302663027630286302963030630316303263033630346303563036630376303863039630406304163042630436304463045630466304763048630496305063051630526305363054630556305663057630586305963060630616306263063630646306563066630676306863069630706307163072630736307463075630766307763078630796308063081630826308363084630856308663087630886308963090630916309263093630946309563096630976309863099631006310163102631036310463105631066310763108631096311063111631126311363114631156311663117631186311963120631216312263123631246312563126631276312863129631306313163132631336313463135631366313763138631396314063141631426314363144631456314663147631486314963150631516315263153631546315563156631576315863159631606316163162631636316463165631666316763168631696317063171631726317363174631756317663177631786317963180631816318263183631846318563186631876318863189631906319163192631936319463195631966319763198631996320063201632026320363204632056320663207632086320963210632116321263213632146321563216632176321863219632206322163222632236322463225632266322763228632296323063231632326323363234632356323663237632386323963240632416324263243632446324563246632476324863249632506325163252632536325463255632566325763258632596326063261632626326363264632656326663267632686326963270632716327263273632746327563276632776327863279632806328163282632836328463285632866328763288632896329063291632926329363294632956329663297632986329963300633016330263303633046330563306633076330863309633106331163312633136331463315633166331763318633196332063321633226332363324633256332663327633286332963330633316333263333633346333563336633376333863339633406334163342633436334463345633466334763348633496335063351633526335363354633556335663357633586335963360633616336263363633646336563366633676336863369633706337163372633736337463375633766337763378633796338063381633826338363384633856338663387633886338963390633916339263393633946339563396633976339863399634006340163402634036340463405634066340763408634096341063411634126341363414634156341663417634186341963420634216342263423634246342563426634276342863429634306343163432634336343463435634366343763438634396344063441634426344363444634456344663447634486344963450634516345263453634546345563456634576345863459634606346163462634636346463465634666346763468634696347063471634726347363474634756347663477634786347963480634816348263483634846348563486634876348863489634906349163492634936349463495634966349763498634996350063501635026350363504635056350663507635086350963510635116351263513635146351563516635176351863519635206352163522635236352463525635266352763528635296353063531635326353363534635356353663537635386353963540635416354263543635446354563546635476354863549635506355163552635536355463555635566355763558635596356063561635626356363564635656356663567635686356963570635716357263573635746357563576635776357863579635806358163582635836358463585635866358763588635896359063591635926359363594635956359663597635986359963600636016360263603636046360563606636076360863609636106361163612636136361463615636166361763618636196362063621636226362363624636256362663627636286362963630636316363263633636346363563636636376363863639636406364163642636436364463645636466364763648636496365063651636526365363654636556365663657636586365963660636616366263663636646366563666636676366863669636706367163672636736367463675636766367763678636796368063681636826368363684636856368663687636886368963690636916369263693636946369563696636976369863699637006370163702637036370463705637066370763708637096371063711637126371363714637156371663717637186371963720637216372263723637246372563726637276372863729637306373163732637336373463735637366373763738637396374063741637426374363744637456374663747637486374963750637516375263753637546375563756637576375863759637606376163762637636376463765637666376763768637696377063771637726377363774637756377663777637786377963780637816378263783637846378563786637876378863789637906379163792637936379463795637966379763798637996380063801638026380363804638056380663807638086380963810638116381263813638146381563816638176381863819638206382163822638236382463825638266382763828638296383063831638326383363834638356383663837638386383963840638416384263843638446384563846638476384863849638506385163852638536385463855638566385763858638596386063861638626386363864638656386663867638686386963870638716387263873638746387563876638776387863879638806388163882638836388463885638866388763888638896389063891638926389363894638956389663897638986389963900639016390263903639046390563906639076390863909639106391163912639136391463915639166391763918639196392063921639226392363924639256392663927639286392963930639316393263933639346393563936639376393863939639406394163942639436394463945639466394763948639496395063951639526395363954639556395663957639586395963960639616396263963639646396563966639676396863969639706397163972639736397463975639766397763978639796398063981639826398363984639856398663987639886398963990639916399263993639946399563996639976399863999640006400164002640036400464005640066400764008640096401064011640126401364014640156401664017640186401964020640216402264023640246402564026640276402864029640306403164032640336403464035640366403764038640396404064041640426404364044640456404664047640486404964050640516405264053640546405564056640576405864059640606406164062640636406464065640666406764068640696407064071640726407364074640756407664077640786407964080640816408264083640846408564086640876408864089640906409164092640936409464095640966409764098640996410064101641026410364104641056410664107641086410964110641116411264113641146411564116641176411864119641206412164122641236412464125641266412764128641296413064131641326413364134641356413664137641386413964140641416414264143641446414564146641476414864149641506415164152641536415464155641566415764158641596416064161641626416364164641656416664167641686416964170641716417264173641746417564176641776417864179641806418164182641836418464185641866418764188641896419064191641926419364194641956419664197641986419964200642016420264203642046420564206642076420864209642106421164212642136421464215642166421764218642196422064221642226422364224642256422664227642286422964230642316423264233642346423564236642376423864239642406424164242642436424464245642466424764248642496425064251642526425364254642556425664257642586425964260642616426264263642646426564266642676426864269642706427164272642736427464275642766427764278642796428064281642826428364284642856428664287642886428964290642916429264293642946429564296642976429864299643006430164302643036430464305643066430764308643096431064311643126431364314643156431664317643186431964320643216432264323643246432564326643276432864329643306433164332643336433464335643366433764338643396434064341643426434364344643456434664347643486434964350643516435264353643546435564356643576435864359643606436164362643636436464365643666436764368643696437064371643726437364374643756437664377643786437964380643816438264383643846438564386643876438864389643906439164392643936439464395643966439764398643996440064401644026440364404644056440664407644086440964410644116441264413644146441564416644176441864419644206442164422644236442464425644266442764428644296443064431644326443364434644356443664437644386443964440644416444264443644446444564446644476444864449644506445164452644536445464455644566445764458644596446064461644626446364464644656446664467644686446964470644716447264473644746447564476644776447864479644806448164482644836448464485644866448764488644896449064491644926449364494644956449664497644986449964500645016450264503645046450564506645076450864509645106451164512645136451464515645166451764518645196452064521645226452364524645256452664527645286452964530645316453264533645346453564536645376453864539645406454164542645436454464545645466454764548645496455064551645526455364554645556455664557645586455964560645616456264563645646456564566645676456864569645706457164572645736457464575645766457764578645796458064581645826458364584645856458664587645886458964590645916459264593645946459564596645976459864599646006460164602646036460464605646066460764608646096461064611646126461364614646156461664617646186461964620646216462264623646246462564626646276462864629646306463164632646336463464635646366463764638646396464064641646426464364644646456464664647646486464964650646516465264653646546465564656646576465864659646606466164662646636466464665646666466764668646696467064671646726467364674646756467664677646786467964680646816468264683646846468564686646876468864689646906469164692646936469464695646966469764698646996470064701647026470364704647056470664707647086470964710647116471264713647146471564716647176471864719647206472164722647236472464725647266472764728647296473064731647326473364734647356473664737647386473964740647416474264743647446474564746647476474864749647506475164752647536475464755647566475764758647596476064761647626476364764647656476664767647686476964770647716477264773647746477564776647776477864779647806478164782647836478464785647866478764788647896479064791647926479364794647956479664797647986479964800648016480264803648046480564806648076480864809648106481164812648136481464815648166481764818648196482064821648226482364824648256482664827648286482964830648316483264833648346483564836648376483864839648406484164842648436484464845648466484764848648496485064851648526485364854648556485664857648586485964860648616486264863648646486564866648676486864869648706487164872648736487464875648766487764878648796488064881648826488364884648856488664887648886488964890648916489264893648946489564896648976489864899649006490164902649036490464905649066490764908649096491064911649126491364914649156491664917649186491964920649216492264923649246492564926649276492864929649306493164932649336493464935649366493764938649396494064941649426494364944649456494664947649486494964950649516495264953649546495564956649576495864959649606496164962649636496464965649666496764968649696497064971649726497364974649756497664977649786497964980649816498264983649846498564986649876498864989649906499164992649936499464995649966499764998649996500065001650026500365004650056500665007650086500965010650116501265013650146501565016650176501865019650206502165022650236502465025650266502765028650296503065031650326503365034650356503665037650386503965040650416504265043650446504565046650476504865049650506505165052650536505465055650566505765058650596506065061650626506365064650656506665067650686506965070650716507265073650746507565076650776507865079650806508165082650836508465085650866508765088650896509065091650926509365094650956509665097650986509965100651016510265103651046510565106651076510865109651106511165112651136511465115651166511765118651196512065121651226512365124651256512665127651286512965130651316513265133651346513565136651376513865139651406514165142651436514465145651466514765148651496515065151651526515365154651556515665157651586515965160651616516265163651646516565166651676516865169651706517165172651736517465175651766517765178651796518065181651826518365184651856518665187651886518965190651916519265193651946519565196651976519865199652006520165202652036520465205652066520765208652096521065211652126521365214652156521665217652186521965220652216522265223652246522565226652276522865229652306523165232652336523465235652366523765238652396524065241652426524365244652456524665247652486524965250652516525265253652546525565256652576525865259652606526165262652636526465265652666526765268652696527065271652726527365274652756527665277652786527965280652816528265283652846528565286652876528865289652906529165292652936529465295652966529765298652996530065301653026530365304653056530665307653086530965310653116531265313653146531565316653176531865319653206532165322653236532465325653266532765328653296533065331653326533365334653356533665337653386533965340653416534265343653446534565346653476534865349653506535165352653536535465355653566535765358653596536065361653626536365364653656536665367653686536965370653716537265373653746537565376653776537865379653806538165382653836538465385653866538765388653896539065391653926539365394653956539665397653986539965400654016540265403654046540565406654076540865409654106541165412654136541465415654166541765418654196542065421654226542365424654256542665427654286542965430654316543265433654346543565436654376543865439654406544165442654436544465445654466544765448654496545065451654526545365454654556545665457654586545965460654616546265463654646546565466654676546865469654706547165472654736547465475654766547765478654796548065481654826548365484654856548665487654886548965490654916549265493654946549565496654976549865499655006550165502655036550465505655066550765508655096551065511655126551365514655156551665517655186551965520655216552265523655246552565526655276552865529655306553165532655336553465535655366553765538655396554065541655426554365544655456554665547655486554965550655516555265553655546555565556655576555865559655606556165562655636556465565655666556765568655696557065571655726557365574655756557665577655786557965580655816558265583655846558565586655876558865589655906559165592655936559465595655966559765598655996560065601656026560365604656056560665607656086560965610656116561265613656146561565616656176561865619656206562165622656236562465625656266562765628656296563065631656326563365634656356563665637656386563965640656416564265643656446564565646656476564865649656506565165652656536565465655656566565765658656596566065661656626566365664656656566665667656686566965670656716567265673656746567565676656776567865679656806568165682656836568465685656866568765688656896569065691656926569365694656956569665697656986569965700657016570265703657046570565706657076570865709657106571165712657136571465715657166571765718657196572065721657226572365724657256572665727657286572965730657316573265733657346573565736657376573865739657406574165742657436574465745657466574765748657496575065751657526575365754657556575665757657586575965760657616576265763657646576565766657676576865769657706577165772657736577465775657766577765778657796578065781657826578365784657856578665787657886578965790657916579265793657946579565796657976579865799658006580165802658036580465805658066580765808658096581065811658126581365814658156581665817658186581965820658216582265823658246582565826658276582865829658306583165832658336583465835658366583765838658396584065841658426584365844658456584665847658486584965850658516585265853658546585565856658576585865859658606586165862658636586465865658666586765868658696587065871658726587365874658756587665877658786587965880658816588265883658846588565886658876588865889658906589165892658936589465895658966589765898658996590065901659026590365904659056590665907659086590965910659116591265913659146591565916659176591865919659206592165922659236592465925659266592765928659296593065931659326593365934659356593665937659386593965940659416594265943659446594565946659476594865949659506595165952659536595465955659566595765958659596596065961659626596365964659656596665967659686596965970659716597265973659746597565976659776597865979659806598165982659836598465985659866598765988659896599065991659926599365994659956599665997659986599966000660016600266003660046600566006660076600866009660106601166012660136601466015660166601766018660196602066021660226602366024660256602666027660286602966030660316603266033660346603566036660376603866039660406604166042660436604466045660466604766048660496605066051660526605366054660556605666057660586605966060660616606266063660646606566066660676606866069660706607166072660736607466075660766607766078660796608066081660826608366084660856608666087660886608966090660916609266093660946609566096660976609866099661006610166102661036610466105661066610766108661096611066111661126611366114661156611666117661186611966120661216612266123661246612566126661276612866129661306613166132661336613466135661366613766138661396614066141661426614366144661456614666147661486614966150661516615266153661546615566156661576615866159661606616166162661636616466165661666616766168661696617066171661726617366174661756617666177661786617966180661816618266183661846618566186661876618866189661906619166192661936619466195661966619766198661996620066201662026620366204662056620666207662086620966210662116621266213662146621566216662176621866219662206622166222662236622466225662266622766228662296623066231662326623366234662356623666237662386623966240662416624266243662446624566246662476624866249662506625166252662536625466255662566625766258662596626066261662626626366264662656626666267662686626966270662716627266273662746627566276662776627866279662806628166282662836628466285662866628766288662896629066291662926629366294662956629666297662986629966300663016630266303663046630566306663076630866309663106631166312663136631466315663166631766318663196632066321663226632366324663256632666327663286632966330663316633266333663346633566336663376633866339663406634166342663436634466345663466634766348663496635066351663526635366354663556635666357663586635966360663616636266363663646636566366663676636866369663706637166372663736637466375663766637766378663796638066381663826638366384663856638666387663886638966390663916639266393663946639566396663976639866399664006640166402664036640466405664066640766408664096641066411664126641366414664156641666417664186641966420664216642266423664246642566426664276642866429664306643166432664336643466435664366643766438664396644066441664426644366444664456644666447664486644966450664516645266453664546645566456664576645866459664606646166462664636646466465664666646766468664696647066471664726647366474664756647666477664786647966480664816648266483664846648566486664876648866489664906649166492664936649466495664966649766498664996650066501665026650366504665056650666507665086650966510665116651266513665146651566516665176651866519665206652166522665236652466525665266652766528665296653066531665326653366534665356653666537665386653966540665416654266543665446654566546665476654866549665506655166552665536655466555665566655766558665596656066561665626656366564665656656666567665686656966570665716657266573665746657566576665776657866579665806658166582665836658466585665866658766588665896659066591665926659366594665956659666597665986659966600666016660266603666046660566606666076660866609666106661166612666136661466615666166661766618666196662066621666226662366624666256662666627666286662966630666316663266633666346663566636666376663866639666406664166642666436664466645666466664766648666496665066651666526665366654666556665666657666586665966660666616666266663666646666566666666676666866669666706667166672666736667466675666766667766678666796668066681666826668366684666856668666687666886668966690666916669266693666946669566696666976669866699667006670166702667036670466705667066670766708667096671066711667126671366714667156671666717667186671966720667216672266723667246672566726667276672866729667306673166732667336673466735667366673766738667396674066741667426674366744667456674666747667486674966750667516675266753667546675566756667576675866759667606676166762667636676466765667666676766768667696677066771667726677366774667756677666777667786677966780667816678266783667846678566786667876678866789667906679166792667936679466795667966679766798667996680066801668026680366804668056680666807668086680966810668116681266813668146681566816668176681866819668206682166822668236682466825668266682766828668296683066831668326683366834668356683666837668386683966840668416684266843668446684566846668476684866849668506685166852668536685466855668566685766858668596686066861668626686366864668656686666867668686686966870668716687266873668746687566876668776687866879668806688166882668836688466885668866688766888668896689066891668926689366894668956689666897668986689966900669016690266903669046690566906669076690866909669106691166912669136691466915669166691766918669196692066921669226692366924669256692666927669286692966930669316693266933669346693566936669376693866939669406694166942669436694466945669466694766948669496695066951669526695366954669556695666957669586695966960669616696266963669646696566966669676696866969669706697166972669736697466975669766697766978669796698066981669826698366984669856698666987669886698966990669916699266993669946699566996669976699866999670006700167002670036700467005670066700767008670096701067011670126701367014670156701667017670186701967020670216702267023670246702567026670276702867029670306703167032670336703467035670366703767038670396704067041670426704367044670456704667047670486704967050670516705267053670546705567056670576705867059670606706167062670636706467065670666706767068670696707067071670726707367074670756707667077670786707967080670816708267083670846708567086670876708867089670906709167092670936709467095670966709767098670996710067101671026710367104671056710667107671086710967110671116711267113671146711567116671176711867119671206712167122671236712467125671266712767128671296713067131671326713367134671356713667137671386713967140671416714267143671446714567146671476714867149671506715167152671536715467155671566715767158671596716067161671626716367164671656716667167671686716967170671716717267173671746717567176671776717867179671806718167182671836718467185671866718767188671896719067191671926719367194671956719667197671986719967200672016720267203672046720567206672076720867209672106721167212672136721467215672166721767218672196722067221672226722367224672256722667227672286722967230672316723267233672346723567236672376723867239672406724167242672436724467245672466724767248672496725067251672526725367254672556725667257672586725967260672616726267263672646726567266672676726867269672706727167272672736727467275672766727767278672796728067281672826728367284672856728667287672886728967290672916729267293672946729567296672976729867299673006730167302673036730467305673066730767308673096731067311673126731367314673156731667317673186731967320673216732267323673246732567326673276732867329673306733167332673336733467335673366733767338673396734067341673426734367344673456734667347673486734967350673516735267353673546735567356673576735867359673606736167362673636736467365673666736767368673696737067371673726737367374673756737667377673786737967380673816738267383673846738567386673876738867389673906739167392673936739467395673966739767398673996740067401674026740367404674056740667407674086740967410674116741267413674146741567416674176741867419674206742167422674236742467425674266742767428674296743067431674326743367434674356743667437674386743967440674416744267443674446744567446674476744867449674506745167452674536745467455674566745767458674596746067461674626746367464674656746667467674686746967470674716747267473674746747567476674776747867479674806748167482674836748467485674866748767488674896749067491674926749367494674956749667497674986749967500675016750267503675046750567506675076750867509675106751167512675136751467515675166751767518675196752067521675226752367524675256752667527675286752967530675316753267533675346753567536675376753867539675406754167542675436754467545675466754767548675496755067551675526755367554675556755667557675586755967560675616756267563675646756567566675676756867569675706757167572675736757467575675766757767578675796758067581675826758367584675856758667587675886758967590675916759267593675946759567596675976759867599676006760167602676036760467605676066760767608676096761067611676126761367614676156761667617676186761967620676216762267623676246762567626676276762867629676306763167632676336763467635676366763767638676396764067641676426764367644676456764667647676486764967650676516765267653676546765567656676576765867659676606766167662676636766467665676666766767668676696767067671676726767367674676756767667677676786767967680676816768267683676846768567686676876768867689676906769167692676936769467695676966769767698676996770067701677026770367704677056770667707677086770967710677116771267713677146771567716677176771867719677206772167722677236772467725677266772767728677296773067731677326773367734677356773667737677386773967740677416774267743677446774567746677476774867749677506775167752677536775467755677566775767758677596776067761677626776367764677656776667767677686776967770677716777267773677746777567776677776777867779677806778167782677836778467785677866778767788677896779067791677926779367794677956779667797677986779967800678016780267803678046780567806678076780867809678106781167812678136781467815678166781767818678196782067821678226782367824678256782667827678286782967830678316783267833678346783567836678376783867839678406784167842678436784467845678466784767848678496785067851678526785367854678556785667857678586785967860678616786267863678646786567866678676786867869678706787167872678736787467875678766787767878678796788067881678826788367884678856788667887678886788967890678916789267893678946789567896678976789867899679006790167902679036790467905679066790767908679096791067911679126791367914679156791667917679186791967920679216792267923679246792567926679276792867929679306793167932679336793467935679366793767938679396794067941679426794367944679456794667947679486794967950679516795267953679546795567956679576795867959679606796167962679636796467965679666796767968679696797067971679726797367974679756797667977679786797967980679816798267983679846798567986679876798867989679906799167992679936799467995679966799767998679996800068001680026800368004680056800668007680086800968010680116801268013680146801568016680176801868019680206802168022680236802468025680266802768028680296803068031680326803368034680356803668037680386803968040680416804268043680446804568046680476804868049680506805168052680536805468055680566805768058680596806068061680626806368064680656806668067680686806968070680716807268073680746807568076680776807868079680806808168082680836808468085680866808768088680896809068091680926809368094680956809668097680986809968100681016810268103681046810568106681076810868109681106811168112681136811468115681166811768118681196812068121681226812368124681256812668127681286812968130681316813268133681346813568136681376813868139681406814168142681436814468145681466814768148681496815068151681526815368154681556815668157681586815968160681616816268163681646816568166681676816868169681706817168172681736817468175681766817768178681796818068181681826818368184681856818668187681886818968190681916819268193681946819568196681976819868199682006820168202682036820468205682066820768208682096821068211682126821368214682156821668217682186821968220682216822268223682246822568226682276822868229682306823168232682336823468235682366823768238682396824068241682426824368244682456824668247682486824968250682516825268253682546825568256682576825868259682606826168262682636826468265682666826768268682696827068271682726827368274682756827668277682786827968280682816828268283682846828568286682876828868289682906829168292682936829468295682966829768298682996830068301683026830368304683056830668307683086830968310683116831268313683146831568316683176831868319683206832168322683236832468325683266832768328683296833068331683326833368334683356833668337683386833968340683416834268343683446834568346683476834868349683506835168352683536835468355683566835768358683596836068361683626836368364683656836668367683686836968370683716837268373683746837568376683776837868379683806838168382683836838468385683866838768388683896839068391683926839368394683956839668397683986839968400684016840268403684046840568406684076840868409684106841168412684136841468415684166841768418684196842068421684226842368424684256842668427684286842968430684316843268433684346843568436684376843868439684406844168442684436844468445684466844768448684496845068451684526845368454684556845668457684586845968460684616846268463684646846568466684676846868469684706847168472684736847468475684766847768478684796848068481684826848368484684856848668487684886848968490684916849268493684946849568496684976849868499685006850168502685036850468505685066850768508685096851068511685126851368514685156851668517685186851968520685216852268523685246852568526685276852868529685306853168532685336853468535685366853768538685396854068541685426854368544685456854668547685486854968550685516855268553685546855568556685576855868559685606856168562685636856468565685666856768568685696857068571685726857368574685756857668577685786857968580685816858268583685846858568586685876858868589685906859168592685936859468595685966859768598685996860068601686026860368604686056860668607686086860968610686116861268613686146861568616686176861868619686206862168622686236862468625686266862768628686296863068631686326863368634686356863668637686386863968640686416864268643686446864568646686476864868649686506865168652686536865468655686566865768658686596866068661686626866368664686656866668667686686866968670686716867268673686746867568676686776867868679686806868168682686836868468685686866868768688686896869068691686926869368694686956869668697686986869968700687016870268703687046870568706687076870868709687106871168712687136871468715687166871768718687196872068721687226872368724687256872668727687286872968730687316873268733687346873568736687376873868739687406874168742687436874468745687466874768748687496875068751687526875368754687556875668757687586875968760687616876268763687646876568766687676876868769687706877168772687736877468775687766877768778687796878068781687826878368784687856878668787687886878968790687916879268793687946879568796687976879868799688006880168802688036880468805688066880768808688096881068811688126881368814688156881668817688186881968820688216882268823688246882568826688276882868829688306883168832688336883468835688366883768838688396884068841688426884368844688456884668847688486884968850688516885268853688546885568856688576885868859688606886168862688636886468865688666886768868688696887068871688726887368874688756887668877688786887968880688816888268883688846888568886688876888868889688906889168892688936889468895688966889768898688996890068901689026890368904689056890668907689086890968910689116891268913689146891568916689176891868919689206892168922689236892468925689266892768928689296893068931689326893368934689356893668937689386893968940689416894268943689446894568946689476894868949689506895168952689536895468955689566895768958689596896068961689626896368964689656896668967689686896968970689716897268973689746897568976689776897868979689806898168982689836898468985689866898768988689896899068991689926899368994689956899668997689986899969000690016900269003690046900569006690076900869009690106901169012690136901469015690166901769018690196902069021690226902369024690256902669027690286902969030690316903269033690346903569036690376903869039690406904169042690436904469045690466904769048690496905069051690526905369054690556905669057690586905969060690616906269063690646906569066690676906869069690706907169072690736907469075690766907769078690796908069081690826908369084690856908669087690886908969090690916909269093690946909569096690976909869099691006910169102691036910469105691066910769108691096911069111691126911369114691156911669117691186911969120691216912269123691246912569126691276912869129691306913169132691336913469135691366913769138691396914069141691426914369144691456914669147691486914969150691516915269153691546915569156691576915869159691606916169162691636916469165691666916769168691696917069171691726917369174691756917669177691786917969180691816918269183691846918569186691876918869189691906919169192691936919469195691966919769198691996920069201692026920369204692056920669207692086920969210692116921269213692146921569216692176921869219692206922169222692236922469225692266922769228692296923069231692326923369234692356923669237692386923969240692416924269243692446924569246692476924869249692506925169252692536925469255692566925769258692596926069261692626926369264692656926669267692686926969270692716927269273692746927569276692776927869279692806928169282692836928469285692866928769288692896929069291692926929369294692956929669297692986929969300693016930269303693046930569306693076930869309693106931169312693136931469315693166931769318693196932069321693226932369324693256932669327693286932969330693316933269333693346933569336693376933869339693406934169342693436934469345693466934769348693496935069351693526935369354693556935669357693586935969360693616936269363693646936569366693676936869369693706937169372693736937469375693766937769378693796938069381693826938369384693856938669387693886938969390693916939269393693946939569396693976939869399694006940169402694036940469405694066940769408694096941069411694126941369414694156941669417694186941969420694216942269423694246942569426694276942869429694306943169432694336943469435694366943769438694396944069441694426944369444694456944669447694486944969450694516945269453694546945569456694576945869459694606946169462694636946469465694666946769468694696947069471694726947369474694756947669477694786947969480694816948269483694846948569486694876948869489694906949169492694936949469495694966949769498694996950069501695026950369504695056950669507695086950969510695116951269513695146951569516695176951869519695206952169522695236952469525695266952769528695296953069531695326953369534695356953669537695386953969540695416954269543695446954569546695476954869549695506955169552695536955469555695566955769558695596956069561695626956369564695656956669567695686956969570695716957269573695746957569576695776957869579695806958169582695836958469585695866958769588695896959069591695926959369594695956959669597695986959969600696016960269603696046960569606696076960869609696106961169612696136961469615696166961769618696196962069621696226962369624696256962669627696286962969630696316963269633696346963569636696376963869639696406964169642696436964469645696466964769648696496965069651696526965369654696556965669657696586965969660696616966269663696646966569666696676966869669696706967169672696736967469675696766967769678696796968069681696826968369684696856968669687696886968969690696916969269693696946969569696696976969869699697006970169702697036970469705697066970769708697096971069711697126971369714697156971669717697186971969720697216972269723697246972569726697276972869729697306973169732697336973469735697366973769738697396974069741697426974369744697456974669747697486974969750697516975269753697546975569756697576975869759697606976169762697636976469765697666976769768697696977069771697726977369774697756977669777697786977969780697816978269783697846978569786697876978869789697906979169792697936979469795697966979769798697996980069801698026980369804698056980669807698086980969810698116981269813698146981569816698176981869819698206982169822698236982469825698266982769828698296983069831698326983369834698356983669837698386983969840698416984269843698446984569846698476984869849698506985169852698536985469855698566985769858698596986069861698626986369864698656986669867698686986969870698716987269873698746987569876698776987869879698806988169882698836988469885698866988769888698896989069891698926989369894698956989669897698986989969900699016990269903699046990569906699076990869909699106991169912699136991469915699166991769918699196992069921699226992369924699256992669927699286992969930699316993269933699346993569936699376993869939699406994169942699436994469945699466994769948699496995069951699526995369954699556995669957699586995969960699616996269963699646996569966699676996869969699706997169972699736997469975699766997769978699796998069981699826998369984699856998669987699886998969990699916999269993699946999569996699976999869999700007000170002700037000470005700067000770008700097001070011700127001370014700157001670017700187001970020700217002270023700247002570026700277002870029700307003170032700337003470035700367003770038700397004070041700427004370044700457004670047700487004970050700517005270053700547005570056700577005870059700607006170062700637006470065700667006770068700697007070071700727007370074700757007670077700787007970080700817008270083700847008570086700877008870089700907009170092700937009470095700967009770098700997010070101701027010370104701057010670107701087010970110701117011270113701147011570116701177011870119701207012170122701237012470125701267012770128701297013070131701327013370134701357013670137701387013970140701417014270143701447014570146701477014870149701507015170152701537015470155701567015770158701597016070161701627016370164701657016670167701687016970170701717017270173701747017570176701777017870179701807018170182701837018470185701867018770188701897019070191701927019370194701957019670197701987019970200702017020270203702047020570206702077020870209702107021170212702137021470215702167021770218702197022070221702227022370224702257022670227702287022970230702317023270233702347023570236702377023870239702407024170242702437024470245702467024770248702497025070251702527025370254702557025670257702587025970260702617026270263702647026570266702677026870269702707027170272702737027470275702767027770278702797028070281702827028370284702857028670287702887028970290702917029270293702947029570296702977029870299703007030170302703037030470305703067030770308703097031070311703127031370314703157031670317703187031970320703217032270323703247032570326703277032870329703307033170332703337033470335703367033770338703397034070341703427034370344703457034670347703487034970350703517035270353703547035570356703577035870359703607036170362703637036470365703667036770368703697037070371703727037370374703757037670377703787037970380703817038270383703847038570386703877038870389703907039170392703937039470395703967039770398703997040070401704027040370404704057040670407704087040970410704117041270413704147041570416704177041870419704207042170422704237042470425704267042770428704297043070431704327043370434704357043670437704387043970440704417044270443704447044570446704477044870449704507045170452704537045470455704567045770458704597046070461704627046370464704657046670467704687046970470704717047270473704747047570476704777047870479704807048170482704837048470485704867048770488704897049070491704927049370494704957049670497704987049970500705017050270503705047050570506705077050870509705107051170512705137051470515705167051770518705197052070521705227052370524705257052670527705287052970530705317053270533705347053570536705377053870539705407054170542705437054470545705467054770548705497055070551705527055370554705557055670557705587055970560705617056270563705647056570566705677056870569705707057170572705737057470575705767057770578705797058070581705827058370584705857058670587705887058970590705917059270593705947059570596705977059870599706007060170602706037060470605706067060770608706097061070611706127061370614706157061670617706187061970620706217062270623706247062570626706277062870629706307063170632706337063470635706367063770638706397064070641706427064370644706457064670647706487064970650706517065270653706547065570656706577065870659706607066170662706637066470665706667066770668706697067070671706727067370674706757067670677706787067970680706817068270683706847068570686706877068870689706907069170692706937069470695706967069770698706997070070701707027070370704707057070670707707087070970710707117071270713707147071570716707177071870719707207072170722707237072470725707267072770728707297073070731707327073370734707357073670737707387073970740707417074270743707447074570746707477074870749707507075170752707537075470755707567075770758707597076070761707627076370764707657076670767707687076970770707717077270773707747077570776707777077870779707807078170782707837078470785707867078770788707897079070791707927079370794707957079670797707987079970800708017080270803708047080570806708077080870809708107081170812708137081470815708167081770818708197082070821708227082370824708257082670827708287082970830708317083270833708347083570836708377083870839708407084170842708437084470845708467084770848708497085070851708527085370854708557085670857708587085970860708617086270863708647086570866708677086870869708707087170872708737087470875708767087770878708797088070881708827088370884708857088670887708887088970890708917089270893708947089570896708977089870899709007090170902709037090470905709067090770908709097091070911709127091370914709157091670917709187091970920709217092270923709247092570926709277092870929709307093170932709337093470935709367093770938709397094070941709427094370944709457094670947709487094970950709517095270953709547095570956709577095870959709607096170962709637096470965709667096770968709697097070971709727097370974709757097670977709787097970980709817098270983709847098570986709877098870989709907099170992709937099470995709967099770998709997100071001710027100371004710057100671007710087100971010710117101271013710147101571016710177101871019710207102171022710237102471025710267102771028710297103071031710327103371034710357103671037710387103971040710417104271043710447104571046710477104871049710507105171052710537105471055710567105771058710597106071061710627106371064710657106671067710687106971070710717107271073710747107571076710777107871079710807108171082710837108471085710867108771088710897109071091710927109371094710957109671097710987109971100711017110271103711047110571106711077110871109711107111171112711137111471115711167111771118711197112071121711227112371124711257112671127711287112971130711317113271133711347113571136711377113871139711407114171142711437114471145711467114771148711497115071151711527115371154711557115671157711587115971160711617116271163711647116571166711677116871169711707117171172711737117471175711767117771178711797118071181711827118371184711857118671187711887118971190711917119271193711947119571196711977119871199712007120171202712037120471205712067120771208712097121071211712127121371214712157121671217712187121971220712217122271223712247122571226712277122871229712307123171232712337123471235712367123771238712397124071241712427124371244712457124671247712487124971250712517125271253712547125571256712577125871259712607126171262712637126471265712667126771268712697127071271712727127371274712757127671277712787127971280712817128271283712847128571286712877128871289712907129171292712937129471295712967129771298712997130071301713027130371304713057130671307713087130971310713117131271313713147131571316713177131871319713207132171322713237132471325713267132771328713297133071331713327133371334713357133671337713387133971340713417134271343713447134571346713477134871349713507135171352713537135471355713567135771358713597136071361713627136371364713657136671367713687136971370713717137271373713747137571376713777137871379713807138171382713837138471385713867138771388713897139071391713927139371394713957139671397713987139971400714017140271403714047140571406714077140871409714107141171412714137141471415714167141771418714197142071421714227142371424714257142671427714287142971430714317143271433714347143571436714377143871439714407144171442714437144471445714467144771448714497145071451714527145371454714557145671457714587145971460714617146271463714647146571466714677146871469714707147171472714737147471475714767147771478714797148071481714827148371484714857148671487714887148971490714917149271493714947149571496714977149871499715007150171502715037150471505715067150771508715097151071511715127151371514715157151671517715187151971520715217152271523715247152571526715277152871529715307153171532715337153471535715367153771538715397154071541715427154371544715457154671547715487154971550715517155271553715547155571556715577155871559715607156171562715637156471565715667156771568715697157071571715727157371574715757157671577715787157971580715817158271583715847158571586715877158871589715907159171592715937159471595715967159771598715997160071601716027160371604716057160671607716087160971610716117161271613716147161571616716177161871619716207162171622716237162471625716267162771628716297163071631716327163371634716357163671637716387163971640716417164271643716447164571646716477164871649716507165171652716537165471655716567165771658716597166071661716627166371664716657166671667716687166971670716717167271673716747167571676716777167871679716807168171682716837168471685716867168771688716897169071691716927169371694716957169671697716987169971700717017170271703717047170571706717077170871709717107171171712717137171471715717167171771718717197172071721717227172371724717257172671727717287172971730717317173271733717347173571736717377173871739717407174171742717437174471745717467174771748717497175071751717527175371754717557175671757717587175971760717617176271763717647176571766717677176871769717707177171772717737177471775717767177771778717797178071781717827178371784717857178671787717887178971790717917179271793717947179571796717977179871799718007180171802718037180471805718067180771808718097181071811718127181371814718157181671817718187181971820718217182271823718247182571826718277182871829718307183171832718337183471835718367183771838718397184071841718427184371844718457184671847718487184971850718517185271853718547185571856718577185871859718607186171862718637186471865718667186771868718697187071871718727187371874718757187671877718787187971880718817188271883718847188571886718877188871889718907189171892718937189471895718967189771898718997190071901719027190371904719057190671907719087190971910719117191271913719147191571916719177191871919719207192171922719237192471925719267192771928719297193071931719327193371934719357193671937719387193971940719417194271943719447194571946719477194871949719507195171952719537195471955719567195771958719597196071961719627196371964719657196671967719687196971970719717197271973719747197571976719777197871979719807198171982719837198471985719867198771988719897199071991719927199371994719957199671997719987199972000720017200272003720047200572006720077200872009720107201172012720137201472015720167201772018720197202072021720227202372024720257202672027720287202972030720317203272033720347203572036720377203872039720407204172042720437204472045720467204772048720497205072051720527205372054720557205672057720587205972060720617206272063720647206572066720677206872069720707207172072720737207472075720767207772078720797208072081720827208372084720857208672087720887208972090720917209272093720947209572096720977209872099721007210172102721037210472105721067210772108721097211072111721127211372114721157211672117721187211972120721217212272123721247212572126721277212872129721307213172132721337213472135721367213772138721397214072141721427214372144721457214672147721487214972150721517215272153721547215572156721577215872159721607216172162721637216472165721667216772168721697217072171721727217372174721757217672177721787217972180721817218272183721847218572186721877218872189721907219172192721937219472195721967219772198721997220072201722027220372204722057220672207722087220972210722117221272213722147221572216722177221872219722207222172222722237222472225722267222772228722297223072231722327223372234722357223672237722387223972240722417224272243722447224572246722477224872249722507225172252722537225472255722567225772258722597226072261722627226372264722657226672267722687226972270722717227272273722747227572276722777227872279722807228172282722837228472285722867228772288722897229072291722927229372294722957229672297722987229972300723017230272303723047230572306723077230872309723107231172312723137231472315723167231772318723197232072321723227232372324723257232672327723287232972330723317233272333723347233572336723377233872339723407234172342723437234472345723467234772348723497235072351723527235372354723557235672357723587235972360723617236272363723647236572366723677236872369723707237172372723737237472375723767237772378723797238072381723827238372384723857238672387723887238972390723917239272393723947239572396723977239872399724007240172402724037240472405724067240772408724097241072411724127241372414724157241672417724187241972420724217242272423724247242572426724277242872429724307243172432724337243472435724367243772438724397244072441724427244372444724457244672447724487244972450724517245272453724547245572456724577245872459724607246172462724637246472465724667246772468724697247072471724727247372474724757247672477724787247972480724817248272483724847248572486724877248872489724907249172492724937249472495724967249772498724997250072501725027250372504725057250672507725087250972510725117251272513725147251572516725177251872519725207252172522725237252472525725267252772528725297253072531725327253372534725357253672537725387253972540725417254272543725447254572546725477254872549725507255172552725537255472555725567255772558725597256072561725627256372564725657256672567725687256972570725717257272573725747257572576725777257872579725807258172582725837258472585725867258772588725897259072591725927259372594725957259672597725987259972600726017260272603726047260572606726077260872609726107261172612726137261472615726167261772618726197262072621726227262372624726257262672627726287262972630726317263272633726347263572636726377263872639726407264172642726437264472645726467264772648726497265072651726527265372654726557265672657726587265972660726617266272663726647266572666726677266872669726707267172672726737267472675726767267772678726797268072681726827268372684726857268672687726887268972690726917269272693726947269572696726977269872699727007270172702727037270472705727067270772708727097271072711727127271372714727157271672717727187271972720727217272272723727247272572726727277272872729727307273172732727337273472735727367273772738727397274072741727427274372744727457274672747727487274972750727517275272753727547275572756727577275872759727607276172762727637276472765727667276772768727697277072771727727277372774727757277672777727787277972780727817278272783727847278572786727877278872789727907279172792727937279472795727967279772798727997280072801728027280372804728057280672807728087280972810728117281272813728147281572816728177281872819728207282172822728237282472825728267282772828728297283072831728327283372834728357283672837728387283972840728417284272843728447284572846728477284872849728507285172852728537285472855728567285772858728597286072861728627286372864728657286672867728687286972870728717287272873728747287572876728777287872879728807288172882728837288472885728867288772888728897289072891728927289372894728957289672897728987289972900729017290272903729047290572906729077290872909729107291172912729137291472915729167291772918729197292072921729227292372924729257292672927729287292972930729317293272933729347293572936729377293872939729407294172942729437294472945729467294772948729497295072951729527295372954729557295672957729587295972960729617296272963729647296572966729677296872969729707297172972729737297472975729767297772978729797298072981729827298372984729857298672987729887298972990729917299272993729947299572996729977299872999730007300173002730037300473005730067300773008730097301073011730127301373014730157301673017730187301973020730217302273023730247302573026730277302873029730307303173032730337303473035730367303773038730397304073041730427304373044730457304673047730487304973050730517305273053730547305573056730577305873059730607306173062730637306473065730667306773068730697307073071730727307373074730757307673077730787307973080730817308273083730847308573086730877308873089730907309173092730937309473095730967309773098730997310073101731027310373104731057310673107731087310973110731117311273113731147311573116731177311873119731207312173122731237312473125731267312773128731297313073131731327313373134731357313673137731387313973140731417314273143731447314573146731477314873149731507315173152731537315473155731567315773158731597316073161731627316373164731657316673167731687316973170731717317273173731747317573176731777317873179731807318173182731837318473185731867318773188731897319073191731927319373194731957319673197731987319973200732017320273203732047320573206732077320873209732107321173212732137321473215732167321773218732197322073221732227322373224732257322673227732287322973230732317323273233732347323573236732377323873239732407324173242732437324473245732467324773248732497325073251732527325373254732557325673257732587325973260732617326273263732647326573266732677326873269732707327173272732737327473275732767327773278732797328073281732827328373284732857328673287732887328973290732917329273293732947329573296732977329873299733007330173302733037330473305733067330773308733097331073311733127331373314733157331673317733187331973320733217332273323733247332573326733277332873329733307333173332733337333473335733367333773338733397334073341733427334373344733457334673347733487334973350733517335273353733547335573356733577335873359733607336173362733637336473365733667336773368733697337073371733727337373374733757337673377733787337973380733817338273383733847338573386733877338873389733907339173392733937339473395733967339773398733997340073401734027340373404734057340673407734087340973410734117341273413734147341573416734177341873419734207342173422734237342473425734267342773428734297343073431734327343373434734357343673437734387343973440734417344273443734447344573446734477344873449734507345173452734537345473455734567345773458734597346073461734627346373464734657346673467734687346973470734717347273473734747347573476734777347873479734807348173482734837348473485734867348773488734897349073491734927349373494734957349673497734987349973500735017350273503735047350573506735077350873509735107351173512735137351473515735167351773518735197352073521735227352373524735257352673527735287352973530735317353273533735347353573536735377353873539735407354173542735437354473545735467354773548735497355073551735527355373554735557355673557735587355973560735617356273563735647356573566735677356873569735707357173572735737357473575735767357773578735797358073581735827358373584735857358673587735887358973590735917359273593735947359573596735977359873599736007360173602736037360473605736067360773608736097361073611736127361373614736157361673617736187361973620736217362273623736247362573626736277362873629736307363173632736337363473635736367363773638736397364073641736427364373644736457364673647736487364973650736517365273653736547365573656736577365873659736607366173662736637366473665736667366773668736697367073671736727367373674736757367673677736787367973680736817368273683736847368573686736877368873689736907369173692736937369473695736967369773698736997370073701737027370373704737057370673707737087370973710737117371273713737147371573716737177371873719737207372173722737237372473725737267372773728737297373073731737327373373734737357373673737737387373973740737417374273743737447374573746737477374873749737507375173752737537375473755737567375773758737597376073761737627376373764737657376673767737687376973770737717377273773737747377573776737777377873779737807378173782737837378473785737867378773788737897379073791737927379373794737957379673797737987379973800738017380273803738047380573806738077380873809738107381173812738137381473815738167381773818738197382073821738227382373824738257382673827738287382973830738317383273833738347383573836738377383873839738407384173842738437384473845738467384773848738497385073851738527385373854738557385673857738587385973860738617386273863738647386573866738677386873869738707387173872738737387473875738767387773878738797388073881738827388373884738857388673887738887388973890738917389273893738947389573896738977389873899739007390173902739037390473905739067390773908739097391073911739127391373914739157391673917739187391973920739217392273923739247392573926739277392873929739307393173932739337393473935739367393773938739397394073941739427394373944739457394673947739487394973950739517395273953739547395573956739577395873959739607396173962739637396473965739667396773968739697397073971739727397373974739757397673977739787397973980739817398273983739847398573986739877398873989739907399173992739937399473995739967399773998739997400074001740027400374004740057400674007740087400974010740117401274013740147401574016740177401874019740207402174022740237402474025740267402774028740297403074031740327403374034740357403674037740387403974040740417404274043740447404574046740477404874049740507405174052740537405474055740567405774058740597406074061740627406374064740657406674067740687406974070740717407274073740747407574076740777407874079740807408174082740837408474085740867408774088740897409074091740927409374094740957409674097740987409974100741017410274103741047410574106741077410874109741107411174112741137411474115741167411774118741197412074121741227412374124741257412674127741287412974130741317413274133741347413574136741377413874139741407414174142741437414474145741467414774148741497415074151741527415374154741557415674157741587415974160741617416274163741647416574166741677416874169741707417174172741737417474175741767417774178741797418074181741827418374184741857418674187741887418974190741917419274193741947419574196741977419874199742007420174202742037420474205742067420774208742097421074211742127421374214742157421674217742187421974220742217422274223742247422574226742277422874229742307423174232742337423474235742367423774238742397424074241742427424374244742457424674247742487424974250742517425274253742547425574256742577425874259742607426174262742637426474265742667426774268742697427074271742727427374274742757427674277742787427974280742817428274283742847428574286742877428874289742907429174292742937429474295742967429774298742997430074301743027430374304743057430674307743087430974310743117431274313743147431574316743177431874319743207432174322743237432474325743267432774328743297433074331743327433374334743357433674337743387433974340743417434274343743447434574346743477434874349743507435174352743537435474355743567435774358743597436074361743627436374364743657436674367743687436974370743717437274373743747437574376743777437874379743807438174382743837438474385743867438774388743897439074391743927439374394743957439674397743987439974400744017440274403744047440574406744077440874409744107441174412744137441474415744167441774418744197442074421744227442374424744257442674427744287442974430744317443274433744347443574436744377443874439744407444174442744437444474445744467444774448744497445074451744527445374454744557445674457744587445974460744617446274463744647446574466744677446874469744707447174472744737447474475744767447774478744797448074481744827448374484744857448674487744887448974490744917449274493744947449574496744977449874499745007450174502745037450474505745067450774508745097451074511745127451374514745157451674517745187451974520745217452274523745247452574526745277452874529745307453174532745337453474535745367453774538745397454074541745427454374544745457454674547745487454974550745517455274553745547455574556745577455874559745607456174562745637456474565745667456774568745697457074571745727457374574745757457674577745787457974580745817458274583745847458574586745877458874589745907459174592745937459474595745967459774598745997460074601746027460374604746057460674607746087460974610746117461274613746147461574616746177461874619746207462174622746237462474625746267462774628746297463074631746327463374634746357463674637746387463974640746417464274643746447464574646746477464874649746507465174652746537465474655746567465774658746597466074661746627466374664746657466674667746687466974670746717467274673746747467574676746777467874679746807468174682746837468474685746867468774688746897469074691746927469374694746957469674697746987469974700747017470274703747047470574706747077470874709747107471174712747137471474715747167471774718747197472074721747227472374724747257472674727747287472974730747317473274733747347473574736747377473874739747407474174742747437474474745747467474774748747497475074751747527475374754747557475674757747587475974760747617476274763747647476574766747677476874769747707477174772747737477474775747767477774778747797478074781747827478374784747857478674787747887478974790747917479274793747947479574796747977479874799748007480174802748037480474805748067480774808748097481074811748127481374814748157481674817748187481974820748217482274823748247482574826748277482874829748307483174832748337483474835748367483774838748397484074841748427484374844748457484674847748487484974850748517485274853748547485574856748577485874859748607486174862748637486474865748667486774868748697487074871748727487374874748757487674877748787487974880748817488274883748847488574886748877488874889748907489174892748937489474895748967489774898748997490074901749027490374904749057490674907749087490974910749117491274913749147491574916749177491874919749207492174922749237492474925749267492774928749297493074931749327493374934749357493674937749387493974940749417494274943749447494574946749477494874949749507495174952749537495474955749567495774958749597496074961749627496374964749657496674967749687496974970749717497274973749747497574976749777497874979749807498174982749837498474985749867498774988749897499074991749927499374994749957499674997749987499975000750017500275003750047500575006750077500875009750107501175012750137501475015750167501775018750197502075021750227502375024750257502675027750287502975030750317503275033750347503575036750377503875039750407504175042750437504475045750467504775048750497505075051750527505375054750557505675057750587505975060750617506275063750647506575066750677506875069750707507175072750737507475075750767507775078750797508075081750827508375084750857508675087750887508975090750917509275093750947509575096750977509875099751007510175102751037510475105751067510775108751097511075111751127511375114751157511675117751187511975120751217512275123751247512575126751277512875129751307513175132751337513475135751367513775138751397514075141751427514375144751457514675147751487514975150751517515275153751547515575156751577515875159751607516175162751637516475165751667516775168751697517075171751727517375174751757517675177751787517975180751817518275183751847518575186751877518875189751907519175192751937519475195751967519775198751997520075201752027520375204752057520675207752087520975210752117521275213752147521575216752177521875219752207522175222752237522475225752267522775228752297523075231752327523375234752357523675237752387523975240752417524275243752447524575246752477524875249752507525175252752537525475255752567525775258752597526075261752627526375264752657526675267752687526975270752717527275273752747527575276752777527875279752807528175282752837528475285752867528775288752897529075291752927529375294752957529675297752987529975300753017530275303753047530575306753077530875309753107531175312753137531475315753167531775318753197532075321753227532375324753257532675327753287532975330753317533275333753347533575336753377533875339753407534175342753437534475345753467534775348753497535075351753527535375354753557535675357753587535975360753617536275363753647536575366753677536875369753707537175372753737537475375753767537775378753797538075381753827538375384753857538675387753887538975390753917539275393753947539575396753977539875399754007540175402754037540475405754067540775408754097541075411754127541375414754157541675417754187541975420754217542275423754247542575426754277542875429754307543175432754337543475435754367543775438754397544075441754427544375444754457544675447754487544975450754517545275453754547545575456754577545875459754607546175462754637546475465754667546775468754697547075471754727547375474754757547675477754787547975480754817548275483754847548575486754877548875489754907549175492754937549475495754967549775498754997550075501755027550375504755057550675507755087550975510755117551275513755147551575516755177551875519755207552175522755237552475525755267552775528755297553075531755327553375534755357553675537755387553975540755417554275543755447554575546755477554875549755507555175552755537555475555755567555775558755597556075561755627556375564755657556675567755687556975570755717557275573755747557575576755777557875579755807558175582755837558475585755867558775588755897559075591755927559375594755957559675597755987559975600756017560275603756047560575606756077560875609756107561175612756137561475615756167561775618756197562075621756227562375624756257562675627756287562975630756317563275633756347563575636756377563875639756407564175642756437564475645756467564775648756497565075651756527565375654756557565675657756587565975660756617566275663756647566575666756677566875669756707567175672756737567475675756767567775678756797568075681756827568375684756857568675687756887568975690756917569275693756947569575696756977569875699757007570175702757037570475705757067570775708757097571075711757127571375714757157571675717757187571975720757217572275723757247572575726757277572875729757307573175732757337573475735757367573775738757397574075741757427574375744757457574675747757487574975750757517575275753757547575575756757577575875759757607576175762757637576475765757667576775768757697577075771757727577375774757757577675777757787577975780757817578275783757847578575786757877578875789757907579175792757937579475795757967579775798757997580075801758027580375804758057580675807758087580975810758117581275813758147581575816758177581875819758207582175822758237582475825758267582775828758297583075831758327583375834758357583675837758387583975840758417584275843758447584575846758477584875849758507585175852758537585475855758567585775858758597586075861758627586375864758657586675867758687586975870758717587275873758747587575876758777587875879758807588175882758837588475885758867588775888758897589075891758927589375894758957589675897758987589975900759017590275903759047590575906759077590875909759107591175912759137591475915759167591775918759197592075921759227592375924759257592675927759287592975930759317593275933759347593575936759377593875939759407594175942759437594475945759467594775948759497595075951759527595375954759557595675957759587595975960759617596275963759647596575966759677596875969759707597175972759737597475975759767597775978759797598075981759827598375984759857598675987759887598975990759917599275993759947599575996759977599875999760007600176002760037600476005760067600776008760097601076011760127601376014760157601676017760187601976020760217602276023760247602576026760277602876029760307603176032760337603476035760367603776038760397604076041760427604376044760457604676047760487604976050760517605276053760547605576056760577605876059760607606176062760637606476065760667606776068760697607076071760727607376074760757607676077760787607976080760817608276083760847608576086760877608876089760907609176092760937609476095760967609776098760997610076101761027610376104761057610676107761087610976110761117611276113761147611576116761177611876119761207612176122761237612476125761267612776128761297613076131761327613376134761357613676137761387613976140761417614276143761447614576146761477614876149761507615176152761537615476155761567615776158761597616076161761627616376164761657616676167761687616976170761717617276173761747617576176761777617876179761807618176182761837618476185761867618776188761897619076191761927619376194761957619676197761987619976200762017620276203762047620576206762077620876209762107621176212762137621476215762167621776218762197622076221762227622376224762257622676227762287622976230762317623276233762347623576236762377623876239762407624176242762437624476245762467624776248762497625076251762527625376254762557625676257762587625976260762617626276263762647626576266762677626876269762707627176272762737627476275762767627776278762797628076281762827628376284762857628676287762887628976290762917629276293762947629576296762977629876299763007630176302763037630476305763067630776308763097631076311763127631376314763157631676317763187631976320763217632276323763247632576326763277632876329763307633176332763337633476335763367633776338763397634076341763427634376344763457634676347763487634976350763517635276353763547635576356763577635876359763607636176362763637636476365763667636776368763697637076371763727637376374763757637676377763787637976380763817638276383763847638576386763877638876389763907639176392763937639476395763967639776398763997640076401764027640376404764057640676407764087640976410764117641276413764147641576416764177641876419764207642176422764237642476425764267642776428764297643076431764327643376434764357643676437764387643976440764417644276443764447644576446764477644876449764507645176452764537645476455764567645776458764597646076461764627646376464764657646676467764687646976470764717647276473764747647576476764777647876479764807648176482764837648476485764867648776488764897649076491764927649376494764957649676497764987649976500765017650276503765047650576506765077650876509765107651176512765137651476515765167651776518765197652076521765227652376524765257652676527765287652976530765317653276533765347653576536765377653876539765407654176542765437654476545765467654776548765497655076551765527655376554765557655676557765587655976560765617656276563765647656576566765677656876569765707657176572765737657476575765767657776578765797658076581765827658376584765857658676587765887658976590765917659276593765947659576596765977659876599766007660176602766037660476605766067660776608766097661076611766127661376614766157661676617766187661976620766217662276623766247662576626766277662876629766307663176632766337663476635766367663776638766397664076641766427664376644766457664676647766487664976650766517665276653766547665576656766577665876659766607666176662766637666476665766667666776668766697667076671766727667376674766757667676677766787667976680766817668276683766847668576686766877668876689766907669176692766937669476695766967669776698766997670076701767027670376704767057670676707767087670976710767117671276713767147671576716767177671876719767207672176722767237672476725767267672776728767297673076731767327673376734767357673676737767387673976740767417674276743767447674576746767477674876749767507675176752767537675476755767567675776758767597676076761767627676376764767657676676767767687676976770767717677276773767747677576776767777677876779767807678176782767837678476785767867678776788767897679076791767927679376794767957679676797767987679976800768017680276803768047680576806768077680876809768107681176812768137681476815768167681776818768197682076821768227682376824768257682676827768287682976830768317683276833768347683576836768377683876839768407684176842768437684476845768467684776848768497685076851768527685376854768557685676857768587685976860768617686276863768647686576866768677686876869768707687176872768737687476875768767687776878768797688076881768827688376884768857688676887768887688976890768917689276893768947689576896768977689876899769007690176902769037690476905769067690776908769097691076911769127691376914769157691676917769187691976920769217692276923769247692576926769277692876929769307693176932769337693476935769367693776938769397694076941769427694376944769457694676947769487694976950769517695276953769547695576956769577695876959769607696176962769637696476965769667696776968769697697076971769727697376974769757697676977769787697976980769817698276983769847698576986769877698876989769907699176992769937699476995769967699776998769997700077001770027700377004770057700677007770087700977010770117701277013770147701577016770177701877019770207702177022770237702477025770267702777028770297703077031770327703377034770357703677037770387703977040770417704277043770447704577046770477704877049770507705177052770537705477055770567705777058770597706077061770627706377064770657706677067770687706977070770717707277073770747707577076770777707877079770807708177082770837708477085770867708777088770897709077091770927709377094770957709677097770987709977100771017710277103771047710577106771077710877109771107711177112771137711477115771167711777118771197712077121771227712377124771257712677127771287712977130771317713277133771347713577136771377713877139771407714177142771437714477145771467714777148771497715077151771527715377154771557715677157771587715977160771617716277163771647716577166771677716877169771707717177172771737717477175771767717777178771797718077181771827718377184771857718677187771887718977190771917719277193771947719577196771977719877199772007720177202772037720477205772067720777208772097721077211772127721377214772157721677217772187721977220772217722277223772247722577226772277722877229772307723177232772337723477235772367723777238772397724077241772427724377244772457724677247772487724977250772517725277253772547725577256772577725877259772607726177262772637726477265772667726777268772697727077271772727727377274772757727677277772787727977280772817728277283772847728577286772877728877289772907729177292772937729477295772967729777298772997730077301773027730377304773057730677307773087730977310773117731277313773147731577316773177731877319773207732177322773237732477325773267732777328773297733077331773327733377334773357733677337773387733977340773417734277343773447734577346773477734877349773507735177352773537735477355773567735777358773597736077361773627736377364773657736677367773687736977370773717737277373773747737577376773777737877379773807738177382773837738477385773867738777388773897739077391773927739377394773957739677397773987739977400774017740277403774047740577406774077740877409774107741177412774137741477415774167741777418774197742077421774227742377424774257742677427774287742977430774317743277433774347743577436774377743877439774407744177442774437744477445774467744777448774497745077451774527745377454774557745677457774587745977460774617746277463774647746577466774677746877469774707747177472774737747477475774767747777478774797748077481774827748377484774857748677487774887748977490774917749277493774947749577496774977749877499775007750177502775037750477505775067750777508775097751077511775127751377514775157751677517775187751977520775217752277523775247752577526775277752877529775307753177532775337753477535775367753777538775397754077541775427754377544775457754677547775487754977550775517755277553775547755577556775577755877559775607756177562775637756477565775667756777568775697757077571775727757377574775757757677577775787757977580775817758277583775847758577586775877758877589775907759177592775937759477595775967759777598775997760077601776027760377604776057760677607776087760977610776117761277613776147761577616776177761877619776207762177622776237762477625776267762777628776297763077631776327763377634776357763677637776387763977640776417764277643776447764577646776477764877649776507765177652776537765477655776567765777658776597766077661776627766377664776657766677667776687766977670776717767277673776747767577676776777767877679776807768177682776837768477685776867768777688776897769077691776927769377694776957769677697776987769977700777017770277703777047770577706777077770877709777107771177712777137771477715777167771777718777197772077721777227772377724777257772677727777287772977730777317773277733777347773577736777377773877739777407774177742777437774477745777467774777748777497775077751777527775377754777557775677757777587775977760777617776277763777647776577766777677776877769777707777177772777737777477775777767777777778777797778077781777827778377784777857778677787777887778977790777917779277793777947779577796777977779877799778007780177802778037780477805778067780777808778097781077811778127781377814778157781677817778187781977820778217782277823778247782577826778277782877829778307783177832778337783477835778367783777838778397784077841778427784377844778457784677847778487784977850778517785277853778547785577856778577785877859778607786177862778637786477865778667786777868778697787077871778727787377874778757787677877778787787977880778817788277883778847788577886778877788877889778907789177892778937789477895778967789777898778997790077901779027790377904779057790677907779087790977910779117791277913779147791577916779177791877919779207792177922779237792477925779267792777928779297793077931779327793377934779357793677937779387793977940779417794277943779447794577946779477794877949779507795177952779537795477955779567795777958779597796077961779627796377964779657796677967779687796977970779717797277973779747797577976779777797877979779807798177982779837798477985779867798777988779897799077991779927799377994779957799677997779987799978000780017800278003780047800578006780077800878009780107801178012780137801478015780167801778018780197802078021780227802378024780257802678027780287802978030780317803278033780347803578036780377803878039780407804178042780437804478045780467804778048780497805078051780527805378054780557805678057780587805978060780617806278063780647806578066780677806878069780707807178072780737807478075780767807778078780797808078081780827808378084780857808678087780887808978090780917809278093780947809578096780977809878099781007810178102781037810478105781067810778108781097811078111781127811378114781157811678117781187811978120781217812278123781247812578126781277812878129781307813178132781337813478135781367813778138781397814078141781427814378144781457814678147781487814978150781517815278153781547815578156781577815878159781607816178162781637816478165781667816778168781697817078171781727817378174781757817678177781787817978180781817818278183781847818578186781877818878189781907819178192781937819478195781967819778198781997820078201782027820378204782057820678207782087820978210782117821278213782147821578216782177821878219782207822178222782237822478225782267822778228782297823078231782327823378234782357823678237782387823978240782417824278243782447824578246782477824878249782507825178252782537825478255782567825778258782597826078261782627826378264782657826678267782687826978270782717827278273782747827578276782777827878279782807828178282782837828478285782867828778288782897829078291782927829378294782957829678297782987829978300783017830278303783047830578306783077830878309783107831178312783137831478315783167831778318783197832078321783227832378324783257832678327783287832978330783317833278333783347833578336783377833878339783407834178342783437834478345783467834778348783497835078351783527835378354783557835678357783587835978360783617836278363783647836578366783677836878369783707837178372783737837478375783767837778378783797838078381783827838378384783857838678387783887838978390783917839278393783947839578396783977839878399784007840178402784037840478405784067840778408784097841078411784127841378414784157841678417784187841978420784217842278423784247842578426784277842878429784307843178432784337843478435784367843778438784397844078441784427844378444784457844678447784487844978450784517845278453784547845578456784577845878459784607846178462784637846478465784667846778468784697847078471784727847378474784757847678477784787847978480784817848278483784847848578486784877848878489784907849178492784937849478495784967849778498784997850078501785027850378504785057850678507785087850978510785117851278513785147851578516785177851878519785207852178522785237852478525785267852778528785297853078531785327853378534785357853678537785387853978540785417854278543785447854578546785477854878549785507855178552785537855478555785567855778558785597856078561785627856378564785657856678567785687856978570785717857278573785747857578576785777857878579785807858178582785837858478585785867858778588785897859078591785927859378594785957859678597785987859978600786017860278603786047860578606786077860878609786107861178612786137861478615786167861778618786197862078621786227862378624786257862678627786287862978630786317863278633786347863578636786377863878639786407864178642786437864478645786467864778648786497865078651786527865378654786557865678657786587865978660786617866278663786647866578666786677866878669786707867178672786737867478675786767867778678786797868078681786827868378684786857868678687786887868978690786917869278693786947869578696786977869878699787007870178702787037870478705787067870778708787097871078711787127871378714787157871678717787187871978720787217872278723787247872578726787277872878729787307873178732787337873478735787367873778738787397874078741787427874378744787457874678747787487874978750787517875278753787547875578756787577875878759787607876178762787637876478765787667876778768787697877078771787727877378774787757877678777787787877978780787817878278783787847878578786787877878878789787907879178792787937879478795787967879778798787997880078801788027880378804788057880678807788087880978810788117881278813788147881578816788177881878819788207882178822788237882478825788267882778828788297883078831788327883378834788357883678837788387883978840788417884278843788447884578846788477884878849788507885178852788537885478855788567885778858788597886078861788627886378864788657886678867788687886978870788717887278873788747887578876788777887878879788807888178882788837888478885788867888778888788897889078891788927889378894788957889678897788987889978900789017890278903789047890578906789077890878909789107891178912789137891478915789167891778918789197892078921789227892378924789257892678927789287892978930789317893278933789347893578936789377893878939789407894178942789437894478945789467894778948789497895078951789527895378954789557895678957789587895978960789617896278963789647896578966789677896878969789707897178972789737897478975789767897778978789797898078981789827898378984789857898678987789887898978990789917899278993789947899578996789977899878999790007900179002790037900479005790067900779008790097901079011790127901379014790157901679017790187901979020790217902279023790247902579026790277902879029790307903179032790337903479035790367903779038790397904079041790427904379044790457904679047790487904979050790517905279053790547905579056790577905879059790607906179062790637906479065790667906779068790697907079071790727907379074790757907679077790787907979080790817908279083790847908579086790877908879089790907909179092790937909479095790967909779098790997910079101791027910379104791057910679107791087910979110791117911279113791147911579116791177911879119791207912179122791237912479125791267912779128791297913079131791327913379134791357913679137791387913979140791417914279143791447914579146791477914879149791507915179152791537915479155791567915779158791597916079161791627916379164791657916679167791687916979170791717917279173791747917579176791777917879179791807918179182791837918479185791867918779188791897919079191791927919379194791957919679197791987919979200792017920279203792047920579206792077920879209792107921179212792137921479215792167921779218792197922079221792227922379224792257922679227792287922979230792317923279233792347923579236792377923879239792407924179242792437924479245792467924779248792497925079251792527925379254792557925679257792587925979260792617926279263792647926579266792677926879269792707927179272792737927479275792767927779278792797928079281792827928379284792857928679287792887928979290792917929279293792947929579296792977929879299793007930179302793037930479305793067930779308793097931079311793127931379314793157931679317793187931979320793217932279323793247932579326793277932879329793307933179332793337933479335793367933779338793397934079341793427934379344793457934679347793487934979350793517935279353793547935579356793577935879359793607936179362793637936479365793667936779368793697937079371793727937379374793757937679377793787937979380793817938279383793847938579386793877938879389793907939179392793937939479395793967939779398793997940079401794027940379404794057940679407794087940979410794117941279413794147941579416794177941879419794207942179422794237942479425794267942779428794297943079431794327943379434794357943679437794387943979440794417944279443794447944579446794477944879449794507945179452794537945479455794567945779458794597946079461794627946379464794657946679467794687946979470794717947279473794747947579476794777947879479794807948179482794837948479485794867948779488794897949079491794927949379494794957949679497794987949979500795017950279503795047950579506795077950879509795107951179512795137951479515795167951779518795197952079521795227952379524795257952679527795287952979530795317953279533795347953579536795377953879539795407954179542795437954479545795467954779548795497955079551795527955379554795557955679557795587955979560795617956279563795647956579566795677956879569795707957179572795737957479575795767957779578795797958079581795827958379584795857958679587795887958979590795917959279593795947959579596795977959879599796007960179602796037960479605796067960779608796097961079611796127961379614796157961679617796187961979620796217962279623796247962579626796277962879629796307963179632796337963479635796367963779638796397964079641796427964379644796457964679647796487964979650796517965279653796547965579656796577965879659796607966179662796637966479665796667966779668796697967079671796727967379674796757967679677796787967979680796817968279683796847968579686796877968879689796907969179692796937969479695796967969779698796997970079701797027970379704797057970679707797087970979710797117971279713797147971579716797177971879719797207972179722797237972479725797267972779728797297973079731797327973379734797357973679737797387973979740797417974279743797447974579746797477974879749797507975179752797537975479755797567975779758797597976079761797627976379764797657976679767797687976979770797717977279773797747977579776797777977879779797807978179782797837978479785797867978779788797897979079791797927979379794797957979679797797987979979800798017980279803798047980579806798077980879809798107981179812798137981479815798167981779818798197982079821798227982379824798257982679827798287982979830798317983279833798347983579836798377983879839798407984179842798437984479845798467984779848798497985079851798527985379854798557985679857798587985979860798617986279863798647986579866798677986879869798707987179872798737987479875798767987779878798797988079881798827988379884798857988679887798887988979890798917989279893798947989579896798977989879899799007990179902799037990479905799067990779908799097991079911799127991379914799157991679917799187991979920799217992279923799247992579926799277992879929799307993179932799337993479935799367993779938799397994079941799427994379944799457994679947799487994979950799517995279953799547995579956799577995879959799607996179962799637996479965799667996779968799697997079971799727997379974799757997679977799787997979980799817998279983799847998579986799877998879989799907999179992799937999479995799967999779998799998000080001800028000380004800058000680007800088000980010800118001280013800148001580016800178001880019800208002180022800238002480025800268002780028800298003080031800328003380034800358003680037800388003980040800418004280043800448004580046800478004880049800508005180052800538005480055800568005780058800598006080061800628006380064800658006680067800688006980070800718007280073800748007580076800778007880079800808008180082800838008480085800868008780088800898009080091800928009380094800958009680097800988009980100801018010280103801048010580106801078010880109801108011180112801138011480115801168011780118801198012080121801228012380124801258012680127801288012980130801318013280133801348013580136801378013880139801408014180142801438014480145801468014780148801498015080151801528015380154801558015680157801588015980160801618016280163801648016580166801678016880169801708017180172801738017480175801768017780178801798018080181801828018380184801858018680187801888018980190801918019280193801948019580196801978019880199802008020180202802038020480205802068020780208802098021080211802128021380214802158021680217802188021980220802218022280223802248022580226802278022880229802308023180232802338023480235802368023780238802398024080241802428024380244802458024680247802488024980250802518025280253802548025580256802578025880259802608026180262802638026480265802668026780268802698027080271802728027380274802758027680277802788027980280802818028280283802848028580286802878028880289802908029180292802938029480295802968029780298802998030080301803028030380304803058030680307803088030980310803118031280313803148031580316803178031880319803208032180322803238032480325803268032780328803298033080331803328033380334803358033680337803388033980340803418034280343803448034580346803478034880349803508035180352803538035480355803568035780358803598036080361803628036380364803658036680367803688036980370803718037280373803748037580376803778037880379803808038180382803838038480385803868038780388803898039080391803928039380394803958039680397803988039980400804018040280403804048040580406804078040880409804108041180412804138041480415804168041780418804198042080421804228042380424804258042680427804288042980430804318043280433804348043580436804378043880439804408044180442804438044480445804468044780448804498045080451804528045380454804558045680457804588045980460804618046280463804648046580466804678046880469804708047180472804738047480475804768047780478804798048080481804828048380484804858048680487804888048980490804918049280493804948049580496804978049880499805008050180502805038050480505805068050780508805098051080511805128051380514805158051680517805188051980520805218052280523805248052580526805278052880529805308053180532805338053480535805368053780538805398054080541805428054380544805458054680547805488054980550805518055280553805548055580556805578055880559805608056180562805638056480565805668056780568805698057080571805728057380574805758057680577805788057980580805818058280583805848058580586805878058880589805908059180592805938059480595805968059780598805998060080601806028060380604806058060680607806088060980610806118061280613806148061580616806178061880619806208062180622806238062480625806268062780628806298063080631806328063380634806358063680637806388063980640806418064280643806448064580646806478064880649806508065180652806538065480655806568065780658806598066080661806628066380664806658066680667806688066980670806718067280673806748067580676806778067880679806808068180682806838068480685806868068780688806898069080691806928069380694806958069680697806988069980700807018070280703807048070580706807078070880709807108071180712807138071480715807168071780718807198072080721807228072380724807258072680727807288072980730807318073280733807348073580736807378073880739807408074180742807438074480745807468074780748807498075080751807528075380754807558075680757807588075980760807618076280763807648076580766807678076880769807708077180772807738077480775807768077780778807798078080781807828078380784807858078680787807888078980790807918079280793807948079580796807978079880799808008080180802808038080480805808068080780808808098081080811808128081380814808158081680817808188081980820808218082280823808248082580826808278082880829808308083180832808338083480835808368083780838808398084080841808428084380844808458084680847808488084980850808518085280853808548085580856808578085880859808608086180862808638086480865808668086780868808698087080871808728087380874808758087680877808788087980880808818088280883808848088580886808878088880889808908089180892808938089480895808968089780898808998090080901809028090380904809058090680907809088090980910809118091280913809148091580916809178091880919809208092180922809238092480925809268092780928809298093080931809328093380934809358093680937809388093980940809418094280943809448094580946809478094880949809508095180952809538095480955809568095780958809598096080961809628096380964809658096680967809688096980970809718097280973809748097580976809778097880979809808098180982809838098480985809868098780988809898099080991809928099380994809958099680997809988099981000810018100281003810048100581006810078100881009810108101181012810138101481015810168101781018810198102081021810228102381024810258102681027810288102981030810318103281033810348103581036810378103881039810408104181042810438104481045810468104781048810498105081051810528105381054810558105681057810588105981060810618106281063810648106581066810678106881069810708107181072810738107481075810768107781078810798108081081810828108381084810858108681087810888108981090810918109281093810948109581096810978109881099811008110181102811038110481105811068110781108811098111081111811128111381114811158111681117811188111981120811218112281123811248112581126811278112881129811308113181132811338113481135811368113781138811398114081141811428114381144811458114681147811488114981150811518115281153811548115581156811578115881159811608116181162811638116481165811668116781168811698117081171811728117381174811758117681177811788117981180811818118281183811848118581186811878118881189811908119181192811938119481195811968119781198811998120081201812028120381204812058120681207812088120981210812118121281213812148121581216812178121881219812208122181222812238122481225812268122781228812298123081231812328123381234812358123681237812388123981240812418124281243812448124581246812478124881249812508125181252812538125481255812568125781258812598126081261812628126381264812658126681267812688126981270812718127281273812748127581276812778127881279812808128181282812838128481285812868128781288812898129081291812928129381294812958129681297812988129981300813018130281303813048130581306813078130881309813108131181312813138131481315813168131781318813198132081321813228132381324813258132681327813288132981330813318133281333813348133581336813378133881339813408134181342813438134481345813468134781348813498135081351813528135381354813558135681357813588135981360813618136281363813648136581366813678136881369813708137181372813738137481375813768137781378813798138081381813828138381384813858138681387813888138981390813918139281393813948139581396813978139881399814008140181402814038140481405814068140781408814098141081411814128141381414814158141681417814188141981420814218142281423814248142581426814278142881429814308143181432814338143481435814368143781438814398144081441814428144381444814458144681447814488144981450814518145281453814548145581456814578145881459814608146181462814638146481465814668146781468814698147081471814728147381474814758147681477814788147981480814818148281483814848148581486814878148881489814908149181492814938149481495814968149781498814998150081501815028150381504815058150681507815088150981510815118151281513815148151581516815178151881519815208152181522815238152481525815268152781528815298153081531815328153381534815358153681537815388153981540815418154281543815448154581546815478154881549815508155181552815538155481555815568155781558815598156081561815628156381564815658156681567815688156981570815718157281573815748157581576815778157881579815808158181582815838158481585815868158781588815898159081591815928159381594815958159681597815988159981600816018160281603816048160581606816078160881609816108161181612816138161481615816168161781618816198162081621816228162381624816258162681627816288162981630816318163281633816348163581636816378163881639816408164181642816438164481645816468164781648816498165081651816528165381654816558165681657816588165981660816618166281663816648166581666816678166881669816708167181672816738167481675816768167781678816798168081681816828168381684816858168681687816888168981690816918169281693816948169581696816978169881699817008170181702817038170481705817068170781708817098171081711817128171381714817158171681717817188171981720817218172281723817248172581726817278172881729817308173181732817338173481735817368173781738817398174081741817428174381744817458174681747817488174981750817518175281753817548175581756817578175881759817608176181762817638176481765817668176781768817698177081771817728177381774817758177681777817788177981780817818178281783817848178581786817878178881789817908179181792817938179481795817968179781798817998180081801818028180381804818058180681807818088180981810818118181281813818148181581816818178181881819818208182181822818238182481825818268182781828818298183081831818328183381834818358183681837818388183981840818418184281843818448184581846818478184881849818508185181852818538185481855818568185781858818598186081861818628186381864818658186681867818688186981870818718187281873818748187581876818778187881879818808188181882818838188481885818868188781888818898189081891818928189381894818958189681897818988189981900819018190281903819048190581906819078190881909819108191181912819138191481915819168191781918819198192081921819228192381924819258192681927819288192981930819318193281933819348193581936819378193881939819408194181942819438194481945819468194781948819498195081951819528195381954819558195681957819588195981960819618196281963819648196581966819678196881969819708197181972819738197481975819768197781978819798198081981819828198381984819858198681987819888198981990819918199281993819948199581996819978199881999820008200182002820038200482005820068200782008820098201082011820128201382014820158201682017820188201982020820218202282023820248202582026820278202882029820308203182032820338203482035820368203782038820398204082041820428204382044820458204682047820488204982050820518205282053820548205582056820578205882059820608206182062820638206482065820668206782068820698207082071820728207382074820758207682077820788207982080820818208282083820848208582086820878208882089820908209182092820938209482095820968209782098820998210082101821028210382104821058210682107821088210982110821118211282113821148211582116821178211882119821208212182122821238212482125821268212782128821298213082131821328213382134821358213682137821388213982140821418214282143821448214582146821478214882149821508215182152821538215482155821568215782158821598216082161821628216382164821658216682167821688216982170821718217282173821748217582176821778217882179821808218182182821838218482185821868218782188821898219082191821928219382194821958219682197821988219982200822018220282203822048220582206822078220882209822108221182212822138221482215822168221782218822198222082221822228222382224822258222682227822288222982230822318223282233822348223582236822378223882239822408224182242822438224482245822468224782248822498225082251822528225382254822558225682257822588225982260822618226282263822648226582266822678226882269822708227182272822738227482275822768227782278822798228082281822828228382284822858228682287822888228982290822918229282293822948229582296822978229882299823008230182302823038230482305823068230782308823098231082311823128231382314823158231682317823188231982320823218232282323823248232582326823278232882329823308233182332823338233482335823368233782338823398234082341823428234382344823458234682347823488234982350823518235282353823548235582356823578235882359823608236182362823638236482365823668236782368823698237082371823728237382374823758237682377823788237982380823818238282383823848238582386823878238882389823908239182392823938239482395823968239782398823998240082401824028240382404824058240682407824088240982410824118241282413824148241582416824178241882419824208242182422824238242482425824268242782428824298243082431824328243382434824358243682437824388243982440824418244282443824448244582446824478244882449824508245182452824538245482455824568245782458824598246082461824628246382464824658246682467824688246982470824718247282473824748247582476824778247882479824808248182482824838248482485824868248782488824898249082491824928249382494824958249682497824988249982500825018250282503825048250582506825078250882509825108251182512825138251482515825168251782518825198252082521825228252382524825258252682527825288252982530825318253282533825348253582536825378253882539825408254182542825438254482545825468254782548825498255082551825528255382554825558255682557825588255982560825618256282563825648256582566825678256882569825708257182572825738257482575825768257782578825798258082581825828258382584825858258682587825888258982590825918259282593825948259582596825978259882599826008260182602826038260482605826068260782608826098261082611826128261382614826158261682617826188261982620826218262282623826248262582626826278262882629826308263182632826338263482635826368263782638826398264082641826428264382644826458264682647826488264982650826518265282653826548265582656826578265882659826608266182662826638266482665826668266782668826698267082671826728267382674826758267682677826788267982680826818268282683826848268582686826878268882689826908269182692826938269482695826968269782698826998270082701827028270382704827058270682707827088270982710827118271282713827148271582716827178271882719827208272182722827238272482725827268272782728827298273082731827328273382734827358273682737827388273982740827418274282743827448274582746827478274882749827508275182752827538275482755827568275782758827598276082761827628276382764827658276682767827688276982770827718277282773827748277582776827778277882779827808278182782827838278482785827868278782788827898279082791827928279382794827958279682797827988279982800828018280282803828048280582806828078280882809828108281182812828138281482815828168281782818828198282082821828228282382824828258282682827828288282982830828318283282833828348283582836828378283882839828408284182842828438284482845828468284782848828498285082851828528285382854828558285682857828588285982860828618286282863828648286582866828678286882869828708287182872828738287482875828768287782878828798288082881828828288382884828858288682887828888288982890828918289282893828948289582896828978289882899829008290182902829038290482905829068290782908829098291082911829128291382914829158291682917829188291982920829218292282923829248292582926829278292882929829308293182932829338293482935829368293782938829398294082941829428294382944829458294682947829488294982950829518295282953829548295582956829578295882959829608296182962829638296482965829668296782968829698297082971829728297382974829758297682977829788297982980829818298282983829848298582986829878298882989829908299182992829938299482995829968299782998829998300083001830028300383004830058300683007830088300983010830118301283013830148301583016830178301883019830208302183022830238302483025830268302783028830298303083031830328303383034830358303683037830388303983040830418304283043830448304583046830478304883049830508305183052830538305483055830568305783058830598306083061830628306383064830658306683067830688306983070830718307283073830748307583076830778307883079830808308183082830838308483085830868308783088830898309083091830928309383094830958309683097830988309983100831018310283103831048310583106831078310883109831108311183112831138311483115831168311783118831198312083121831228312383124831258312683127831288312983130831318313283133831348313583136831378313883139831408314183142831438314483145831468314783148831498315083151831528315383154831558315683157831588315983160831618316283163831648316583166831678316883169831708317183172831738317483175831768317783178831798318083181831828318383184831858318683187831888318983190831918319283193831948319583196831978319883199832008320183202832038320483205832068320783208832098321083211832128321383214832158321683217832188321983220832218322283223832248322583226832278322883229832308323183232832338323483235832368323783238832398324083241832428324383244832458324683247832488324983250832518325283253832548325583256832578325883259832608326183262832638326483265832668326783268832698327083271832728327383274832758327683277832788327983280832818328283283832848328583286832878328883289832908329183292832938329483295832968329783298832998330083301833028330383304833058330683307833088330983310833118331283313833148331583316833178331883319833208332183322833238332483325833268332783328833298333083331833328333383334833358333683337833388333983340833418334283343833448334583346833478334883349833508335183352833538335483355833568335783358833598336083361833628336383364833658336683367833688336983370833718337283373833748337583376833778337883379833808338183382833838338483385833868338783388833898339083391833928339383394833958339683397833988339983400834018340283403834048340583406834078340883409834108341183412834138341483415834168341783418834198342083421834228342383424834258342683427834288342983430834318343283433834348343583436834378343883439834408344183442834438344483445834468344783448834498345083451834528345383454834558345683457834588345983460834618346283463834648346583466834678346883469834708347183472834738347483475834768347783478834798348083481834828348383484834858348683487834888348983490834918349283493834948349583496834978349883499835008350183502835038350483505835068350783508835098351083511835128351383514835158351683517835188351983520835218352283523835248352583526835278352883529835308353183532835338353483535835368353783538835398354083541835428354383544835458354683547835488354983550835518355283553835548355583556835578355883559835608356183562835638356483565835668356783568835698357083571835728357383574835758357683577835788357983580835818358283583835848358583586835878358883589835908359183592835938359483595835968359783598835998360083601836028360383604836058360683607836088360983610836118361283613836148361583616836178361883619836208362183622836238362483625836268362783628836298363083631836328363383634836358363683637836388363983640836418364283643836448364583646836478364883649836508365183652836538365483655836568365783658836598366083661836628366383664836658366683667836688366983670836718367283673836748367583676836778367883679836808368183682836838368483685836868368783688836898369083691836928369383694836958369683697836988369983700837018370283703837048370583706837078370883709837108371183712837138371483715837168371783718837198372083721837228372383724837258372683727837288372983730837318373283733837348373583736837378373883739837408374183742837438374483745837468374783748837498375083751837528375383754837558375683757837588375983760837618376283763837648376583766837678376883769837708377183772837738377483775837768377783778837798378083781837828378383784837858378683787837888378983790837918379283793837948379583796837978379883799838008380183802838038380483805838068380783808838098381083811838128381383814838158381683817838188381983820838218382283823838248382583826838278382883829838308383183832838338383483835838368383783838838398384083841838428384383844838458384683847838488384983850838518385283853838548385583856838578385883859838608386183862838638386483865838668386783868838698387083871838728387383874838758387683877838788387983880838818388283883838848388583886838878388883889838908389183892838938389483895838968389783898838998390083901839028390383904839058390683907839088390983910839118391283913839148391583916839178391883919839208392183922839238392483925839268392783928839298393083931839328393383934839358393683937839388393983940839418394283943839448394583946839478394883949839508395183952839538395483955839568395783958839598396083961839628396383964839658396683967839688396983970839718397283973839748397583976839778397883979839808398183982839838398483985839868398783988839898399083991839928399383994839958399683997839988399984000840018400284003840048400584006840078400884009840108401184012840138401484015840168401784018840198402084021840228402384024840258402684027840288402984030840318403284033840348403584036840378403884039840408404184042840438404484045840468404784048840498405084051840528405384054840558405684057840588405984060840618406284063840648406584066840678406884069840708407184072840738407484075840768407784078840798408084081840828408384084840858408684087840888408984090840918409284093840948409584096840978409884099841008410184102841038410484105841068410784108841098411084111841128411384114841158411684117841188411984120841218412284123841248412584126841278412884129841308413184132841338413484135841368413784138841398414084141841428414384144841458414684147841488414984150841518415284153841548415584156841578415884159841608416184162841638416484165841668416784168841698417084171841728417384174841758417684177841788417984180841818418284183841848418584186841878418884189841908419184192841938419484195841968419784198841998420084201842028420384204842058420684207842088420984210842118421284213842148421584216842178421884219842208422184222842238422484225842268422784228842298423084231842328423384234842358423684237842388423984240842418424284243842448424584246842478424884249842508425184252842538425484255842568425784258842598426084261842628426384264842658426684267842688426984270842718427284273842748427584276842778427884279842808428184282842838428484285842868428784288842898429084291842928429384294842958429684297842988429984300843018430284303843048430584306843078430884309843108431184312843138431484315843168431784318843198432084321843228432384324843258432684327843288432984330843318433284333843348433584336843378433884339843408434184342843438434484345843468434784348843498435084351843528435384354843558435684357843588435984360843618436284363843648436584366843678436884369843708437184372843738437484375843768437784378843798438084381843828438384384843858438684387843888438984390843918439284393843948439584396843978439884399844008440184402844038440484405844068440784408844098441084411844128441384414844158441684417844188441984420844218442284423844248442584426844278442884429844308443184432844338443484435844368443784438844398444084441844428444384444844458444684447844488444984450844518445284453844548445584456844578445884459844608446184462844638446484465844668446784468844698447084471844728447384474844758447684477844788447984480844818448284483844848448584486844878448884489844908449184492844938449484495844968449784498844998450084501845028450384504845058450684507845088450984510845118451284513845148451584516845178451884519845208452184522845238452484525845268452784528845298453084531845328453384534845358453684537845388453984540845418454284543845448454584546845478454884549845508455184552845538455484555845568455784558845598456084561845628456384564845658456684567845688456984570845718457284573845748457584576845778457884579845808458184582845838458484585845868458784588845898459084591845928459384594845958459684597845988459984600846018460284603846048460584606846078460884609846108461184612846138461484615846168461784618846198462084621846228462384624846258462684627846288462984630846318463284633846348463584636846378463884639846408464184642846438464484645846468464784648846498465084651846528465384654846558465684657846588465984660846618466284663846648466584666846678466884669846708467184672846738467484675846768467784678846798468084681846828468384684846858468684687846888468984690846918469284693846948469584696846978469884699847008470184702847038470484705847068470784708847098471084711847128471384714847158471684717847188471984720847218472284723847248472584726847278472884729847308473184732847338473484735847368473784738847398474084741847428474384744847458474684747847488474984750847518475284753847548475584756847578475884759847608476184762847638476484765847668476784768847698477084771847728477384774847758477684777847788477984780847818478284783847848478584786847878478884789847908479184792847938479484795847968479784798847998480084801848028480384804848058480684807848088480984810848118481284813848148481584816848178481884819848208482184822848238482484825848268482784828848298483084831848328483384834848358483684837848388483984840848418484284843848448484584846848478484884849848508485184852848538485484855848568485784858848598486084861848628486384864848658486684867848688486984870848718487284873848748487584876848778487884879848808488184882848838488484885848868488784888848898489084891848928489384894848958489684897848988489984900849018490284903849048490584906849078490884909849108491184912849138491484915849168491784918849198492084921849228492384924849258492684927849288492984930849318493284933849348493584936849378493884939849408494184942849438494484945849468494784948849498495084951849528495384954849558495684957849588495984960849618496284963849648496584966849678496884969849708497184972849738497484975849768497784978849798498084981849828498384984849858498684987849888498984990849918499284993849948499584996849978499884999850008500185002850038500485005850068500785008850098501085011850128501385014850158501685017850188501985020850218502285023850248502585026850278502885029850308503185032850338503485035850368503785038850398504085041850428504385044850458504685047850488504985050850518505285053850548505585056850578505885059850608506185062850638506485065850668506785068850698507085071850728507385074850758507685077850788507985080850818508285083850848508585086850878508885089850908509185092850938509485095850968509785098850998510085101851028510385104851058510685107851088510985110851118511285113851148511585116851178511885119851208512185122851238512485125851268512785128851298513085131851328513385134851358513685137851388513985140851418514285143851448514585146851478514885149851508515185152851538515485155851568515785158851598516085161851628516385164851658516685167851688516985170851718517285173851748517585176851778517885179851808518185182851838518485185851868518785188851898519085191851928519385194851958519685197851988519985200852018520285203852048520585206852078520885209852108521185212852138521485215852168521785218852198522085221852228522385224852258522685227852288522985230852318523285233852348523585236852378523885239852408524185242852438524485245852468524785248852498525085251852528525385254852558525685257852588525985260852618526285263852648526585266852678526885269852708527185272852738527485275852768527785278852798528085281852828528385284852858528685287852888528985290852918529285293852948529585296852978529885299853008530185302853038530485305853068530785308853098531085311853128531385314853158531685317853188531985320853218532285323853248532585326853278532885329853308533185332853338533485335853368533785338853398534085341853428534385344853458534685347853488534985350853518535285353853548535585356853578535885359853608536185362853638536485365853668536785368853698537085371853728537385374853758537685377853788537985380853818538285383853848538585386853878538885389853908539185392853938539485395853968539785398853998540085401854028540385404854058540685407854088540985410854118541285413854148541585416854178541885419854208542185422854238542485425854268542785428854298543085431854328543385434854358543685437854388543985440854418544285443854448544585446854478544885449854508545185452854538545485455854568545785458854598546085461854628546385464854658546685467854688546985470854718547285473854748547585476854778547885479854808548185482854838548485485854868548785488854898549085491854928549385494854958549685497854988549985500855018550285503855048550585506855078550885509855108551185512855138551485515855168551785518855198552085521855228552385524855258552685527855288552985530855318553285533855348553585536855378553885539855408554185542855438554485545855468554785548855498555085551855528555385554855558555685557855588555985560855618556285563855648556585566855678556885569855708557185572855738557485575855768557785578855798558085581855828558385584855858558685587855888558985590855918559285593855948559585596855978559885599856008560185602856038560485605856068560785608856098561085611856128561385614856158561685617856188561985620856218562285623856248562585626856278562885629856308563185632856338563485635856368563785638856398564085641856428564385644856458564685647856488564985650856518565285653856548565585656856578565885659856608566185662856638566485665856668566785668856698567085671856728567385674856758567685677856788567985680856818568285683856848568585686856878568885689856908569185692856938569485695856968569785698856998570085701857028570385704857058570685707857088570985710857118571285713857148571585716857178571885719857208572185722857238572485725857268572785728857298573085731857328573385734857358573685737857388573985740857418574285743857448574585746857478574885749857508575185752857538575485755857568575785758857598576085761857628576385764857658576685767857688576985770857718577285773857748577585776857778577885779857808578185782857838578485785857868578785788857898579085791857928579385794857958579685797857988579985800858018580285803858048580585806858078580885809858108581185812858138581485815858168581785818858198582085821858228582385824858258582685827858288582985830858318583285833858348583585836858378583885839858408584185842858438584485845858468584785848858498585085851858528585385854858558585685857858588585985860858618586285863858648586585866858678586885869858708587185872858738587485875858768587785878858798588085881858828588385884858858588685887858888588985890858918589285893858948589585896858978589885899859008590185902859038590485905859068590785908859098591085911859128591385914859158591685917859188591985920859218592285923859248592585926859278592885929859308593185932859338593485935859368593785938859398594085941859428594385944859458594685947859488594985950859518595285953859548595585956859578595885959859608596185962859638596485965859668596785968859698597085971859728597385974859758597685977859788597985980859818598285983859848598585986859878598885989859908599185992859938599485995859968599785998859998600086001860028600386004860058600686007860088600986010860118601286013860148601586016860178601886019860208602186022860238602486025860268602786028860298603086031860328603386034860358603686037860388603986040860418604286043860448604586046860478604886049860508605186052860538605486055860568605786058860598606086061860628606386064860658606686067860688606986070860718607286073860748607586076860778607886079860808608186082860838608486085860868608786088860898609086091860928609386094860958609686097860988609986100861018610286103861048610586106861078610886109861108611186112861138611486115861168611786118861198612086121861228612386124861258612686127861288612986130861318613286133861348613586136861378613886139861408614186142861438614486145861468614786148861498615086151861528615386154861558615686157861588615986160861618616286163861648616586166861678616886169861708617186172861738617486175861768617786178861798618086181861828618386184861858618686187861888618986190861918619286193861948619586196861978619886199862008620186202862038620486205862068620786208862098621086211862128621386214862158621686217862188621986220862218622286223862248622586226862278622886229862308623186232862338623486235862368623786238862398624086241862428624386244862458624686247862488624986250862518625286253862548625586256862578625886259862608626186262862638626486265862668626786268862698627086271862728627386274862758627686277862788627986280862818628286283862848628586286862878628886289862908629186292862938629486295862968629786298862998630086301863028630386304863058630686307863088630986310863118631286313863148631586316863178631886319863208632186322863238632486325863268632786328863298633086331863328633386334863358633686337863388633986340863418634286343863448634586346863478634886349863508635186352863538635486355863568635786358863598636086361863628636386364863658636686367863688636986370863718637286373863748637586376863778637886379863808638186382863838638486385863868638786388863898639086391863928639386394863958639686397863988639986400864018640286403864048640586406864078640886409864108641186412864138641486415864168641786418864198642086421864228642386424864258642686427864288642986430864318643286433864348643586436864378643886439864408644186442864438644486445864468644786448864498645086451864528645386454864558645686457864588645986460864618646286463864648646586466864678646886469864708647186472864738647486475864768647786478864798648086481864828648386484864858648686487864888648986490864918649286493864948649586496864978649886499865008650186502865038650486505865068650786508865098651086511865128651386514865158651686517865188651986520865218652286523865248652586526865278652886529865308653186532865338653486535865368653786538865398654086541865428654386544865458654686547865488654986550865518655286553865548655586556865578655886559865608656186562865638656486565865668656786568865698657086571865728657386574865758657686577865788657986580865818658286583865848658586586865878658886589865908659186592865938659486595865968659786598865998660086601866028660386604866058660686607866088660986610866118661286613866148661586616866178661886619866208662186622866238662486625866268662786628866298663086631866328663386634866358663686637866388663986640866418664286643866448664586646866478664886649866508665186652866538665486655866568665786658866598666086661866628666386664866658666686667866688666986670866718667286673866748667586676866778667886679866808668186682866838668486685866868668786688866898669086691866928669386694866958669686697866988669986700867018670286703867048670586706867078670886709867108671186712867138671486715867168671786718867198672086721867228672386724867258672686727867288672986730867318673286733867348673586736867378673886739867408674186742867438674486745867468674786748867498675086751867528675386754867558675686757867588675986760867618676286763867648676586766867678676886769867708677186772867738677486775867768677786778867798678086781867828678386784867858678686787867888678986790867918679286793867948679586796867978679886799868008680186802868038680486805868068680786808868098681086811868128681386814868158681686817868188681986820868218682286823868248682586826868278682886829868308683186832868338683486835868368683786838868398684086841868428684386844868458684686847868488684986850868518685286853868548685586856868578685886859868608686186862868638686486865868668686786868868698687086871868728687386874868758687686877868788687986880868818688286883868848688586886868878688886889868908689186892868938689486895868968689786898868998690086901869028690386904869058690686907869088690986910869118691286913869148691586916869178691886919869208692186922869238692486925869268692786928869298693086931869328693386934869358693686937869388693986940869418694286943869448694586946869478694886949869508695186952869538695486955869568695786958869598696086961869628696386964869658696686967869688696986970869718697286973869748697586976869778697886979869808698186982869838698486985869868698786988869898699086991869928699386994869958699686997869988699987000870018700287003870048700587006870078700887009870108701187012870138701487015870168701787018870198702087021870228702387024870258702687027870288702987030870318703287033870348703587036870378703887039870408704187042870438704487045870468704787048870498705087051870528705387054870558705687057870588705987060870618706287063870648706587066870678706887069870708707187072870738707487075870768707787078870798708087081870828708387084870858708687087870888708987090870918709287093870948709587096870978709887099871008710187102871038710487105871068710787108871098711087111871128711387114871158711687117871188711987120871218712287123871248712587126871278712887129871308713187132871338713487135871368713787138871398714087141871428714387144871458714687147871488714987150871518715287153871548715587156871578715887159871608716187162871638716487165871668716787168871698717087171871728717387174871758717687177871788717987180871818718287183871848718587186871878718887189871908719187192871938719487195871968719787198871998720087201872028720387204872058720687207872088720987210872118721287213872148721587216872178721887219872208722187222872238722487225872268722787228872298723087231872328723387234872358723687237872388723987240872418724287243872448724587246872478724887249872508725187252872538725487255872568725787258872598726087261872628726387264872658726687267872688726987270872718727287273872748727587276872778727887279872808728187282872838728487285872868728787288872898729087291872928729387294872958729687297872988729987300873018730287303873048730587306873078730887309873108731187312873138731487315873168731787318873198732087321873228732387324873258732687327873288732987330873318733287333873348733587336873378733887339873408734187342873438734487345873468734787348873498735087351873528735387354873558735687357873588735987360873618736287363873648736587366873678736887369873708737187372873738737487375873768737787378873798738087381873828738387384873858738687387873888738987390873918739287393873948739587396873978739887399874008740187402874038740487405874068740787408874098741087411874128741387414874158741687417874188741987420874218742287423874248742587426874278742887429874308743187432874338743487435874368743787438874398744087441874428744387444874458744687447874488744987450874518745287453874548745587456874578745887459874608746187462874638746487465874668746787468874698747087471874728747387474874758747687477874788747987480874818748287483874848748587486874878748887489874908749187492874938749487495874968749787498874998750087501875028750387504875058750687507875088750987510875118751287513875148751587516875178751887519875208752187522875238752487525875268752787528875298753087531875328753387534875358753687537875388753987540875418754287543875448754587546875478754887549875508755187552875538755487555875568755787558875598756087561875628756387564875658756687567875688756987570875718757287573875748757587576875778757887579875808758187582875838758487585875868758787588875898759087591875928759387594875958759687597875988759987600876018760287603876048760587606876078760887609876108761187612876138761487615876168761787618876198762087621876228762387624876258762687627876288762987630876318763287633876348763587636876378763887639876408764187642876438764487645876468764787648876498765087651876528765387654876558765687657876588765987660876618766287663876648766587666876678766887669876708767187672876738767487675876768767787678876798768087681876828768387684876858768687687876888768987690876918769287693876948769587696876978769887699877008770187702877038770487705877068770787708877098771087711877128771387714877158771687717877188771987720877218772287723877248772587726877278772887729877308773187732877338773487735877368773787738877398774087741877428774387744877458774687747877488774987750877518775287753877548775587756877578775887759877608776187762877638776487765877668776787768877698777087771877728777387774877758777687777877788777987780877818778287783877848778587786877878778887789877908779187792877938779487795877968779787798877998780087801878028780387804878058780687807878088780987810878118781287813878148781587816878178781887819878208782187822878238782487825878268782787828878298783087831878328783387834878358783687837878388783987840878418784287843878448784587846878478784887849878508785187852878538785487855878568785787858878598786087861878628786387864878658786687867878688786987870878718787287873878748787587876878778787887879878808788187882878838788487885878868788787888878898789087891878928789387894878958789687897878988789987900879018790287903879048790587906879078790887909879108791187912879138791487915879168791787918879198792087921879228792387924879258792687927879288792987930879318793287933879348793587936879378793887939879408794187942879438794487945879468794787948879498795087951879528795387954879558795687957879588795987960879618796287963879648796587966879678796887969879708797187972879738797487975879768797787978879798798087981879828798387984879858798687987879888798987990879918799287993879948799587996879978799887999880008800188002880038800488005880068800788008880098801088011880128801388014880158801688017880188801988020880218802288023880248802588026880278802888029880308803188032880338803488035880368803788038880398804088041880428804388044880458804688047880488804988050880518805288053880548805588056880578805888059880608806188062880638806488065880668806788068880698807088071880728807388074880758807688077880788807988080880818808288083880848808588086880878808888089880908809188092880938809488095880968809788098880998810088101881028810388104881058810688107881088810988110881118811288113881148811588116881178811888119881208812188122881238812488125881268812788128881298813088131881328813388134881358813688137881388813988140881418814288143881448814588146881478814888149881508815188152881538815488155881568815788158881598816088161881628816388164881658816688167881688816988170881718817288173881748817588176881778817888179881808818188182881838818488185881868818788188881898819088191881928819388194881958819688197881988819988200882018820288203882048820588206882078820888209882108821188212882138821488215882168821788218882198822088221882228822388224882258822688227882288822988230882318823288233882348823588236882378823888239882408824188242882438824488245882468824788248882498825088251882528825388254882558825688257882588825988260882618826288263882648826588266882678826888269882708827188272882738827488275882768827788278882798828088281882828828388284882858828688287882888828988290882918829288293882948829588296882978829888299883008830188302883038830488305883068830788308883098831088311883128831388314883158831688317883188831988320883218832288323883248832588326883278832888329883308833188332883338833488335883368833788338883398834088341883428834388344883458834688347883488834988350883518835288353883548835588356883578835888359883608836188362883638836488365883668836788368883698837088371883728837388374883758837688377883788837988380883818838288383883848838588386883878838888389883908839188392883938839488395883968839788398883998840088401884028840388404884058840688407884088840988410884118841288413884148841588416884178841888419884208842188422884238842488425884268842788428884298843088431884328843388434884358843688437884388843988440884418844288443884448844588446884478844888449884508845188452884538845488455884568845788458884598846088461884628846388464884658846688467884688846988470884718847288473884748847588476884778847888479884808848188482884838848488485884868848788488884898849088491884928849388494884958849688497884988849988500885018850288503885048850588506885078850888509885108851188512885138851488515885168851788518885198852088521885228852388524885258852688527885288852988530885318853288533885348853588536885378853888539885408854188542885438854488545885468854788548885498855088551885528855388554885558855688557885588855988560885618856288563885648856588566885678856888569885708857188572885738857488575885768857788578885798858088581885828858388584885858858688587885888858988590885918859288593885948859588596885978859888599886008860188602886038860488605886068860788608886098861088611886128861388614886158861688617886188861988620886218862288623886248862588626886278862888629886308863188632886338863488635886368863788638886398864088641886428864388644886458864688647886488864988650886518865288653886548865588656886578865888659886608866188662886638866488665886668866788668886698867088671886728867388674886758867688677886788867988680886818868288683886848868588686886878868888689886908869188692886938869488695886968869788698886998870088701887028870388704887058870688707887088870988710887118871288713887148871588716887178871888719887208872188722887238872488725887268872788728887298873088731887328873388734887358873688737887388873988740887418874288743887448874588746887478874888749887508875188752887538875488755887568875788758887598876088761887628876388764887658876688767887688876988770887718877288773887748877588776887778877888779887808878188782887838878488785887868878788788887898879088791887928879388794887958879688797887988879988800888018880288803888048880588806888078880888809888108881188812888138881488815888168881788818888198882088821888228882388824888258882688827888288882988830888318883288833888348883588836888378883888839888408884188842888438884488845888468884788848888498885088851888528885388854888558885688857888588885988860888618886288863888648886588866888678886888869888708887188872888738887488875888768887788878888798888088881888828888388884888858888688887888888888988890888918889288893888948889588896888978889888899889008890188902889038890488905889068890788908889098891088911889128891388914889158891688917889188891988920889218892288923889248892588926889278892888929889308893188932889338893488935889368893788938889398894088941889428894388944889458894688947889488894988950889518895288953889548895588956889578895888959889608896188962889638896488965889668896788968889698897088971889728897388974889758897688977889788897988980889818898288983889848898588986889878898888989889908899188992889938899488995889968899788998889998900089001890028900389004890058900689007890088900989010890118901289013890148901589016890178901889019890208902189022890238902489025890268902789028890298903089031890328903389034890358903689037890388903989040890418904289043890448904589046890478904889049890508905189052890538905489055890568905789058890598906089061890628906389064890658906689067890688906989070890718907289073890748907589076890778907889079890808908189082890838908489085890868908789088890898909089091890928909389094890958909689097890988909989100891018910289103891048910589106891078910889109891108911189112891138911489115891168911789118891198912089121891228912389124891258912689127891288912989130891318913289133891348913589136891378913889139891408914189142891438914489145891468914789148891498915089151891528915389154891558915689157891588915989160891618916289163891648916589166891678916889169891708917189172891738917489175891768917789178891798918089181891828918389184891858918689187891888918989190891918919289193891948919589196891978919889199892008920189202892038920489205892068920789208892098921089211892128921389214892158921689217892188921989220892218922289223892248922589226892278922889229892308923189232892338923489235892368923789238892398924089241892428924389244892458924689247892488924989250892518925289253892548925589256892578925889259892608926189262892638926489265892668926789268892698927089271892728927389274892758927689277892788927989280892818928289283892848928589286892878928889289892908929189292892938929489295892968929789298892998930089301893028930389304893058930689307893088930989310893118931289313893148931589316893178931889319893208932189322893238932489325893268932789328893298933089331893328933389334893358933689337893388933989340893418934289343893448934589346893478934889349893508935189352893538935489355893568935789358893598936089361893628936389364893658936689367893688936989370893718937289373893748937589376893778937889379893808938189382893838938489385893868938789388893898939089391893928939389394893958939689397893988939989400894018940289403894048940589406894078940889409894108941189412894138941489415894168941789418894198942089421894228942389424894258942689427894288942989430894318943289433894348943589436894378943889439894408944189442894438944489445894468944789448894498945089451894528945389454894558945689457894588945989460894618946289463894648946589466894678946889469894708947189472894738947489475894768947789478894798948089481894828948389484894858948689487894888948989490894918949289493894948949589496894978949889499895008950189502895038950489505895068950789508895098951089511895128951389514895158951689517895188951989520895218952289523895248952589526895278952889529895308953189532895338953489535895368953789538895398954089541895428954389544895458954689547895488954989550895518955289553895548955589556895578955889559895608956189562895638956489565895668956789568895698957089571895728957389574895758957689577895788957989580895818958289583895848958589586895878958889589895908959189592895938959489595895968959789598895998960089601896028960389604896058960689607896088960989610896118961289613896148961589616896178961889619896208962189622896238962489625896268962789628896298963089631896328963389634896358963689637896388963989640896418964289643896448964589646896478964889649896508965189652896538965489655896568965789658896598966089661896628966389664896658966689667896688966989670896718967289673896748967589676896778967889679896808968189682896838968489685896868968789688896898969089691896928969389694896958969689697896988969989700897018970289703897048970589706897078970889709897108971189712897138971489715897168971789718897198972089721897228972389724897258972689727897288972989730897318973289733897348973589736897378973889739897408974189742897438974489745897468974789748897498975089751897528975389754897558975689757897588975989760897618976289763897648976589766897678976889769897708977189772897738977489775897768977789778897798978089781897828978389784897858978689787897888978989790897918979289793897948979589796897978979889799898008980189802898038980489805898068980789808898098981089811898128981389814898158981689817898188981989820898218982289823898248982589826898278982889829898308983189832898338983489835898368983789838898398984089841898428984389844898458984689847898488984989850898518985289853898548985589856898578985889859898608986189862898638986489865898668986789868898698987089871898728987389874898758987689877898788987989880898818988289883898848988589886898878988889889898908989189892898938989489895898968989789898898998990089901899028990389904899058990689907899088990989910899118991289913899148991589916899178991889919899208992189922899238992489925899268992789928899298993089931899328993389934899358993689937899388993989940899418994289943899448994589946899478994889949899508995189952899538995489955899568995789958899598996089961899628996389964899658996689967899688996989970899718997289973899748997589976899778997889979899808998189982899838998489985899868998789988899898999089991899928999389994899958999689997899988999990000900019000290003900049000590006900079000890009900109001190012900139001490015900169001790018900199002090021900229002390024900259002690027900289002990030900319003290033900349003590036900379003890039900409004190042900439004490045900469004790048900499005090051900529005390054900559005690057900589005990060900619006290063900649006590066900679006890069900709007190072900739007490075900769007790078900799008090081900829008390084900859008690087900889008990090900919009290093900949009590096900979009890099901009010190102901039010490105901069010790108901099011090111901129011390114901159011690117901189011990120901219012290123901249012590126901279012890129901309013190132901339013490135901369013790138901399014090141901429014390144901459014690147901489014990150901519015290153901549015590156901579015890159901609016190162901639016490165901669016790168901699017090171901729017390174901759017690177901789017990180901819018290183901849018590186901879018890189901909019190192901939019490195901969019790198901999020090201902029020390204902059020690207902089020990210902119021290213902149021590216902179021890219902209022190222902239022490225902269022790228902299023090231902329023390234902359023690237902389023990240902419024290243902449024590246902479024890249902509025190252902539025490255902569025790258902599026090261902629026390264902659026690267902689026990270902719027290273902749027590276902779027890279902809028190282902839028490285902869028790288902899029090291902929029390294902959029690297902989029990300903019030290303903049030590306903079030890309903109031190312903139031490315903169031790318903199032090321903229032390324903259032690327903289032990330903319033290333903349033590336903379033890339903409034190342903439034490345903469034790348903499035090351903529035390354903559035690357903589035990360903619036290363903649036590366903679036890369903709037190372903739037490375903769037790378903799038090381903829038390384903859038690387903889038990390903919039290393903949039590396903979039890399904009040190402904039040490405904069040790408904099041090411904129041390414904159041690417904189041990420904219042290423904249042590426904279042890429904309043190432904339043490435904369043790438904399044090441904429044390444904459044690447904489044990450904519045290453904549045590456904579045890459904609046190462904639046490465904669046790468904699047090471904729047390474904759047690477904789047990480904819048290483904849048590486904879048890489904909049190492904939049490495904969049790498904999050090501905029050390504905059050690507905089050990510905119051290513905149051590516905179051890519905209052190522905239052490525905269052790528905299053090531905329053390534905359053690537905389053990540905419054290543905449054590546905479054890549905509055190552905539055490555905569055790558905599056090561905629056390564905659056690567905689056990570905719057290573905749057590576905779057890579905809058190582905839058490585905869058790588905899059090591905929059390594905959059690597905989059990600906019060290603906049060590606906079060890609906109061190612906139061490615906169061790618906199062090621906229062390624906259062690627906289062990630906319063290633906349063590636906379063890639906409064190642906439064490645906469064790648906499065090651906529065390654906559065690657906589065990660906619066290663906649066590666906679066890669906709067190672906739067490675906769067790678906799068090681906829068390684906859068690687906889068990690906919069290693906949069590696906979069890699907009070190702907039070490705907069070790708907099071090711907129071390714907159071690717907189071990720907219072290723907249072590726907279072890729907309073190732907339073490735907369073790738907399074090741907429074390744907459074690747907489074990750907519075290753907549075590756907579075890759907609076190762907639076490765907669076790768907699077090771907729077390774907759077690777907789077990780907819078290783907849078590786907879078890789907909079190792907939079490795907969079790798907999080090801908029080390804908059080690807908089080990810908119081290813908149081590816908179081890819908209082190822908239082490825908269082790828908299083090831908329083390834908359083690837908389083990840908419084290843908449084590846908479084890849908509085190852908539085490855908569085790858908599086090861908629086390864908659086690867908689086990870908719087290873908749087590876908779087890879908809088190882908839088490885908869088790888908899089090891908929089390894908959089690897908989089990900909019090290903909049090590906909079090890909909109091190912909139091490915909169091790918909199092090921909229092390924909259092690927909289092990930909319093290933909349093590936909379093890939909409094190942909439094490945909469094790948909499095090951909529095390954909559095690957909589095990960909619096290963909649096590966909679096890969909709097190972909739097490975909769097790978909799098090981909829098390984909859098690987909889098990990909919099290993909949099590996909979099890999910009100191002910039100491005910069100791008910099101091011910129101391014910159101691017910189101991020910219102291023910249102591026910279102891029910309103191032910339103491035910369103791038910399104091041910429104391044910459104691047910489104991050910519105291053910549105591056910579105891059910609106191062910639106491065910669106791068910699107091071910729107391074910759107691077910789107991080910819108291083910849108591086910879108891089910909109191092910939109491095910969109791098910999110091101911029110391104911059110691107911089110991110911119111291113911149111591116911179111891119911209112191122911239112491125911269112791128911299113091131911329113391134911359113691137911389113991140911419114291143911449114591146911479114891149911509115191152911539115491155911569115791158911599116091161911629116391164911659116691167911689116991170911719117291173911749117591176911779117891179911809118191182911839118491185911869118791188911899119091191911929119391194911959119691197911989119991200912019120291203912049120591206912079120891209912109121191212912139121491215912169121791218912199122091221912229122391224912259122691227912289122991230912319123291233912349123591236912379123891239912409124191242912439124491245912469124791248912499125091251912529125391254912559125691257912589125991260912619126291263912649126591266912679126891269912709127191272912739127491275912769127791278912799128091281912829128391284912859128691287912889128991290912919129291293912949129591296912979129891299913009130191302913039130491305913069130791308913099131091311913129131391314913159131691317913189131991320913219132291323913249132591326913279132891329913309133191332913339133491335913369133791338913399134091341913429134391344913459134691347913489134991350913519135291353913549135591356913579135891359913609136191362913639136491365913669136791368913699137091371913729137391374913759137691377913789137991380913819138291383913849138591386913879138891389913909139191392913939139491395913969139791398913999140091401914029140391404914059140691407914089140991410914119141291413914149141591416914179141891419914209142191422914239142491425914269142791428914299143091431914329143391434914359143691437914389143991440914419144291443914449144591446914479144891449914509145191452914539145491455914569145791458914599146091461914629146391464914659146691467914689146991470914719147291473914749147591476914779147891479914809148191482914839148491485914869148791488914899149091491914929149391494914959149691497914989149991500915019150291503915049150591506915079150891509915109151191512915139151491515915169151791518915199152091521915229152391524915259152691527915289152991530915319153291533915349153591536915379153891539915409154191542915439154491545915469154791548915499155091551915529155391554915559155691557915589155991560915619156291563915649156591566915679156891569915709157191572915739157491575915769157791578915799158091581915829158391584915859158691587915889158991590915919159291593915949159591596915979159891599916009160191602916039160491605916069160791608916099161091611916129161391614916159161691617916189161991620916219162291623916249162591626916279162891629916309163191632916339163491635916369163791638916399164091641916429164391644916459164691647916489164991650916519165291653916549165591656916579165891659916609166191662916639166491665916669166791668916699167091671916729167391674916759167691677916789167991680916819168291683916849168591686916879168891689916909169191692916939169491695916969169791698916999170091701917029170391704917059170691707917089170991710917119171291713917149171591716917179171891719917209172191722917239172491725917269172791728917299173091731917329173391734917359173691737917389173991740917419174291743917449174591746917479174891749917509175191752917539175491755917569175791758917599176091761917629176391764917659176691767917689176991770917719177291773917749177591776917779177891779917809178191782917839178491785917869178791788917899179091791917929179391794917959179691797917989179991800918019180291803918049180591806918079180891809918109181191812918139181491815918169181791818918199182091821918229182391824918259182691827918289182991830918319183291833918349183591836918379183891839918409184191842918439184491845918469184791848918499185091851918529185391854918559185691857918589185991860918619186291863918649186591866918679186891869918709187191872918739187491875918769187791878918799188091881918829188391884918859188691887918889188991890918919189291893918949189591896918979189891899919009190191902919039190491905919069190791908919099191091911919129191391914919159191691917919189191991920919219192291923919249192591926919279192891929919309193191932919339193491935919369193791938919399194091941919429194391944919459194691947919489194991950919519195291953919549195591956919579195891959919609196191962919639196491965919669196791968919699197091971919729197391974919759197691977919789197991980919819198291983919849198591986919879198891989919909199191992919939199491995919969199791998919999200092001920029200392004920059200692007920089200992010920119201292013920149201592016920179201892019920209202192022920239202492025920269202792028920299203092031920329203392034920359203692037920389203992040920419204292043920449204592046920479204892049920509205192052920539205492055920569205792058920599206092061920629206392064920659206692067920689206992070920719207292073920749207592076920779207892079920809208192082920839208492085920869208792088920899209092091920929209392094920959209692097920989209992100921019210292103921049210592106921079210892109921109211192112921139211492115921169211792118921199212092121921229212392124921259212692127921289212992130921319213292133921349213592136921379213892139921409214192142921439214492145921469214792148921499215092151921529215392154921559215692157921589215992160921619216292163921649216592166921679216892169921709217192172921739217492175921769217792178921799218092181921829218392184921859218692187921889218992190921919219292193921949219592196921979219892199922009220192202922039220492205922069220792208922099221092211922129221392214922159221692217922189221992220922219222292223922249222592226922279222892229922309223192232922339223492235922369223792238922399224092241922429224392244922459224692247922489224992250922519225292253922549225592256922579225892259922609226192262922639226492265922669226792268922699227092271922729227392274922759227692277922789227992280922819228292283922849228592286922879228892289922909229192292922939229492295922969229792298922999230092301923029230392304923059230692307923089230992310923119231292313923149231592316923179231892319923209232192322923239232492325923269232792328923299233092331923329233392334923359233692337923389233992340923419234292343923449234592346923479234892349923509235192352923539235492355923569235792358923599236092361923629236392364923659236692367923689236992370923719237292373923749237592376923779237892379923809238192382923839238492385923869238792388923899239092391923929239392394923959239692397923989239992400924019240292403924049240592406924079240892409924109241192412924139241492415924169241792418924199242092421924229242392424924259242692427924289242992430924319243292433924349243592436924379243892439924409244192442924439244492445924469244792448924499245092451924529245392454924559245692457924589245992460924619246292463924649246592466924679246892469924709247192472924739247492475924769247792478924799248092481924829248392484924859248692487924889248992490924919249292493924949249592496924979249892499925009250192502925039250492505925069250792508925099251092511925129251392514925159251692517925189251992520925219252292523925249252592526925279252892529925309253192532925339253492535925369253792538925399254092541925429254392544925459254692547925489254992550925519255292553925549255592556925579255892559925609256192562925639256492565925669256792568925699257092571925729257392574925759257692577925789257992580925819258292583925849258592586925879258892589925909259192592925939259492595925969259792598925999260092601926029260392604926059260692607926089260992610926119261292613926149261592616926179261892619926209262192622926239262492625926269262792628926299263092631926329263392634926359263692637926389263992640926419264292643926449264592646926479264892649926509265192652926539265492655926569265792658926599266092661926629266392664926659266692667926689266992670926719267292673926749267592676926779267892679926809268192682926839268492685926869268792688926899269092691926929269392694926959269692697926989269992700927019270292703927049270592706927079270892709927109271192712927139271492715927169271792718927199272092721927229272392724927259272692727927289272992730927319273292733927349273592736927379273892739927409274192742927439274492745927469274792748927499275092751927529275392754927559275692757927589275992760927619276292763927649276592766927679276892769927709277192772927739277492775927769277792778927799278092781927829278392784927859278692787927889278992790927919279292793927949279592796927979279892799928009280192802928039280492805928069280792808928099281092811928129281392814928159281692817928189281992820928219282292823928249282592826928279282892829928309283192832928339283492835928369283792838928399284092841928429284392844928459284692847928489284992850928519285292853928549285592856928579285892859928609286192862928639286492865928669286792868928699287092871928729287392874928759287692877928789287992880928819288292883928849288592886928879288892889928909289192892928939289492895928969289792898928999290092901929029290392904929059290692907929089290992910929119291292913929149291592916929179291892919929209292192922929239292492925929269292792928929299293092931929329293392934929359293692937929389293992940929419294292943929449294592946929479294892949929509295192952929539295492955929569295792958929599296092961929629296392964929659296692967929689296992970929719297292973929749297592976929779297892979929809298192982929839298492985929869298792988929899299092991929929299392994929959299692997929989299993000930019300293003930049300593006930079300893009930109301193012930139301493015930169301793018930199302093021930229302393024930259302693027930289302993030930319303293033930349303593036930379303893039930409304193042930439304493045930469304793048930499305093051930529305393054930559305693057930589305993060930619306293063930649306593066930679306893069930709307193072930739307493075930769307793078930799308093081930829308393084930859308693087930889308993090930919309293093930949309593096930979309893099931009310193102931039310493105931069310793108931099311093111931129311393114931159311693117931189311993120931219312293123931249312593126931279312893129931309313193132931339313493135931369313793138931399314093141931429314393144931459314693147931489314993150931519315293153931549315593156931579315893159931609316193162931639316493165931669316793168931699317093171931729317393174931759317693177931789317993180931819318293183931849318593186931879318893189931909319193192931939319493195931969319793198931999320093201932029320393204932059320693207932089320993210932119321293213932149321593216932179321893219932209322193222932239322493225932269322793228932299323093231932329323393234932359323693237932389323993240932419324293243932449324593246932479324893249932509325193252932539325493255932569325793258932599326093261932629326393264932659326693267932689326993270932719327293273932749327593276932779327893279932809328193282932839328493285932869328793288932899329093291932929329393294932959329693297932989329993300933019330293303933049330593306933079330893309933109331193312933139331493315933169331793318933199332093321933229332393324933259332693327933289332993330933319333293333933349333593336933379333893339933409334193342933439334493345933469334793348933499335093351933529335393354933559335693357933589335993360933619336293363933649336593366933679336893369933709337193372933739337493375933769337793378933799338093381933829338393384933859338693387933889338993390933919339293393933949339593396933979339893399934009340193402934039340493405934069340793408934099341093411934129341393414934159341693417934189341993420934219342293423934249342593426934279342893429934309343193432934339343493435934369343793438934399344093441934429344393444934459344693447934489344993450934519345293453934549345593456934579345893459934609346193462934639346493465934669346793468934699347093471934729347393474934759347693477934789347993480934819348293483934849348593486934879348893489934909349193492934939349493495934969349793498934999350093501935029350393504935059350693507935089350993510935119351293513935149351593516935179351893519935209352193522935239352493525935269352793528935299353093531935329353393534935359353693537935389353993540935419354293543935449354593546935479354893549935509355193552935539355493555935569355793558935599356093561935629356393564935659356693567935689356993570935719357293573935749357593576935779357893579935809358193582935839358493585935869358793588935899359093591935929359393594935959359693597935989359993600936019360293603936049360593606936079360893609936109361193612936139361493615936169361793618936199362093621936229362393624936259362693627936289362993630936319363293633936349363593636936379363893639936409364193642936439364493645936469364793648936499365093651936529365393654936559365693657936589365993660936619366293663936649366593666936679366893669936709367193672936739367493675936769367793678936799368093681936829368393684936859368693687936889368993690936919369293693936949369593696936979369893699937009370193702937039370493705937069370793708937099371093711937129371393714937159371693717937189371993720937219372293723937249372593726937279372893729937309373193732937339373493735937369373793738937399374093741937429374393744937459374693747937489374993750937519375293753937549375593756937579375893759937609376193762937639376493765937669376793768937699377093771937729377393774937759377693777937789377993780937819378293783937849378593786937879378893789937909379193792937939379493795937969379793798937999380093801938029380393804938059380693807938089380993810938119381293813938149381593816938179381893819938209382193822938239382493825938269382793828938299383093831938329383393834938359383693837938389383993840938419384293843938449384593846938479384893849938509385193852938539385493855938569385793858938599386093861938629386393864938659386693867938689386993870938719387293873938749387593876938779387893879938809388193882938839388493885938869388793888938899389093891938929389393894938959389693897938989389993900939019390293903939049390593906939079390893909939109391193912939139391493915939169391793918939199392093921939229392393924939259392693927939289392993930939319393293933939349393593936939379393893939939409394193942939439394493945939469394793948939499395093951939529395393954939559395693957939589395993960939619396293963939649396593966939679396893969939709397193972939739397493975939769397793978939799398093981939829398393984939859398693987939889398993990939919399293993939949399593996939979399893999940009400194002940039400494005940069400794008940099401094011940129401394014940159401694017940189401994020940219402294023940249402594026940279402894029940309403194032940339403494035940369403794038940399404094041940429404394044940459404694047940489404994050940519405294053940549405594056940579405894059940609406194062940639406494065940669406794068940699407094071940729407394074940759407694077940789407994080940819408294083940849408594086940879408894089940909409194092940939409494095940969409794098940999410094101941029410394104941059410694107941089410994110941119411294113941149411594116941179411894119941209412194122941239412494125941269412794128941299413094131941329413394134941359413694137941389413994140941419414294143941449414594146941479414894149941509415194152941539415494155941569415794158941599416094161941629416394164941659416694167941689416994170941719417294173941749417594176941779417894179941809418194182941839418494185941869418794188941899419094191941929419394194941959419694197941989419994200942019420294203942049420594206942079420894209942109421194212942139421494215942169421794218942199422094221942229422394224942259422694227942289422994230942319423294233942349423594236942379423894239942409424194242942439424494245942469424794248942499425094251942529425394254942559425694257942589425994260942619426294263942649426594266942679426894269942709427194272942739427494275942769427794278942799428094281942829428394284942859428694287942889428994290942919429294293942949429594296942979429894299943009430194302943039430494305943069430794308943099431094311943129431394314943159431694317943189431994320943219432294323943249432594326943279432894329943309433194332943339433494335943369433794338943399434094341943429434394344943459434694347943489434994350943519435294353943549435594356943579435894359943609436194362943639436494365943669436794368943699437094371943729437394374943759437694377943789437994380943819438294383943849438594386943879438894389943909439194392943939439494395943969439794398943999440094401944029440394404944059440694407944089440994410944119441294413944149441594416944179441894419944209442194422944239442494425944269442794428944299443094431944329443394434944359443694437944389443994440944419444294443944449444594446944479444894449944509445194452944539445494455944569445794458944599446094461944629446394464944659446694467944689446994470944719447294473944749447594476944779447894479944809448194482944839448494485944869448794488944899449094491944929449394494944959449694497944989449994500945019450294503945049450594506945079450894509945109451194512945139451494515945169451794518945199452094521945229452394524945259452694527945289452994530945319453294533945349453594536945379453894539945409454194542945439454494545945469454794548945499455094551945529455394554945559455694557945589455994560945619456294563945649456594566945679456894569945709457194572945739457494575945769457794578945799458094581945829458394584945859458694587945889458994590945919459294593945949459594596945979459894599946009460194602946039460494605946069460794608946099461094611946129461394614946159461694617946189461994620946219462294623946249462594626946279462894629946309463194632946339463494635946369463794638946399464094641946429464394644946459464694647946489464994650946519465294653946549465594656946579465894659946609466194662946639466494665946669466794668946699467094671946729467394674946759467694677946789467994680946819468294683946849468594686946879468894689946909469194692946939469494695946969469794698946999470094701947029470394704947059470694707947089470994710947119471294713947149471594716947179471894719947209472194722947239472494725947269472794728947299473094731947329473394734947359473694737947389473994740947419474294743947449474594746947479474894749947509475194752947539475494755947569475794758947599476094761947629476394764947659476694767947689476994770947719477294773947749477594776947779477894779947809478194782947839478494785947869478794788947899479094791947929479394794947959479694797947989479994800948019480294803948049480594806948079480894809948109481194812948139481494815948169481794818948199482094821948229482394824948259482694827948289482994830948319483294833948349483594836948379483894839948409484194842948439484494845948469484794848948499485094851948529485394854948559485694857948589485994860948619486294863948649486594866948679486894869948709487194872948739487494875948769487794878948799488094881948829488394884948859488694887948889488994890948919489294893948949489594896948979489894899949009490194902949039490494905949069490794908949099491094911949129491394914949159491694917949189491994920949219492294923949249492594926949279492894929949309493194932949339493494935949369493794938949399494094941949429494394944949459494694947949489494994950949519495294953949549495594956949579495894959949609496194962949639496494965949669496794968949699497094971949729497394974949759497694977949789497994980949819498294983949849498594986949879498894989949909499194992949939499494995949969499794998949999500095001950029500395004950059500695007950089500995010950119501295013950149501595016950179501895019950209502195022950239502495025950269502795028950299503095031950329503395034950359503695037950389503995040950419504295043950449504595046950479504895049950509505195052950539505495055950569505795058950599506095061950629506395064950659506695067950689506995070950719507295073950749507595076950779507895079950809508195082950839508495085950869508795088950899509095091950929509395094950959509695097950989509995100951019510295103951049510595106951079510895109951109511195112951139511495115951169511795118951199512095121951229512395124951259512695127951289512995130951319513295133951349513595136951379513895139951409514195142951439514495145951469514795148951499515095151951529515395154951559515695157951589515995160951619516295163951649516595166951679516895169951709517195172951739517495175951769517795178951799518095181951829518395184951859518695187951889518995190951919519295193951949519595196951979519895199952009520195202952039520495205952069520795208952099521095211952129521395214952159521695217952189521995220952219522295223952249522595226952279522895229952309523195232952339523495235952369523795238952399524095241952429524395244952459524695247952489524995250952519525295253952549525595256952579525895259952609526195262952639526495265952669526795268952699527095271952729527395274952759527695277952789527995280952819528295283952849528595286952879528895289952909529195292952939529495295952969529795298952999530095301953029530395304953059530695307953089530995310953119531295313953149531595316953179531895319953209532195322953239532495325953269532795328953299533095331953329533395334953359533695337953389533995340953419534295343953449534595346953479534895349953509535195352953539535495355953569535795358953599536095361953629536395364953659536695367953689536995370953719537295373953749537595376953779537895379953809538195382953839538495385953869538795388953899539095391953929539395394953959539695397953989539995400954019540295403954049540595406954079540895409954109541195412954139541495415954169541795418954199542095421954229542395424954259542695427954289542995430954319543295433954349543595436954379543895439954409544195442954439544495445954469544795448954499545095451954529545395454954559545695457954589545995460954619546295463954649546595466954679546895469954709547195472954739547495475954769547795478954799548095481954829548395484954859548695487954889548995490954919549295493954949549595496954979549895499955009550195502955039550495505955069550795508955099551095511955129551395514955159551695517955189551995520955219552295523955249552595526955279552895529955309553195532955339553495535955369553795538955399554095541955429554395544955459554695547955489554995550955519555295553955549555595556955579555895559955609556195562955639556495565955669556795568955699557095571955729557395574955759557695577955789557995580955819558295583955849558595586955879558895589955909559195592955939559495595955969559795598955999560095601956029560395604956059560695607956089560995610956119561295613956149561595616956179561895619956209562195622956239562495625956269562795628956299563095631956329563395634956359563695637956389563995640956419564295643956449564595646956479564895649956509565195652956539565495655956569565795658956599566095661956629566395664956659566695667956689566995670956719567295673956749567595676956779567895679956809568195682956839568495685956869568795688956899569095691956929569395694956959569695697956989569995700957019570295703957049570595706957079570895709957109571195712957139571495715957169571795718957199572095721957229572395724957259572695727957289572995730957319573295733957349573595736957379573895739957409574195742957439574495745957469574795748957499575095751957529575395754957559575695757957589575995760957619576295763957649576595766957679576895769957709577195772957739577495775957769577795778957799578095781957829578395784957859578695787957889578995790957919579295793957949579595796957979579895799958009580195802958039580495805958069580795808958099581095811958129581395814958159581695817958189581995820958219582295823958249582595826958279582895829958309583195832958339583495835958369583795838958399584095841958429584395844958459584695847958489584995850958519585295853958549585595856958579585895859958609586195862958639586495865958669586795868958699587095871958729587395874958759587695877958789587995880958819588295883958849588595886958879588895889958909589195892958939589495895958969589795898958999590095901959029590395904959059590695907959089590995910959119591295913959149591595916959179591895919959209592195922959239592495925959269592795928959299593095931959329593395934959359593695937959389593995940959419594295943959449594595946959479594895949959509595195952959539595495955959569595795958959599596095961959629596395964959659596695967959689596995970959719597295973959749597595976959779597895979959809598195982959839598495985959869598795988959899599095991959929599395994959959599695997959989599996000960019600296003960049600596006960079600896009960109601196012960139601496015960169601796018960199602096021960229602396024960259602696027960289602996030960319603296033960349603596036960379603896039960409604196042960439604496045960469604796048960499605096051960529605396054960559605696057960589605996060960619606296063960649606596066960679606896069960709607196072960739607496075960769607796078960799608096081960829608396084960859608696087960889608996090960919609296093960949609596096960979609896099961009610196102961039610496105961069610796108961099611096111961129611396114961159611696117961189611996120961219612296123961249612596126961279612896129961309613196132961339613496135961369613796138961399614096141961429614396144961459614696147961489614996150961519615296153961549615596156961579615896159961609616196162961639616496165961669616796168961699617096171961729617396174961759617696177961789617996180961819618296183961849618596186961879618896189961909619196192961939619496195961969619796198961999620096201962029620396204962059620696207962089620996210962119621296213962149621596216962179621896219962209622196222962239622496225962269622796228962299623096231962329623396234962359623696237962389623996240962419624296243962449624596246962479624896249962509625196252962539625496255962569625796258962599626096261962629626396264962659626696267962689626996270962719627296273962749627596276962779627896279962809628196282962839628496285962869628796288962899629096291962929629396294962959629696297962989629996300963019630296303963049630596306963079630896309963109631196312963139631496315963169631796318963199632096321963229632396324963259632696327963289632996330963319633296333963349633596336963379633896339963409634196342963439634496345963469634796348963499635096351963529635396354963559635696357963589635996360963619636296363963649636596366963679636896369963709637196372963739637496375963769637796378963799638096381963829638396384963859638696387963889638996390963919639296393963949639596396963979639896399964009640196402964039640496405964069640796408964099641096411964129641396414964159641696417964189641996420964219642296423964249642596426964279642896429964309643196432964339643496435964369643796438964399644096441964429644396444964459644696447964489644996450964519645296453964549645596456964579645896459964609646196462964639646496465964669646796468964699647096471964729647396474964759647696477964789647996480964819648296483964849648596486964879648896489964909649196492964939649496495964969649796498964999650096501965029650396504965059650696507965089650996510965119651296513965149651596516965179651896519965209652196522965239652496525965269652796528965299653096531965329653396534965359653696537965389653996540965419654296543965449654596546965479654896549965509655196552965539655496555965569655796558965599656096561965629656396564965659656696567965689656996570965719657296573965749657596576965779657896579965809658196582965839658496585965869658796588965899659096591965929659396594965959659696597965989659996600966019660296603966049660596606966079660896609966109661196612966139661496615966169661796618966199662096621966229662396624966259662696627966289662996630966319663296633966349663596636966379663896639966409664196642966439664496645966469664796648966499665096651966529665396654966559665696657966589665996660966619666296663966649666596666966679666896669966709667196672966739667496675966769667796678966799668096681966829668396684966859668696687966889668996690966919669296693966949669596696966979669896699967009670196702967039670496705967069670796708967099671096711967129671396714967159671696717967189671996720967219672296723967249672596726967279672896729967309673196732967339673496735967369673796738967399674096741967429674396744967459674696747967489674996750967519675296753967549675596756967579675896759967609676196762967639676496765967669676796768967699677096771967729677396774967759677696777967789677996780967819678296783967849678596786967879678896789967909679196792967939679496795967969679796798967999680096801968029680396804968059680696807968089680996810968119681296813968149681596816968179681896819968209682196822968239682496825968269682796828968299683096831968329683396834968359683696837968389683996840968419684296843968449684596846968479684896849968509685196852968539685496855968569685796858968599686096861968629686396864968659686696867968689686996870968719687296873968749687596876968779687896879968809688196882968839688496885968869688796888968899689096891968929689396894968959689696897968989689996900969019690296903969049690596906969079690896909969109691196912969139691496915969169691796918969199692096921969229692396924969259692696927969289692996930969319693296933969349693596936969379693896939969409694196942969439694496945969469694796948969499695096951969529695396954969559695696957969589695996960969619696296963969649696596966969679696896969969709697196972969739697496975969769697796978969799698096981969829698396984969859698696987969889698996990969919699296993969949699596996969979699896999970009700197002970039700497005970069700797008970099701097011970129701397014970159701697017970189701997020970219702297023970249702597026970279702897029970309703197032970339703497035970369703797038970399704097041970429704397044970459704697047970489704997050970519705297053970549705597056970579705897059970609706197062970639706497065970669706797068970699707097071970729707397074970759707697077970789707997080970819708297083970849708597086970879708897089970909709197092970939709497095970969709797098970999710097101971029710397104971059710697107971089710997110971119711297113971149711597116971179711897119971209712197122971239712497125971269712797128971299713097131971329713397134971359713697137971389713997140971419714297143971449714597146971479714897149971509715197152971539715497155971569715797158971599716097161971629716397164971659716697167971689716997170971719717297173971749717597176971779717897179971809718197182971839718497185971869718797188971899719097191971929719397194971959719697197971989719997200972019720297203972049720597206972079720897209972109721197212972139721497215972169721797218972199722097221972229722397224972259722697227972289722997230972319723297233972349723597236972379723897239972409724197242972439724497245972469724797248972499725097251972529725397254972559725697257972589725997260972619726297263972649726597266972679726897269972709727197272972739727497275972769727797278972799728097281972829728397284972859728697287972889728997290972919729297293972949729597296972979729897299973009730197302973039730497305973069730797308973099731097311973129731397314973159731697317973189731997320973219732297323973249732597326973279732897329973309733197332973339733497335973369733797338973399734097341973429734397344973459734697347973489734997350973519735297353973549735597356973579735897359973609736197362973639736497365973669736797368973699737097371973729737397374973759737697377973789737997380973819738297383973849738597386973879738897389973909739197392973939739497395973969739797398973999740097401974029740397404974059740697407974089740997410974119741297413974149741597416974179741897419974209742197422974239742497425974269742797428974299743097431974329743397434974359743697437974389743997440974419744297443974449744597446974479744897449974509745197452974539745497455974569745797458974599746097461974629746397464974659746697467974689746997470974719747297473974749747597476974779747897479974809748197482974839748497485974869748797488974899749097491974929749397494974959749697497974989749997500975019750297503975049750597506975079750897509975109751197512975139751497515975169751797518975199752097521975229752397524975259752697527975289752997530975319753297533975349753597536975379753897539975409754197542975439754497545975469754797548975499755097551975529755397554975559755697557975589755997560975619756297563975649756597566975679756897569975709757197572975739757497575975769757797578975799758097581975829758397584975859758697587975889758997590975919759297593975949759597596975979759897599976009760197602976039760497605976069760797608976099761097611976129761397614976159761697617976189761997620976219762297623976249762597626976279762897629976309763197632976339763497635976369763797638976399764097641976429764397644976459764697647976489764997650976519765297653976549765597656976579765897659976609766197662976639766497665976669766797668976699767097671976729767397674976759767697677976789767997680976819768297683976849768597686976879768897689976909769197692976939769497695976969769797698976999770097701977029770397704977059770697707977089770997710977119771297713977149771597716977179771897719977209772197722977239772497725977269772797728977299773097731977329773397734977359773697737977389773997740977419774297743977449774597746977479774897749977509775197752977539775497755977569775797758977599776097761977629776397764977659776697767977689776997770977719777297773977749777597776977779777897779977809778197782977839778497785977869778797788977899779097791977929779397794977959779697797977989779997800978019780297803978049780597806978079780897809978109781197812978139781497815978169781797818978199782097821978229782397824978259782697827978289782997830978319783297833978349783597836978379783897839978409784197842978439784497845978469784797848978499785097851978529785397854978559785697857978589785997860978619786297863978649786597866978679786897869978709787197872978739787497875978769787797878978799788097881978829788397884978859788697887978889788997890978919789297893978949789597896978979789897899979009790197902979039790497905979069790797908979099791097911979129791397914979159791697917979189791997920979219792297923979249792597926979279792897929979309793197932979339793497935979369793797938979399794097941979429794397944979459794697947979489794997950979519795297953979549795597956979579795897959979609796197962979639796497965979669796797968979699797097971979729797397974979759797697977979789797997980979819798297983979849798597986979879798897989979909799197992979939799497995979969799797998979999800098001980029800398004980059800698007980089800998010980119801298013980149801598016980179801898019980209802198022980239802498025980269802798028980299803098031980329803398034980359803698037980389803998040980419804298043980449804598046980479804898049980509805198052980539805498055980569805798058980599806098061980629806398064980659806698067980689806998070980719807298073980749807598076980779807898079980809808198082980839808498085980869808798088980899809098091980929809398094980959809698097980989809998100981019810298103981049810598106981079810898109981109811198112981139811498115981169811798118981199812098121981229812398124981259812698127981289812998130981319813298133981349813598136981379813898139981409814198142981439814498145981469814798148981499815098151981529815398154981559815698157981589815998160981619816298163981649816598166981679816898169981709817198172981739817498175981769817798178981799818098181981829818398184981859818698187981889818998190981919819298193981949819598196981979819898199982009820198202982039820498205982069820798208982099821098211982129821398214982159821698217982189821998220982219822298223982249822598226982279822898229982309823198232982339823498235982369823798238982399824098241982429824398244982459824698247982489824998250982519825298253982549825598256982579825898259982609826198262982639826498265982669826798268982699827098271982729827398274982759827698277982789827998280982819828298283982849828598286982879828898289982909829198292982939829498295982969829798298982999830098301983029830398304983059830698307983089830998310983119831298313983149831598316983179831898319983209832198322983239832498325983269832798328983299833098331983329833398334983359833698337983389833998340983419834298343983449834598346983479834898349983509835198352983539835498355983569835798358983599836098361983629836398364983659836698367983689836998370983719837298373983749837598376983779837898379983809838198382983839838498385983869838798388983899839098391983929839398394983959839698397983989839998400984019840298403984049840598406984079840898409984109841198412984139841498415984169841798418984199842098421984229842398424984259842698427984289842998430984319843298433984349843598436984379843898439984409844198442984439844498445984469844798448984499845098451984529845398454984559845698457984589845998460984619846298463984649846598466984679846898469984709847198472984739847498475984769847798478984799848098481984829848398484984859848698487984889848998490984919849298493984949849598496984979849898499985009850198502985039850498505985069850798508985099851098511985129851398514985159851698517985189851998520985219852298523985249852598526985279852898529985309853198532985339853498535985369853798538985399854098541985429854398544985459854698547985489854998550985519855298553985549855598556985579855898559985609856198562985639856498565985669856798568985699857098571985729857398574985759857698577985789857998580985819858298583985849858598586985879858898589985909859198592985939859498595985969859798598985999860098601986029860398604986059860698607986089860998610986119861298613986149861598616986179861898619986209862198622986239862498625986269862798628986299863098631986329863398634986359863698637986389863998640986419864298643986449864598646986479864898649986509865198652986539865498655986569865798658986599866098661986629866398664986659866698667986689866998670986719867298673986749867598676986779867898679986809868198682986839868498685986869868798688986899869098691986929869398694986959869698697986989869998700987019870298703987049870598706987079870898709987109871198712987139871498715987169871798718987199872098721987229872398724987259872698727987289872998730987319873298733987349873598736987379873898739987409874198742987439874498745987469874798748987499875098751987529875398754987559875698757987589875998760987619876298763987649876598766987679876898769987709877198772987739877498775987769877798778987799878098781987829878398784987859878698787987889878998790987919879298793987949879598796987979879898799988009880198802988039880498805988069880798808988099881098811988129881398814988159881698817988189881998820988219882298823988249882598826988279882898829988309883198832988339883498835988369883798838988399884098841988429884398844988459884698847988489884998850988519885298853988549885598856988579885898859988609886198862988639886498865988669886798868988699887098871988729887398874988759887698877988789887998880988819888298883988849888598886988879888898889988909889198892988939889498895988969889798898988999890098901989029890398904989059890698907989089890998910989119891298913989149891598916989179891898919989209892198922989239892498925989269892798928989299893098931989329893398934989359893698937989389893998940989419894298943989449894598946989479894898949989509895198952989539895498955989569895798958989599896098961989629896398964989659896698967989689896998970989719897298973989749897598976989779897898979989809898198982989839898498985989869898798988989899899098991989929899398994989959899698997989989899999000990019900299003990049900599006990079900899009990109901199012990139901499015990169901799018990199902099021990229902399024990259902699027990289902999030990319903299033990349903599036990379903899039990409904199042990439904499045990469904799048990499905099051990529905399054990559905699057990589905999060990619906299063990649906599066990679906899069990709907199072990739907499075990769907799078990799908099081990829908399084990859908699087990889908999090990919909299093990949909599096990979909899099991009910199102991039910499105991069910799108991099911099111991129911399114991159911699117991189911999120991219912299123991249912599126991279912899129991309913199132991339913499135991369913799138991399914099141991429914399144991459914699147991489914999150991519915299153991549915599156991579915899159991609916199162991639916499165991669916799168991699917099171991729917399174991759917699177991789917999180991819918299183991849918599186991879918899189991909919199192991939919499195991969919799198991999920099201992029920399204992059920699207992089920999210992119921299213992149921599216992179921899219992209922199222992239922499225992269922799228992299923099231992329923399234992359923699237992389923999240992419924299243992449924599246992479924899249992509925199252992539925499255992569925799258992599926099261992629926399264992659926699267992689926999270992719927299273992749927599276992779927899279992809928199282992839928499285992869928799288992899929099291992929929399294992959929699297992989929999300993019930299303993049930599306993079930899309993109931199312993139931499315993169931799318993199932099321993229932399324993259932699327993289932999330993319933299333993349933599336993379933899339993409934199342993439934499345993469934799348993499935099351993529935399354993559935699357993589935999360993619936299363993649936599366993679936899369993709937199372993739937499375993769937799378993799938099381993829938399384993859938699387993889938999390993919939299393993949939599396993979939899399994009940199402994039940499405994069940799408994099941099411994129941399414994159941699417994189941999420994219942299423994249942599426994279942899429994309943199432994339943499435994369943799438994399944099441994429944399444994459944699447994489944999450994519945299453994549945599456994579945899459994609946199462994639946499465994669946799468994699947099471994729947399474994759947699477994789947999480994819948299483994849948599486994879948899489994909949199492994939949499495994969949799498994999950099501995029950399504995059950699507995089950999510995119951299513995149951599516995179951899519995209952199522995239952499525995269952799528995299953099531995329953399534995359953699537995389953999540995419954299543995449954599546995479954899549995509955199552995539955499555995569955799558995599956099561995629956399564995659956699567995689956999570995719957299573995749957599576995779957899579995809958199582995839958499585995869958799588995899959099591995929959399594995959959699597995989959999600996019960299603996049960599606996079960899609996109961199612996139961499615996169961799618996199962099621996229962399624996259962699627996289962999630996319963299633996349963599636996379963899639996409964199642996439964499645996469964799648996499965099651996529965399654996559965699657996589965999660996619966299663996649966599666996679966899669996709967199672996739967499675996769967799678996799968099681996829968399684996859968699687996889968999690996919969299693996949969599696996979969899699997009970199702997039970499705997069970799708997099971099711997129971399714997159971699717997189971999720997219972299723997249972599726997279972899729997309973199732997339973499735997369973799738997399974099741997429974399744997459974699747997489974999750997519975299753997549975599756997579975899759997609976199762997639976499765997669976799768997699977099771997729977399774997759977699777997789977999780997819978299783997849978599786997879978899789997909979199792997939979499795997969979799798997999980099801998029980399804998059980699807998089980999810998119981299813998149981599816998179981899819998209982199822998239982499825998269982799828998299983099831998329983399834998359983699837998389983999840998419984299843998449984599846998479984899849998509985199852998539985499855998569985799858998599986099861998629986399864998659986699867998689986999870998719987299873998749987599876998779987899879998809988199882998839988499885998869988799888998899989099891998929989399894998959989699897998989989999900999019990299903999049990599906999079990899909999109991199912999139991499915999169991799918999199992099921999229992399924999259992699927999289992999930999319993299933999349993599936999379993899939999409994199942999439994499945999469994799948999499995099951999529995399954999559995699957999589995999960999619996299963999649996599966999679996899969999709997199972999739997499975999769997799978999799998099981999829998399984999859998699987999889998999990999919999299993999949999599996999979999899999100000100001100002100003100004100005100006100007100008100009100010100011100012100013100014100015100016100017100018100019100020100021100022100023100024100025100026100027100028100029100030100031100032100033100034100035100036100037100038100039100040100041100042100043100044100045100046100047100048100049100050100051100052100053100054100055100056100057100058100059100060100061100062100063100064100065100066100067100068100069100070100071100072100073100074100075100076100077100078100079100080100081100082100083100084100085100086100087100088100089100090100091100092100093100094100095100096100097100098100099100100100101100102100103100104100105100106100107100108100109100110100111100112100113100114100115100116100117100118100119100120100121100122100123100124100125100126100127100128100129100130100131100132100133100134100135100136100137100138100139100140100141100142100143100144100145100146100147100148100149100150100151100152100153100154100155100156100157100158100159100160100161100162100163100164100165100166100167100168100169100170100171100172100173100174100175100176100177100178100179100180100181100182100183100184100185100186100187100188100189100190100191100192100193100194100195100196100197100198100199100200100201100202100203100204100205100206100207100208100209100210100211100212100213100214100215100216100217100218100219100220100221100222100223100224100225100226100227100228100229100230100231100232100233100234100235100236100237100238100239100240100241100242100243100244100245100246100247100248100249100250100251100252100253100254100255100256100257100258100259100260100261100262100263100264100265100266100267100268100269100270100271100272100273100274100275100276100277100278100279100280100281100282100283100284100285100286100287100288100289100290100291100292100293100294100295100296100297100298100299100300100301100302100303100304100305100306100307100308100309100310100311100312100313100314100315100316100317100318100319100320100321100322100323100324100325100326100327100328100329100330100331100332100333100334100335100336100337100338100339100340100341100342100343100344100345100346100347100348100349100350100351100352100353100354100355100356100357100358100359100360100361100362100363100364100365100366100367100368100369100370100371100372100373100374100375100376100377100378100379100380100381100382100383100384100385100386100387100388100389100390100391100392100393100394100395100396100397100398100399100400100401100402100403100404100405100406100407100408100409100410100411100412100413100414100415100416100417100418100419100420100421100422100423100424100425100426100427100428100429100430100431100432100433100434100435100436100437100438100439100440100441100442100443100444100445100446100447100448100449100450100451100452100453100454100455100456100457100458100459100460100461100462100463100464100465100466100467100468100469100470100471100472100473100474100475100476100477100478100479100480100481100482100483100484100485100486100487100488100489100490100491100492100493100494100495100496100497100498100499100500100501100502100503100504100505100506100507100508100509100510100511100512100513100514100515100516100517100518100519100520100521100522100523100524100525100526100527100528100529100530100531100532100533100534100535100536100537100538100539100540100541100542100543100544100545100546100547100548100549100550100551100552100553100554100555100556100557100558100559100560100561100562100563100564100565100566100567100568100569100570100571100572100573100574100575100576100577100578100579100580100581100582100583100584100585100586100587100588100589100590100591100592100593100594100595100596100597100598100599100600100601100602100603100604100605100606100607100608100609100610100611100612100613100614100615100616100617100618100619100620100621100622100623100624100625100626100627100628100629100630100631100632100633100634100635100636100637100638100639100640100641100642100643100644100645100646100647100648100649100650100651100652100653100654100655100656100657100658100659100660100661100662100663100664100665100666100667100668100669100670100671100672100673100674100675100676100677100678100679100680100681100682100683100684100685100686100687100688100689100690100691100692100693100694100695100696100697100698100699100700100701100702100703100704100705100706100707100708100709100710100711100712100713100714100715100716100717100718100719100720100721100722100723100724100725100726100727100728100729100730100731100732100733100734100735100736100737100738100739100740100741100742100743100744100745100746100747100748100749100750100751100752100753100754100755100756100757100758100759100760100761100762100763100764100765100766100767100768100769100770100771100772100773100774100775100776100777100778100779100780100781100782100783100784100785100786100787100788100789100790100791100792100793100794100795100796100797100798100799100800100801100802100803100804100805100806100807100808100809100810100811100812100813100814100815100816100817100818100819100820100821100822100823100824100825100826100827100828100829100830100831100832100833100834100835100836100837100838100839100840100841100842100843100844100845100846100847100848100849100850100851100852100853100854100855100856100857100858100859100860100861100862100863100864100865100866100867100868100869100870100871100872100873100874100875100876100877100878100879100880100881100882100883100884100885100886100887100888100889100890100891100892100893100894100895100896100897100898100899100900100901100902100903100904100905100906100907100908100909100910100911100912100913100914100915100916100917100918100919100920100921100922100923100924100925100926100927100928100929100930100931100932100933100934100935100936100937100938100939100940100941100942100943100944100945100946100947100948100949100950100951100952100953100954100955100956100957100958100959100960100961100962100963100964100965100966100967100968100969100970100971100972100973100974100975100976100977100978100979100980100981100982100983100984100985100986100987100988100989100990100991100992100993100994100995100996100997100998100999101000101001101002101003101004101005101006101007101008101009101010101011101012101013101014101015101016101017101018101019101020101021101022101023101024101025101026101027101028101029101030101031101032101033101034101035101036101037101038101039101040101041101042101043101044101045101046101047101048101049101050101051101052101053101054101055101056101057101058101059101060101061101062101063101064101065101066101067101068101069101070101071101072101073101074101075101076101077101078101079101080101081101082101083101084101085101086101087101088101089101090101091101092101093101094101095101096101097101098101099101100101101101102101103101104101105101106101107101108101109101110101111101112101113101114101115101116101117101118101119101120101121101122101123101124101125101126101127101128101129101130101131101132101133101134101135101136101137101138101139101140101141101142101143101144101145101146101147101148101149101150101151101152101153101154101155101156101157101158101159101160101161101162101163101164101165101166101167101168101169101170101171101172101173101174101175101176101177101178101179101180101181101182101183101184101185101186101187101188101189101190101191101192101193101194101195101196101197101198101199101200101201101202101203101204101205101206101207101208101209101210101211101212101213101214101215101216101217101218101219101220101221101222101223101224101225101226101227101228101229101230101231101232101233101234101235101236101237101238101239101240101241101242101243101244101245101246101247101248101249101250101251101252101253101254101255101256101257101258101259101260101261101262101263101264101265101266101267101268101269101270101271101272101273101274101275101276101277101278101279101280101281101282101283101284101285101286101287101288101289101290101291101292101293101294101295101296101297101298101299101300101301101302101303101304101305101306101307101308101309101310101311101312101313101314101315101316101317101318101319101320101321101322101323101324101325101326101327101328101329101330101331101332101333101334101335101336101337101338101339101340101341101342101343101344101345101346101347101348101349101350101351101352101353101354101355101356101357101358101359101360101361101362101363101364101365101366101367101368101369101370101371101372101373101374101375101376101377101378101379101380101381101382101383101384101385101386101387101388101389101390101391101392101393101394101395101396101397101398101399101400101401101402101403101404101405101406101407101408101409101410101411101412101413101414101415101416101417101418101419101420101421101422101423101424101425101426101427101428101429101430101431101432101433101434101435101436101437101438101439101440101441101442101443101444101445101446101447101448101449101450101451101452101453101454101455101456101457101458101459101460101461101462101463101464101465101466101467101468101469101470101471101472101473101474101475101476101477101478101479101480101481101482101483101484101485101486101487101488101489101490101491101492101493101494101495101496101497101498101499101500101501101502101503101504101505101506101507101508101509101510101511101512101513101514101515101516101517101518101519101520101521101522101523101524101525101526101527101528101529101530101531101532101533101534101535101536101537101538101539101540101541101542101543101544101545101546101547101548101549101550101551101552101553101554101555101556101557101558101559101560101561101562101563101564101565101566101567101568101569101570101571101572101573101574101575101576101577101578101579101580101581101582101583101584101585101586101587101588101589101590101591101592101593101594101595101596101597101598101599101600101601101602101603101604101605101606101607101608101609101610101611101612101613101614101615101616101617101618101619101620101621101622101623101624101625101626101627101628101629101630101631101632101633101634101635101636101637101638101639101640101641101642101643101644101645101646101647101648101649101650101651101652101653101654101655101656101657101658101659101660101661101662101663101664101665101666101667101668101669101670101671101672101673101674101675101676101677101678101679101680101681101682101683101684101685101686101687101688101689101690101691101692101693101694101695101696101697101698101699101700101701101702101703101704101705101706101707101708101709101710101711101712101713101714101715101716101717101718101719101720101721101722101723101724101725101726101727101728101729101730101731101732101733101734101735101736101737101738101739101740101741101742101743101744101745101746101747101748101749101750101751101752101753101754101755101756101757101758101759101760101761101762101763101764101765101766101767101768101769101770101771101772101773101774101775101776101777101778101779101780101781101782101783101784101785101786101787101788101789101790101791101792101793101794101795101796101797101798101799101800101801101802101803101804101805101806101807101808101809101810101811101812101813101814101815101816101817101818101819101820101821101822101823101824101825101826101827101828101829101830101831101832101833101834101835101836101837101838101839101840101841101842101843101844101845101846101847101848101849101850101851101852101853101854101855101856101857101858101859101860101861101862101863101864101865101866101867101868101869101870101871101872101873101874101875101876101877101878101879101880101881101882101883101884101885101886101887101888101889101890101891101892101893101894101895101896101897101898101899101900101901101902101903101904101905101906101907101908101909101910101911101912101913101914101915101916101917101918101919101920101921101922101923101924101925101926101927101928101929101930101931101932101933101934101935101936101937101938101939101940101941101942101943101944101945101946101947101948101949101950101951101952101953101954101955101956101957101958101959101960101961101962101963101964101965101966101967101968101969101970101971101972101973101974101975101976101977101978101979101980101981101982101983101984101985101986101987101988101989101990101991101992101993101994101995101996101997101998101999102000102001102002102003102004102005102006102007102008102009102010102011102012102013102014102015102016102017102018102019102020102021102022102023102024102025102026102027102028102029102030102031102032102033102034102035102036102037102038102039102040102041102042102043102044102045102046102047102048102049102050102051102052102053102054102055102056102057102058102059102060102061102062102063102064102065102066102067102068102069102070102071102072102073102074102075102076102077102078102079102080102081102082102083102084102085102086102087102088102089102090102091102092102093102094102095102096102097102098102099102100102101102102102103102104102105102106102107102108102109102110102111102112102113102114102115102116102117102118102119102120102121102122102123102124102125102126102127102128102129102130102131102132102133102134102135102136102137102138102139102140102141102142102143102144102145102146102147102148102149102150102151102152102153102154102155102156102157102158102159102160102161102162102163102164102165102166102167102168102169102170102171102172102173102174102175102176102177102178102179102180102181102182102183102184102185102186102187102188102189102190102191102192102193102194102195102196102197102198102199102200102201102202102203102204102205102206102207102208102209102210102211102212102213102214102215102216102217102218102219102220102221102222102223102224102225102226102227102228102229102230102231102232102233102234102235102236102237102238102239102240102241102242102243102244102245102246102247102248102249102250102251102252102253102254102255102256102257102258102259102260102261102262102263102264102265102266102267102268102269102270102271102272102273102274102275102276102277102278102279102280102281102282102283102284102285102286102287102288102289102290102291102292102293102294102295102296102297102298102299102300102301102302102303102304102305102306102307102308102309102310102311102312102313102314102315102316102317102318102319102320102321102322102323102324102325102326102327102328102329102330102331102332102333102334102335102336102337102338102339102340102341102342102343102344102345102346102347102348102349102350102351102352102353102354102355102356102357102358102359102360102361102362102363102364102365102366102367102368102369102370102371102372102373102374102375102376102377102378102379102380102381102382102383102384102385102386102387102388102389102390102391102392102393102394102395102396102397102398102399102400102401102402102403102404102405102406102407102408102409102410102411102412102413102414102415102416102417102418102419102420102421102422102423102424102425102426102427102428102429102430102431102432102433102434102435102436102437102438102439102440102441102442102443102444102445102446102447102448102449102450102451102452102453102454102455102456102457102458102459102460102461102462102463102464102465102466102467102468102469102470102471102472102473102474102475102476102477102478102479102480102481102482102483102484102485102486102487102488102489102490102491102492102493102494102495102496102497102498102499102500102501102502102503102504102505102506102507102508102509102510102511102512102513102514102515102516102517102518102519102520102521102522102523102524102525102526102527102528102529102530102531102532102533102534102535102536102537102538102539102540102541102542102543102544102545102546102547102548102549102550102551102552102553102554102555102556102557102558102559102560102561102562102563102564102565102566102567102568102569102570102571102572102573102574102575102576102577102578102579102580102581102582102583102584102585102586102587102588102589102590102591102592102593102594102595102596102597102598102599102600102601102602102603102604102605102606102607102608102609102610102611102612102613102614102615102616102617102618102619102620102621102622102623102624102625102626102627102628102629102630102631102632102633102634102635102636102637102638102639102640102641102642102643102644102645102646102647102648102649102650102651102652102653102654102655102656102657102658102659102660102661102662102663102664102665102666102667102668102669102670102671102672102673102674102675102676102677102678102679102680102681102682102683102684102685102686102687102688102689102690102691102692102693102694102695102696102697102698102699102700102701102702102703102704102705102706102707102708102709102710102711102712102713102714102715102716102717102718102719102720102721102722102723102724102725102726102727102728102729102730102731102732102733102734102735102736102737102738102739102740102741102742102743102744102745102746102747102748102749102750102751102752102753102754102755102756102757102758102759102760102761102762102763102764102765102766102767102768102769102770102771102772102773102774102775102776102777102778102779102780102781102782102783102784102785102786102787102788102789102790102791102792102793102794102795102796102797102798102799102800102801102802102803102804102805102806102807102808102809102810102811102812102813102814102815102816102817102818102819102820102821102822102823102824102825102826102827102828102829102830102831102832102833102834102835102836102837102838102839102840102841102842102843102844102845102846102847102848102849102850102851102852102853102854102855102856102857102858102859102860102861102862102863102864102865102866102867102868102869102870102871102872102873102874102875102876102877102878102879102880102881102882102883102884102885102886102887102888102889102890102891102892102893102894102895102896102897102898102899102900102901102902102903102904102905102906102907102908102909102910102911102912102913102914102915102916102917102918102919102920102921102922102923102924102925102926102927102928102929102930102931102932102933102934102935102936102937102938102939102940102941102942102943102944102945102946102947102948102949102950102951102952102953102954102955102956102957102958102959102960102961102962102963102964102965102966102967102968102969102970102971102972102973102974102975102976102977102978102979102980102981102982102983102984102985102986102987102988102989102990102991102992102993102994102995102996102997102998102999103000103001103002103003103004103005103006103007103008103009103010103011103012103013103014103015103016103017103018103019103020103021103022103023103024103025103026103027103028103029103030103031103032103033103034103035103036103037103038103039103040103041103042103043103044103045103046103047103048103049103050103051103052103053103054103055103056103057103058103059103060103061103062103063103064103065103066103067103068103069103070103071103072103073103074103075103076103077103078103079103080103081103082103083103084103085103086103087103088103089103090103091103092103093103094103095103096103097103098103099103100103101103102103103103104103105103106103107103108103109103110103111103112103113103114103115103116103117103118103119103120103121103122103123103124103125103126103127103128103129103130103131103132103133103134103135103136103137103138103139103140103141103142103143103144103145103146103147103148103149103150103151103152103153103154103155103156103157103158103159103160103161103162103163103164103165103166103167103168103169103170103171103172103173103174103175103176103177103178103179103180103181103182103183103184103185103186103187103188103189103190103191103192103193103194103195103196103197103198103199103200103201103202103203103204103205103206103207103208103209103210103211103212103213103214103215103216103217103218103219103220103221103222103223103224103225103226103227103228103229103230103231103232103233103234103235103236103237103238103239103240103241103242103243103244103245103246103247103248103249103250103251103252103253103254103255103256103257103258103259103260103261103262103263103264103265103266103267103268103269103270103271103272103273103274103275103276103277103278103279103280103281103282103283103284103285103286103287103288103289103290103291103292103293103294103295103296103297103298103299103300103301103302103303103304103305103306103307103308103309103310103311103312103313103314103315103316103317103318103319103320103321103322103323103324103325103326103327103328103329103330103331103332103333103334103335103336103337103338103339103340103341103342103343103344103345103346103347103348103349103350103351103352103353103354103355103356103357103358103359103360103361103362103363103364103365103366103367103368103369103370103371103372103373103374103375103376103377103378103379103380103381103382103383103384103385103386103387103388103389103390103391103392103393103394103395103396103397103398103399103400103401103402103403103404103405103406103407103408103409103410103411103412103413103414103415103416103417103418103419103420103421103422103423103424103425103426103427103428103429103430103431103432103433103434103435103436103437103438103439103440103441103442103443103444103445103446103447103448103449103450103451103452103453103454103455103456103457103458103459103460103461103462103463103464103465103466103467103468103469103470103471103472103473103474103475103476103477103478103479103480103481103482103483103484103485103486103487103488103489103490103491103492103493103494103495103496103497103498103499103500103501103502103503103504103505103506103507103508103509103510103511103512103513103514103515103516103517103518103519103520103521103522103523103524103525103526103527103528103529103530103531103532103533103534103535103536103537103538103539103540103541103542103543103544103545103546103547103548103549103550103551103552103553103554103555103556103557103558103559103560103561103562103563103564103565103566103567103568103569103570103571103572103573103574103575103576103577103578103579103580103581103582103583103584103585103586103587103588103589103590103591103592103593103594103595103596103597103598103599103600103601103602103603103604103605103606103607103608103609103610103611103612103613103614103615103616103617103618103619103620103621103622103623103624103625103626103627103628103629103630103631103632103633103634103635103636103637103638103639103640103641103642103643103644103645103646103647103648103649103650103651103652103653103654103655103656103657103658103659103660103661103662103663103664103665103666103667103668103669103670103671103672103673103674103675103676103677103678103679103680103681103682103683103684103685103686103687103688103689103690103691103692103693103694103695103696103697103698103699103700103701103702103703103704103705103706103707103708103709103710103711103712103713103714103715103716103717103718103719103720103721103722103723103724103725103726103727103728103729103730103731103732103733103734103735103736103737103738103739103740103741103742103743103744103745103746103747103748103749103750103751103752103753103754103755103756103757103758103759103760103761103762103763103764103765103766103767103768103769103770103771103772103773103774103775103776103777103778103779103780103781103782103783103784103785103786103787103788103789103790103791103792103793103794103795103796103797103798103799103800103801103802103803103804103805103806103807103808103809103810103811103812103813103814103815103816103817103818103819103820103821103822103823103824103825103826103827103828103829103830103831103832103833103834103835103836103837103838103839103840103841103842103843103844103845103846103847103848103849103850103851103852103853103854103855103856103857103858103859103860103861103862103863103864103865103866103867103868103869103870103871103872103873103874103875103876103877103878103879103880103881103882103883103884103885103886103887103888103889103890103891103892103893103894103895103896103897103898103899103900103901103902103903103904103905103906103907103908103909103910103911103912103913103914103915103916103917103918103919103920103921103922103923103924103925103926103927103928103929103930103931103932103933103934103935103936103937103938103939103940103941103942103943103944103945103946103947103948103949103950103951103952103953103954103955103956103957103958103959103960103961103962103963103964103965103966103967103968103969103970103971103972103973103974103975103976103977103978103979103980103981103982103983103984103985103986103987103988103989103990103991103992103993103994103995103996103997103998103999104000104001104002104003104004104005104006104007104008104009104010104011104012104013104014104015104016104017104018104019104020104021104022104023104024104025104026104027104028104029104030104031104032104033104034104035104036104037104038104039104040104041104042104043104044104045104046104047104048104049104050104051104052104053104054104055104056104057104058104059104060104061104062104063104064104065104066104067104068104069104070104071104072104073104074104075104076104077104078104079104080104081104082104083104084104085104086104087104088104089104090104091104092104093104094104095104096104097104098104099104100104101104102104103104104104105104106104107104108104109104110104111104112104113104114104115104116104117104118104119104120104121104122104123104124104125104126104127104128104129104130104131104132104133104134104135104136104137104138104139104140104141104142104143104144104145104146104147104148104149104150104151104152104153104154104155104156104157104158104159104160104161104162104163104164104165104166104167104168104169104170104171104172104173104174104175104176104177104178104179104180104181104182104183104184104185104186104187104188104189104190104191104192104193104194104195104196104197104198104199104200104201104202104203104204104205104206104207104208104209104210104211104212104213104214104215104216104217104218104219104220104221104222104223104224104225104226104227104228104229104230104231104232104233104234104235104236104237104238104239104240104241104242104243104244104245104246104247104248104249104250104251104252104253104254104255104256104257104258104259104260104261104262104263104264104265104266104267104268104269104270104271104272104273104274104275104276104277104278104279104280104281104282104283104284104285104286104287104288104289104290104291104292104293104294104295104296104297104298104299104300104301104302104303104304104305104306104307104308104309104310104311104312104313104314104315104316104317104318104319104320104321104322104323104324104325104326104327104328104329104330104331104332104333104334104335104336104337104338104339104340104341104342104343104344104345104346104347104348104349104350104351104352104353104354104355104356104357104358104359104360104361104362104363104364104365104366104367104368104369104370104371104372104373104374104375104376104377104378104379104380104381104382104383104384104385104386104387104388104389104390104391104392104393104394104395104396104397104398104399104400104401104402104403104404104405104406104407104408104409104410104411104412104413104414104415104416104417104418104419104420104421104422104423104424104425104426104427104428104429104430104431104432104433104434104435104436104437104438104439104440104441104442104443104444104445104446104447104448104449104450104451104452104453104454104455104456104457104458104459104460104461104462104463104464104465104466104467104468104469104470104471104472104473104474104475104476104477104478104479104480104481104482104483104484104485104486104487104488104489104490104491104492104493104494104495104496104497104498104499104500104501104502104503104504104505104506104507104508104509104510104511104512104513104514104515104516104517104518104519104520104521104522104523104524104525104526104527104528104529104530104531104532104533104534104535104536104537104538104539104540104541104542104543104544104545104546104547104548104549104550104551104552104553104554104555104556104557104558104559104560104561104562104563104564104565104566104567104568104569104570104571104572104573104574104575104576104577104578104579104580104581104582104583104584104585104586104587104588104589104590104591104592104593104594104595104596104597104598104599104600104601104602104603104604104605104606104607104608104609104610104611104612104613104614104615104616104617104618104619104620104621104622104623104624104625104626104627104628104629104630104631104632104633104634104635104636104637104638104639104640104641104642104643104644104645104646104647104648104649104650104651104652104653104654104655104656104657104658104659104660104661104662104663104664104665104666104667104668104669104670104671104672104673104674104675104676104677104678104679104680104681104682104683104684104685104686104687104688104689104690104691104692104693104694104695104696104697104698104699104700104701104702104703104704104705104706104707104708104709104710104711104712104713104714104715104716104717104718104719104720104721104722104723104724104725104726104727104728104729104730104731104732104733104734104735104736104737104738104739104740104741104742104743104744104745104746104747104748104749104750104751104752104753104754104755104756104757104758104759104760104761104762104763104764104765104766104767104768104769104770104771104772104773104774104775104776104777104778104779104780104781104782104783104784104785104786104787104788104789104790104791104792104793104794104795104796104797104798104799104800104801104802104803104804104805104806104807104808104809104810104811104812104813104814104815104816104817104818104819104820104821104822104823104824104825104826104827104828104829104830104831104832104833104834104835104836104837104838104839104840104841104842104843104844104845104846104847104848104849104850104851104852104853104854104855104856104857104858104859104860104861104862104863104864104865104866104867104868104869104870104871104872104873104874104875104876104877104878104879104880104881104882104883104884104885104886104887104888104889104890104891104892104893104894104895104896104897104898104899104900104901104902104903104904104905104906104907104908104909104910104911104912104913104914104915104916104917104918104919104920104921104922104923104924104925104926104927104928104929104930104931104932104933104934104935104936104937104938104939104940104941104942104943104944104945104946104947104948104949104950104951104952104953104954104955104956104957104958104959104960104961104962104963104964104965104966104967104968104969104970104971104972104973104974104975104976104977104978104979104980104981104982104983104984104985104986104987104988104989104990104991104992104993104994104995104996104997104998104999105000105001105002105003105004105005105006105007105008105009105010105011105012105013105014105015105016105017105018105019105020105021105022105023105024105025105026105027105028105029105030105031105032105033105034105035105036105037105038105039105040105041105042105043105044105045105046105047105048105049105050105051105052105053105054105055105056105057105058105059105060105061105062105063105064105065105066105067105068105069105070105071105072105073105074105075105076105077105078105079105080105081105082105083105084105085105086105087105088105089105090105091105092105093105094105095105096105097105098105099105100105101105102105103105104105105105106105107105108105109105110105111105112105113105114105115105116105117105118105119105120105121105122105123105124105125105126105127105128105129105130105131105132105133105134105135105136105137105138105139105140105141105142105143105144105145105146105147105148105149105150105151105152105153105154105155105156105157105158105159105160105161105162105163105164105165105166105167105168105169105170105171105172105173105174105175105176105177105178105179105180105181105182105183105184105185105186105187105188105189105190105191105192105193105194105195105196105197105198105199105200105201105202105203105204105205105206105207105208105209105210105211105212105213105214105215105216105217105218105219105220105221105222105223105224105225105226105227105228105229105230105231105232105233105234105235105236105237105238105239105240105241105242105243105244105245105246105247105248105249105250105251105252105253105254105255105256105257105258105259105260105261105262105263105264105265105266105267105268105269105270105271105272105273105274105275105276105277105278105279105280105281105282105283105284105285105286105287105288105289105290105291105292105293105294105295105296105297105298105299105300105301105302105303105304105305105306105307105308105309105310105311105312105313105314105315105316105317105318105319105320105321105322105323105324105325105326105327105328105329105330105331105332105333105334105335105336105337105338105339105340105341105342105343105344105345105346105347105348105349105350105351105352105353105354105355105356105357105358105359105360105361105362105363105364105365105366105367105368105369105370105371105372105373105374105375105376105377105378105379105380105381105382105383105384105385105386105387105388105389105390105391105392105393105394105395105396105397105398105399105400105401105402105403105404105405105406105407105408105409105410105411105412105413105414105415105416105417105418105419105420105421105422105423105424105425105426105427105428105429105430105431105432105433105434105435105436105437105438105439105440105441105442105443105444105445105446105447105448105449105450105451105452105453105454105455105456105457105458105459105460105461105462105463105464105465105466105467105468105469105470105471105472105473105474105475105476105477105478105479105480105481105482105483105484105485105486105487105488105489105490105491105492105493105494105495105496105497105498105499105500105501105502105503105504105505105506105507105508105509105510105511105512105513105514105515105516105517105518105519105520105521105522105523105524105525105526105527105528105529105530105531105532105533105534105535105536105537105538105539105540105541105542105543105544105545105546105547105548105549105550105551105552105553105554105555105556105557105558105559105560105561105562105563105564105565105566105567105568105569105570105571105572105573105574105575105576105577105578105579105580105581105582105583105584105585105586105587105588105589105590105591105592105593105594105595105596105597105598105599105600105601105602105603105604105605105606105607105608105609105610105611105612105613105614105615105616105617105618105619105620105621105622105623105624105625105626105627105628105629105630105631105632105633105634105635105636105637105638105639105640105641105642105643105644105645105646105647105648105649105650105651105652105653105654105655105656105657105658105659105660105661105662105663105664105665105666105667105668105669105670105671105672105673105674105675105676105677105678105679105680105681105682105683105684105685105686105687105688105689105690105691105692105693105694105695105696105697105698105699105700105701105702105703105704105705105706105707105708105709105710105711105712105713105714105715105716105717105718105719105720105721105722105723105724105725105726105727105728105729105730105731105732105733105734105735105736105737105738105739105740105741105742105743105744105745105746105747105748105749105750105751105752105753105754105755105756105757105758105759105760105761105762105763105764105765105766105767105768105769105770105771105772105773105774105775105776105777105778105779105780105781105782105783105784105785105786105787105788105789105790105791105792105793105794105795105796105797105798105799105800105801105802105803105804105805105806105807105808105809105810105811105812105813105814105815105816105817105818105819105820105821105822105823105824105825105826105827105828105829105830105831105832105833105834105835105836105837105838105839105840105841105842105843105844105845105846105847105848105849105850105851105852105853105854105855105856105857105858105859105860105861105862105863105864105865105866105867105868105869105870105871105872105873105874105875105876105877105878105879105880105881105882105883105884105885105886105887105888105889105890105891105892105893105894105895105896105897105898105899105900105901105902105903105904105905105906105907105908105909105910105911105912105913105914105915105916105917105918105919105920105921105922105923105924105925105926105927105928105929105930105931105932105933105934105935105936105937105938105939105940105941105942105943105944105945105946105947105948105949105950105951105952105953105954105955105956105957105958105959105960105961105962105963105964105965105966105967105968105969105970105971105972105973105974105975105976105977105978105979105980105981105982105983105984105985105986105987105988105989105990105991105992105993105994105995105996105997105998105999106000106001106002106003106004106005106006106007106008106009106010106011106012106013106014106015106016106017106018106019106020106021106022106023106024106025106026106027106028106029106030106031106032106033106034106035106036106037106038106039106040106041106042106043106044106045106046106047106048106049106050106051106052106053106054106055106056106057106058106059106060106061106062106063106064106065106066106067106068106069106070106071106072106073106074106075106076106077106078106079106080106081106082106083106084106085106086106087106088106089106090106091106092106093106094106095106096106097106098106099106100106101106102106103106104106105106106106107106108106109106110106111106112106113106114106115106116106117106118106119106120106121106122106123106124106125106126106127106128106129106130106131106132106133106134106135106136106137106138106139106140106141106142106143106144106145106146106147106148106149106150106151106152106153106154106155106156106157106158106159106160106161106162106163106164106165106166106167106168106169106170106171106172106173106174106175106176106177106178106179106180106181106182106183106184106185106186106187106188106189106190106191106192106193106194106195106196106197106198106199106200106201106202106203106204106205106206106207106208106209106210106211106212106213106214106215106216106217106218106219106220106221106222106223106224106225106226106227106228106229106230106231106232106233106234106235106236106237106238106239106240106241106242106243106244106245106246106247106248106249106250106251106252106253106254106255106256106257106258106259106260106261106262106263106264106265106266106267106268106269106270106271106272106273106274106275106276106277106278106279106280106281106282106283106284106285106286106287106288106289106290106291106292106293106294106295106296106297106298106299106300106301106302106303106304106305106306106307106308106309106310106311106312106313106314106315106316106317106318106319106320106321106322106323106324106325106326106327106328106329106330106331106332106333106334106335106336106337106338106339106340106341106342106343106344106345106346106347106348106349106350106351106352106353106354106355106356106357106358106359106360106361106362106363106364106365106366106367106368106369106370106371106372106373106374106375106376106377106378106379106380106381106382106383106384106385106386106387106388106389106390106391106392106393106394106395106396106397106398106399106400106401106402106403106404106405106406106407106408106409106410106411106412106413106414106415106416106417106418106419106420106421106422106423106424106425106426106427106428106429106430106431106432106433106434106435106436106437106438106439106440106441106442106443106444106445106446106447106448106449106450106451106452106453106454106455106456106457106458106459106460106461106462106463106464106465106466106467106468106469106470106471106472106473106474106475106476106477106478106479106480106481106482106483106484106485106486106487106488106489106490106491106492106493106494106495106496106497106498106499106500106501106502106503106504106505106506106507106508106509106510106511106512106513106514106515106516106517106518106519106520106521106522106523106524106525106526106527106528106529106530106531106532106533106534106535106536106537106538106539106540106541106542106543106544106545106546106547106548106549106550106551106552106553106554106555106556106557106558106559106560106561106562106563106564106565106566106567106568106569106570106571106572106573106574106575106576106577106578106579106580106581106582106583106584106585106586106587106588106589106590106591106592106593106594106595106596106597106598106599106600106601106602106603106604106605106606106607106608106609106610106611106612106613106614106615106616106617106618106619106620106621106622106623106624106625106626106627106628106629106630106631106632106633106634106635106636106637106638106639106640106641106642106643106644106645106646106647106648106649106650106651106652106653106654106655106656106657106658106659106660106661106662106663106664106665106666106667106668106669106670106671106672106673106674106675106676106677106678106679106680106681106682106683106684106685106686106687106688106689106690106691106692106693106694106695106696106697106698106699106700106701106702106703106704106705106706106707106708106709106710106711106712106713106714106715106716106717106718106719106720106721106722106723106724106725106726106727106728106729106730106731106732106733106734106735106736106737106738106739106740106741106742106743106744106745106746106747106748106749106750106751106752106753106754106755106756106757106758106759106760106761106762106763106764106765106766106767106768106769106770106771106772106773106774106775106776106777106778106779106780106781106782106783106784106785106786106787106788106789106790106791106792106793106794106795106796106797106798106799106800106801106802106803106804106805106806106807106808106809106810106811106812106813106814106815106816106817106818106819106820106821106822106823106824106825106826106827106828106829106830106831106832106833106834106835106836106837106838106839106840106841106842106843106844106845106846106847106848106849106850106851106852106853106854106855106856106857106858106859106860106861106862106863106864106865106866106867106868106869106870106871106872106873106874106875106876106877106878106879106880106881106882106883106884106885106886106887106888106889106890106891106892106893106894106895106896106897106898106899106900106901106902106903106904106905106906106907106908106909106910106911106912106913106914106915106916106917106918106919106920106921106922106923106924106925106926106927106928106929106930106931106932106933106934106935106936106937106938106939106940106941106942106943106944106945106946106947106948106949106950106951106952106953106954106955106956106957106958106959106960106961106962106963106964106965106966106967106968106969106970106971106972106973106974106975106976106977106978106979106980106981106982106983106984106985106986106987106988106989106990106991106992106993106994106995106996106997106998106999107000107001107002107003107004107005107006107007107008107009107010107011107012107013107014107015107016107017107018107019107020107021107022107023107024107025107026107027107028107029107030107031107032107033107034107035107036107037107038107039107040107041107042107043107044107045107046107047107048107049107050107051107052107053107054107055107056107057107058107059107060107061107062107063107064107065107066107067107068107069107070107071107072107073107074107075107076107077107078107079107080107081107082107083107084107085107086107087107088107089107090107091107092107093107094107095107096107097107098107099107100107101107102107103107104107105107106107107107108107109107110107111107112107113107114107115107116107117107118107119107120107121107122107123107124107125107126107127107128107129107130107131107132107133107134107135107136107137107138107139107140107141107142107143107144107145107146107147107148107149107150107151107152107153107154107155107156107157107158107159107160107161107162107163107164107165107166107167107168107169107170107171107172107173107174107175107176107177107178107179107180107181107182107183107184107185107186107187107188107189107190107191107192107193107194107195107196107197107198107199107200107201107202107203107204107205107206107207107208107209107210107211107212107213107214107215107216107217107218107219107220107221107222107223107224107225107226107227107228107229107230107231107232107233107234107235107236107237107238107239107240107241107242107243107244107245107246107247107248107249107250107251107252107253107254107255107256107257107258107259107260107261107262107263107264107265107266107267107268107269107270107271107272107273107274107275107276107277107278107279107280107281107282107283107284107285107286107287107288107289107290107291107292107293107294107295107296107297107298107299107300107301107302107303107304107305107306107307107308107309107310107311107312107313107314107315107316107317107318107319107320107321107322107323107324107325107326107327107328107329107330107331107332107333107334107335107336107337107338107339107340107341107342107343107344107345107346107347107348107349107350107351107352107353107354107355107356107357107358107359107360107361107362107363107364107365107366107367107368107369107370107371107372107373107374107375107376107377107378107379107380107381107382107383107384107385107386107387107388107389107390107391107392107393107394107395107396107397107398107399107400107401107402107403107404107405107406107407107408107409107410107411107412107413107414107415107416107417107418107419107420107421107422107423107424107425107426107427107428107429107430107431107432107433107434107435107436107437107438107439107440107441107442107443107444107445107446107447107448107449107450107451107452107453107454107455107456107457107458107459107460107461107462107463107464107465107466107467107468107469107470107471107472107473107474107475107476107477107478107479107480107481107482107483107484107485107486107487107488107489107490107491107492107493107494107495107496107497107498107499107500107501107502107503107504107505107506107507107508107509107510107511107512107513107514107515107516107517107518107519107520107521107522107523107524107525107526107527107528107529107530107531107532107533107534107535107536107537107538107539107540107541107542107543107544107545107546107547107548107549107550107551107552107553107554107555107556107557107558107559107560107561107562107563107564107565107566107567107568107569107570107571107572107573107574107575107576107577107578107579107580107581107582107583107584107585107586107587107588107589107590107591107592107593107594107595107596107597107598107599107600107601107602107603107604107605107606107607107608107609107610107611107612107613107614107615107616107617107618107619107620107621107622107623107624107625107626107627107628107629107630107631107632107633107634107635107636107637107638107639107640107641107642107643107644107645107646107647107648107649107650107651107652107653107654107655107656107657107658107659107660107661107662107663107664107665107666107667107668107669107670107671107672107673107674107675107676107677107678107679107680107681107682107683107684107685107686107687107688107689107690107691107692107693107694107695107696107697107698107699107700107701107702107703107704107705107706107707107708107709107710107711107712107713107714107715107716107717107718107719107720107721107722107723107724107725107726107727107728107729107730107731107732107733107734107735107736107737107738107739107740107741107742107743107744107745107746107747107748107749107750107751107752107753107754107755107756107757107758107759107760107761107762107763107764107765107766107767107768107769107770107771107772107773107774107775107776107777107778107779107780107781107782107783107784107785107786107787107788107789107790107791107792107793107794107795107796107797107798107799107800107801107802107803107804107805107806107807107808107809107810107811107812107813107814107815107816107817107818107819107820107821107822107823107824107825107826107827107828107829107830107831107832107833107834107835107836107837107838107839107840107841107842107843107844107845107846107847107848107849107850107851107852107853107854107855107856107857107858107859107860107861107862107863107864107865107866107867107868107869107870107871107872107873107874107875107876107877107878107879107880107881107882107883107884107885107886107887107888107889107890107891107892107893107894107895107896107897107898107899107900107901107902107903107904107905107906107907107908107909107910107911107912107913107914107915107916107917107918107919107920107921107922107923107924107925107926107927107928107929107930107931107932107933107934107935107936107937107938107939107940107941107942107943107944107945107946107947107948107949107950107951107952107953107954107955107956107957107958107959107960107961107962107963107964107965107966107967107968107969107970107971107972107973107974107975107976107977107978107979107980107981107982107983107984107985107986107987107988107989107990107991107992107993107994107995107996107997107998107999108000108001108002108003108004108005108006108007108008108009108010108011108012108013108014108015108016108017108018108019108020108021108022108023108024108025108026108027108028108029108030108031108032108033108034108035108036108037108038108039108040108041108042108043108044108045108046108047108048108049108050108051108052108053108054108055108056108057108058108059108060108061108062108063108064108065108066108067108068108069108070108071108072108073108074108075108076108077108078108079108080108081108082108083108084108085108086108087108088108089108090108091108092108093108094108095108096108097108098108099108100108101108102108103108104108105108106108107108108108109108110108111108112108113108114108115108116108117108118108119108120108121108122108123108124108125108126108127108128108129108130108131108132108133108134108135108136108137108138108139108140108141108142108143108144108145108146108147108148108149108150108151108152108153108154108155108156108157108158108159108160108161108162108163108164108165108166108167108168108169108170108171108172108173108174108175108176108177108178108179108180108181108182108183108184108185108186108187108188108189108190108191108192108193108194108195108196108197108198108199108200108201108202108203108204108205108206108207108208108209108210108211108212108213108214108215108216108217108218108219108220108221108222108223108224108225108226108227108228108229108230108231108232108233108234108235108236108237108238108239108240108241108242108243108244108245108246108247108248108249108250108251108252108253108254108255108256108257108258108259108260108261108262108263108264108265108266108267108268108269108270108271108272108273108274108275108276108277108278108279108280108281108282108283108284108285108286108287108288108289108290108291108292108293108294108295108296108297108298108299108300108301108302108303108304108305108306108307108308108309108310108311108312108313108314108315108316108317108318108319108320108321108322108323108324108325108326108327108328108329108330108331108332108333108334108335108336108337108338108339108340108341108342108343108344108345108346108347108348108349108350108351108352108353108354108355108356108357108358108359108360108361108362108363108364108365108366108367108368108369108370108371108372108373108374108375108376108377108378108379108380108381108382108383108384108385108386108387108388108389108390108391108392108393108394108395108396108397108398108399108400108401108402108403108404108405108406108407108408108409108410108411108412108413108414108415108416108417108418108419108420108421108422108423108424108425108426108427108428108429108430108431108432108433108434108435108436108437108438108439108440108441108442108443108444108445108446108447108448108449108450108451108452108453108454108455108456108457108458108459108460108461108462108463108464108465108466108467108468108469108470108471108472108473108474108475108476108477108478108479108480108481108482108483108484108485108486108487108488108489108490108491108492108493108494108495108496108497108498108499108500108501108502108503108504108505108506108507108508108509108510108511108512108513108514108515108516108517108518108519108520108521108522108523108524108525108526108527108528108529108530108531108532108533108534108535108536108537108538108539108540108541108542108543108544108545108546108547108548108549108550108551108552108553108554108555108556108557108558108559108560108561108562108563108564108565108566108567108568108569108570108571108572108573108574108575108576108577108578108579108580108581108582108583108584108585108586108587108588108589108590108591108592108593108594108595108596108597108598108599108600108601108602108603108604108605108606108607108608108609108610108611108612108613108614108615108616108617108618108619108620108621108622108623108624108625108626108627108628108629108630108631108632108633108634108635108636108637108638108639108640108641108642108643108644108645108646108647108648108649108650108651108652108653108654108655108656108657108658108659108660108661108662108663108664108665108666108667108668108669108670108671108672108673108674108675108676108677108678108679108680108681108682108683108684108685108686108687108688108689108690108691108692108693108694108695108696108697108698108699108700108701108702108703108704108705108706108707108708108709108710108711108712108713108714108715108716108717108718108719108720108721108722108723108724108725108726108727108728108729108730108731108732108733108734108735108736108737108738108739108740108741108742108743108744108745108746108747108748108749108750108751108752108753108754108755108756108757108758108759108760108761108762108763108764108765108766108767108768108769108770108771108772108773108774108775108776108777108778108779108780108781108782108783108784108785108786108787108788108789108790108791108792108793108794108795108796108797108798108799108800108801108802108803108804108805108806108807108808108809108810108811108812108813108814108815108816108817108818108819108820108821108822108823108824108825108826108827108828108829108830108831108832108833108834108835108836108837108838108839108840108841108842108843108844108845108846108847108848108849108850108851108852108853108854108855108856108857108858108859108860108861108862108863108864108865108866108867108868108869108870108871108872108873108874108875108876108877108878108879108880108881108882108883108884108885108886108887108888108889108890108891108892108893108894108895108896108897108898108899108900108901108902108903108904108905108906108907108908108909108910108911108912108913108914108915108916108917108918108919108920108921108922108923108924108925108926108927108928108929108930108931108932108933108934108935108936108937108938108939108940108941108942108943108944108945108946108947108948108949108950108951108952108953108954108955108956108957108958108959108960108961108962108963108964108965108966108967108968108969108970108971108972108973108974108975108976108977108978108979108980108981108982108983108984108985108986108987108988108989108990108991108992108993108994108995108996108997108998108999109000109001109002109003109004109005109006109007109008109009109010109011109012109013109014109015109016109017109018109019109020109021109022109023109024109025109026109027109028109029109030109031109032109033109034109035109036109037109038109039109040109041109042109043109044109045109046109047109048109049109050109051109052109053109054109055109056109057109058109059109060109061109062109063109064109065109066109067109068109069109070109071109072109073109074109075109076109077109078109079109080109081109082109083109084109085109086109087109088109089109090109091109092109093109094109095109096109097109098109099109100109101109102109103109104109105109106109107109108109109109110109111109112109113109114109115109116109117109118109119109120109121109122109123109124109125109126109127109128109129109130109131109132109133109134109135109136109137109138109139109140109141109142109143109144109145109146109147109148109149109150109151109152109153109154109155109156109157109158109159109160109161109162109163109164109165109166109167109168109169109170109171109172109173109174109175109176109177109178109179109180109181109182109183109184109185109186109187109188109189109190109191109192109193109194109195109196109197109198109199109200109201109202109203109204109205109206109207109208109209109210109211109212109213109214109215109216109217109218109219109220109221109222109223109224109225109226109227109228109229109230109231109232109233109234109235109236109237109238109239109240109241109242109243109244109245109246109247109248109249109250109251109252109253109254109255109256109257109258109259109260109261109262109263109264109265109266109267109268109269109270109271109272109273109274109275109276109277109278109279109280109281109282109283109284109285109286109287109288109289109290109291109292109293109294109295109296109297109298109299109300109301109302109303109304109305109306109307109308109309109310109311109312109313109314109315109316109317109318109319109320109321109322109323109324109325109326109327109328109329109330109331109332109333109334109335109336109337109338109339109340109341109342109343109344109345109346109347109348109349109350109351109352109353109354109355109356109357109358109359109360109361109362109363109364109365109366109367109368109369109370109371109372109373109374109375109376109377109378109379109380109381109382109383109384109385109386109387109388109389109390109391109392109393109394109395109396109397109398109399109400109401109402109403109404109405109406109407109408109409109410109411109412109413109414109415109416109417109418109419109420109421109422109423109424109425109426109427109428109429109430109431109432109433109434109435109436109437109438109439109440109441109442109443109444109445109446109447109448109449109450109451109452109453109454109455109456109457109458109459109460109461109462109463109464109465109466109467109468109469109470109471109472109473109474109475109476109477109478109479109480109481109482109483109484109485109486109487109488109489109490109491109492109493109494109495109496109497109498109499109500109501109502109503109504109505109506109507109508109509109510109511109512109513109514109515109516109517109518109519109520109521109522109523109524109525109526109527109528109529109530109531109532109533109534109535109536109537109538109539109540109541109542109543109544109545109546109547109548109549109550109551109552109553109554109555109556109557109558109559109560109561109562109563109564109565109566109567109568109569109570109571109572109573109574109575109576109577109578109579109580109581109582109583109584109585109586109587109588109589109590109591109592109593109594109595109596109597109598109599109600109601109602109603109604109605109606109607109608109609109610109611109612109613109614109615109616109617109618109619109620109621109622109623109624109625109626109627109628109629109630109631109632109633109634109635109636109637109638109639109640109641109642109643109644109645109646109647109648109649109650109651109652109653109654109655109656109657109658109659109660109661109662109663109664109665109666109667109668109669109670109671109672109673109674109675109676109677109678109679109680109681109682109683109684109685109686109687109688109689109690109691109692109693109694109695109696109697109698109699109700109701109702109703109704109705109706109707109708109709109710109711109712109713109714109715109716109717109718109719109720109721109722109723109724109725109726109727109728109729109730109731109732109733109734109735109736109737109738109739109740109741109742109743109744109745109746109747109748109749109750109751109752109753109754109755109756109757109758109759109760109761109762109763109764109765109766109767109768109769109770109771109772109773109774109775109776109777109778109779109780109781109782109783109784109785109786109787109788109789109790109791109792109793109794109795109796109797109798109799109800109801109802109803109804109805109806109807109808109809109810109811109812109813109814109815109816109817109818109819109820109821109822109823109824109825109826109827109828109829109830109831109832109833109834109835109836109837109838109839109840109841109842109843109844109845109846109847109848109849109850109851109852109853109854109855109856109857109858109859109860109861109862109863109864109865109866109867109868109869109870109871109872109873109874109875109876109877109878109879109880109881109882109883109884109885109886109887109888109889109890109891109892109893109894109895109896109897109898109899109900109901109902109903109904109905109906109907109908109909109910109911109912109913109914109915109916109917109918109919109920109921109922109923109924109925109926109927109928109929109930109931109932109933109934109935109936109937109938109939109940109941109942109943109944109945109946109947109948109949109950109951109952109953109954109955109956109957109958109959109960109961109962109963109964109965109966109967109968109969109970109971109972109973109974109975109976109977109978109979109980109981109982109983109984109985109986109987109988109989109990109991109992109993109994109995109996109997109998109999110000110001110002110003110004110005110006110007110008110009110010110011110012110013110014110015110016110017110018110019110020110021110022110023110024110025110026110027110028110029110030110031110032110033110034110035110036110037110038110039110040110041110042110043110044110045110046110047110048110049110050110051110052110053110054110055110056110057110058110059110060110061110062110063110064110065110066110067110068110069110070110071110072110073110074110075110076110077110078110079110080110081110082110083110084110085110086110087110088110089110090110091110092110093110094110095110096110097110098110099110100110101110102110103110104110105110106110107110108110109110110110111110112110113110114110115110116110117110118110119110120110121110122110123110124110125110126110127110128110129110130110131110132110133110134110135110136110137110138110139110140110141110142110143110144110145110146110147110148110149110150110151110152110153110154110155110156110157110158110159110160110161110162110163110164110165110166110167110168110169110170110171110172110173110174110175110176110177110178110179110180110181110182110183110184110185110186110187110188110189110190110191110192110193110194110195110196110197110198110199110200110201110202110203110204110205110206110207110208110209110210110211110212110213110214110215110216110217110218110219110220110221110222110223110224110225110226110227110228110229110230110231110232110233110234110235110236110237110238110239110240110241110242110243110244110245110246110247110248110249110250110251110252110253110254110255110256110257110258110259110260110261110262110263110264110265110266110267110268110269110270110271110272110273110274110275110276110277110278110279110280110281110282110283110284110285110286110287110288110289110290110291110292110293110294110295110296110297110298110299110300110301110302110303110304110305110306110307110308110309110310110311110312110313110314110315110316110317110318110319110320110321110322110323110324110325110326110327110328110329110330110331110332110333110334110335110336110337110338110339110340110341110342110343110344110345110346110347110348110349110350110351110352110353110354110355110356110357110358110359110360110361110362110363110364110365110366110367110368110369110370110371110372110373110374110375110376110377110378110379110380110381110382110383110384110385110386110387110388110389110390110391110392110393110394110395110396110397110398110399110400110401110402110403110404110405110406110407110408110409110410110411110412110413110414110415110416110417110418110419110420110421110422110423110424110425110426110427110428110429110430110431110432110433110434110435110436110437110438110439110440110441110442110443110444110445110446110447110448110449110450110451110452110453110454110455110456110457110458110459110460110461110462110463110464110465110466110467110468110469110470110471110472110473110474110475110476110477110478110479110480110481110482110483110484110485110486110487110488110489110490110491110492110493110494110495110496110497110498110499110500110501110502110503110504110505110506110507110508110509110510110511110512110513110514110515110516110517110518110519110520110521110522110523110524110525110526110527110528110529110530110531110532110533110534110535110536110537110538110539110540110541110542110543110544110545110546110547110548110549110550110551110552110553110554110555110556110557110558110559110560110561110562110563110564110565110566110567110568110569110570110571110572110573110574110575110576110577110578110579110580110581110582110583110584110585110586110587110588110589110590110591110592110593110594110595110596110597110598110599110600110601110602110603110604110605110606110607110608110609110610110611110612110613110614110615110616110617110618110619110620110621110622110623110624110625110626110627110628110629110630110631110632110633110634110635110636110637110638110639110640110641110642110643110644110645110646110647110648110649110650110651110652110653110654110655110656110657110658110659110660110661110662110663110664110665110666110667110668110669110670110671110672110673110674110675110676110677110678110679110680110681110682110683110684110685110686110687110688110689110690110691110692110693110694110695110696110697110698110699110700110701110702110703110704110705110706110707110708110709110710110711110712110713110714110715110716110717110718110719110720110721110722110723110724110725110726110727110728110729110730110731110732110733110734110735110736110737110738110739110740110741110742110743110744110745110746110747110748110749110750110751110752110753110754110755110756110757110758110759110760110761110762110763110764110765110766110767110768110769110770110771110772110773110774110775110776110777110778110779110780110781110782110783110784110785110786110787110788110789110790110791110792110793110794110795110796110797110798110799110800110801110802110803110804110805110806110807110808110809110810110811110812110813110814110815110816110817110818110819110820110821110822110823110824110825110826110827110828110829110830110831110832110833110834110835110836110837110838110839110840110841110842110843110844110845110846110847110848110849110850110851110852110853110854110855110856110857110858110859110860110861110862110863110864110865110866110867110868110869110870110871110872110873110874110875110876110877110878110879110880110881110882110883110884110885110886110887110888110889110890110891110892110893110894110895110896110897110898110899110900110901110902110903110904110905110906110907110908110909110910110911110912110913110914110915110916110917110918110919110920110921110922110923110924110925110926110927110928110929110930110931110932110933110934110935110936110937110938110939110940110941110942110943110944110945110946110947110948110949110950110951110952110953110954110955110956110957110958110959110960110961110962110963110964110965110966110967110968110969110970110971110972110973110974110975110976110977110978110979110980110981110982110983110984110985110986110987110988110989110990110991110992110993110994110995110996110997110998110999111000111001111002111003111004111005111006111007111008111009111010111011111012111013111014111015111016111017111018111019111020111021111022111023111024111025111026111027111028111029111030111031111032111033111034111035111036111037111038111039111040111041111042111043111044111045111046111047111048111049111050111051111052111053111054111055111056111057111058111059111060111061111062111063111064111065111066111067111068111069111070111071111072111073111074111075111076111077111078111079111080111081111082111083111084111085111086111087111088111089111090111091111092111093111094111095111096111097111098111099111100111101111102111103111104111105111106111107111108111109111110111111111112111113111114111115111116111117111118111119111120111121111122111123111124111125111126111127111128111129111130111131111132111133111134111135111136111137111138111139111140111141111142111143111144111145111146111147111148111149111150111151111152111153111154111155111156111157111158111159111160111161111162111163111164111165111166111167111168111169111170111171111172111173111174111175111176111177111178111179111180111181111182111183111184111185111186111187111188111189111190111191111192111193111194111195111196111197111198111199111200111201111202111203111204111205111206111207111208111209111210111211111212111213111214111215111216111217111218111219111220111221111222111223111224111225111226111227111228111229111230111231111232111233111234111235111236111237111238111239111240111241111242111243111244111245111246111247111248111249111250111251111252111253111254111255111256111257111258111259111260111261111262111263111264111265111266111267111268111269111270111271111272111273111274111275111276111277111278111279111280111281111282111283111284111285111286111287111288111289111290111291111292111293111294111295111296111297111298111299111300111301111302111303111304111305111306111307111308111309111310111311111312111313111314111315111316111317111318111319111320111321111322111323111324111325111326111327111328111329111330111331111332111333111334111335111336111337111338111339111340111341111342111343111344111345111346111347111348111349111350111351111352111353111354111355111356111357111358111359111360111361111362111363111364111365111366111367111368111369111370111371111372111373111374111375111376111377111378111379111380111381111382111383111384111385111386111387111388111389111390111391111392111393111394111395111396111397111398111399111400111401111402111403111404111405111406111407111408111409111410111411111412111413111414111415111416111417111418111419111420111421111422111423111424111425111426111427111428111429111430111431111432111433111434111435111436111437111438111439111440111441111442111443111444111445111446111447111448111449111450111451111452111453111454111455111456111457111458111459111460111461111462111463111464111465111466111467111468111469111470111471111472111473111474111475111476111477111478111479111480111481111482111483111484111485111486111487111488111489111490111491111492111493111494111495111496111497111498111499111500111501111502111503111504111505111506111507111508111509111510111511111512111513111514111515111516111517111518111519111520111521111522111523111524111525111526111527111528111529111530111531111532111533111534111535111536111537111538111539111540111541111542111543111544111545111546111547111548111549111550111551111552111553111554111555111556111557111558111559111560111561111562111563111564111565111566111567111568111569111570111571111572111573111574111575111576111577111578111579111580111581111582111583111584111585111586111587111588111589111590111591111592111593111594111595111596111597111598111599111600111601111602111603111604111605111606111607111608111609111610111611111612111613111614111615111616111617111618111619111620111621111622111623111624111625111626111627111628111629111630111631111632111633111634111635111636111637111638111639111640111641111642111643111644111645111646111647111648111649111650111651111652111653111654111655111656111657111658111659111660111661111662111663111664111665111666111667111668111669111670111671111672111673111674111675111676111677111678111679111680111681111682111683111684111685111686111687111688111689111690111691111692111693111694111695111696111697111698111699111700111701111702111703111704111705111706111707111708111709111710111711111712111713111714111715111716111717111718111719111720111721111722111723111724111725111726111727111728111729111730111731111732111733111734111735111736111737111738111739111740111741111742111743111744111745111746111747111748111749111750111751111752111753111754111755111756111757111758111759111760111761111762111763111764111765111766111767111768111769111770111771111772111773111774111775111776111777111778111779111780111781111782111783111784111785111786111787111788111789111790111791111792111793111794111795111796111797111798111799111800111801111802111803111804111805111806111807111808111809111810111811111812111813111814111815111816111817111818111819111820111821111822111823111824111825111826111827111828111829111830111831111832111833111834111835111836111837111838111839111840111841111842111843111844111845111846111847111848111849111850111851111852111853111854111855111856111857111858111859111860111861111862111863111864111865111866111867111868111869111870111871111872111873111874111875111876111877111878111879111880111881111882111883111884111885111886111887111888111889111890111891111892111893111894111895111896111897111898111899111900111901111902111903111904111905111906111907111908111909111910111911111912111913111914111915111916111917111918111919111920111921111922111923111924111925111926111927111928111929111930111931111932111933111934111935111936111937111938111939111940111941111942111943111944111945111946111947111948111949111950111951111952111953111954111955111956111957111958111959111960111961111962111963111964111965111966111967111968111969111970111971111972111973111974111975111976111977111978111979111980111981111982111983111984111985111986111987111988111989111990111991111992111993111994111995111996111997111998111999112000112001112002112003112004112005112006112007112008112009112010112011112012112013112014112015112016112017112018112019112020112021112022112023112024112025112026112027112028112029112030112031112032112033112034112035112036112037112038112039112040112041112042112043112044112045112046112047112048112049112050112051112052112053112054112055112056112057112058112059112060112061112062112063112064112065112066112067112068112069112070112071112072112073112074112075112076112077112078112079112080112081112082112083112084112085112086112087112088112089112090112091112092112093112094112095112096112097112098112099112100112101112102112103112104112105112106112107112108112109112110112111112112112113112114112115112116112117112118112119112120112121112122112123112124112125112126112127112128112129112130112131112132112133112134112135112136112137112138112139112140112141112142112143112144112145112146112147112148112149112150112151112152112153112154112155112156112157112158112159112160112161112162112163112164112165112166112167112168112169112170112171112172112173112174112175112176112177112178112179112180112181112182112183112184112185112186112187112188112189112190112191112192112193112194112195112196112197112198112199112200112201112202112203112204112205112206112207112208112209112210112211112212112213112214112215112216112217112218112219112220112221112222112223112224112225112226112227112228112229112230112231112232112233112234112235112236112237112238112239112240112241112242112243112244112245112246112247112248112249112250112251112252112253112254112255112256112257112258112259112260112261112262112263112264112265112266112267112268112269112270112271112272112273112274112275112276112277112278112279112280112281112282112283112284112285112286112287112288112289112290112291112292112293112294112295112296112297112298112299112300112301112302112303112304112305112306112307112308112309112310112311112312112313112314112315112316112317112318112319112320112321112322112323112324112325112326112327112328112329112330112331112332112333112334112335112336112337112338112339112340112341112342112343112344112345112346112347112348112349112350112351112352112353112354112355112356112357112358112359112360112361112362112363112364112365112366112367112368112369112370112371112372112373112374112375112376112377112378112379112380112381112382112383112384112385112386112387112388112389112390112391112392112393112394112395112396112397112398112399112400112401112402112403112404112405112406112407112408112409112410112411112412112413112414112415112416112417112418112419112420112421112422112423112424112425112426112427112428112429112430112431112432112433112434112435112436112437112438112439112440112441112442112443112444112445112446112447112448112449112450112451112452112453112454112455112456112457112458112459112460112461112462112463112464112465112466112467112468112469112470112471112472112473112474112475112476112477112478112479112480112481112482112483112484112485112486112487112488112489112490112491112492112493112494112495112496112497112498112499112500112501112502112503112504112505112506112507112508112509112510112511112512112513112514112515112516112517112518112519112520112521112522112523112524112525112526112527112528112529112530112531112532112533112534112535112536112537112538112539112540112541112542112543112544112545112546112547112548112549112550112551112552112553112554112555112556112557112558112559112560112561112562112563112564112565112566112567112568112569112570112571112572112573112574112575112576112577112578112579112580112581112582112583112584112585112586112587112588112589112590112591112592112593112594112595112596112597112598112599112600112601112602112603112604112605112606112607112608112609112610112611112612112613112614112615112616112617112618112619112620112621112622112623112624112625112626112627112628112629112630112631112632112633112634112635112636112637112638112639112640112641112642112643112644112645112646112647112648112649112650112651112652112653112654112655112656112657112658112659112660112661112662112663112664112665112666112667112668112669112670112671112672112673112674112675112676112677112678112679112680112681112682112683112684112685112686112687112688112689112690112691112692112693112694112695112696112697112698112699112700112701112702112703112704112705112706112707112708112709112710112711112712112713112714112715112716112717112718112719112720112721112722112723112724112725112726112727112728112729112730112731112732112733112734112735112736112737112738112739112740112741112742112743112744112745112746112747112748112749112750112751112752112753112754112755112756112757112758112759112760112761112762112763112764112765112766112767112768112769112770112771112772112773112774112775112776112777112778112779112780112781112782112783112784112785112786112787112788112789112790112791112792112793112794112795112796112797112798112799112800112801112802112803112804112805112806112807112808112809112810112811112812112813112814112815112816112817112818112819112820112821112822112823112824112825112826112827112828112829112830112831112832112833112834112835112836112837112838112839112840112841112842112843112844112845112846112847112848112849112850112851112852112853112854112855112856112857112858112859112860112861112862112863112864112865112866112867112868112869112870112871112872112873112874112875112876112877112878112879112880112881112882112883112884112885112886112887112888112889112890112891112892112893112894112895112896112897112898112899112900112901112902112903112904112905112906112907112908112909112910112911112912112913112914112915112916112917112918112919112920112921112922112923112924112925112926112927112928112929112930112931112932112933112934112935112936112937112938112939112940112941112942112943112944112945112946112947112948112949112950112951112952112953112954112955112956112957112958112959112960112961112962112963112964112965112966112967112968112969112970112971112972112973112974112975112976112977112978112979112980112981112982112983112984112985112986112987112988112989112990112991112992112993112994112995112996112997112998112999113000113001113002113003113004113005113006113007113008113009113010113011113012113013113014113015113016113017113018113019113020113021113022113023113024113025113026113027113028113029113030113031113032113033113034113035113036113037113038113039113040113041113042113043113044113045113046113047113048113049113050113051113052113053113054113055113056113057113058113059113060113061113062113063113064113065113066113067113068113069113070113071113072113073113074113075113076113077113078113079113080113081113082113083113084113085113086113087113088113089113090113091113092113093113094113095113096113097113098113099113100113101113102113103113104113105113106113107113108113109113110113111113112113113113114113115113116113117113118113119113120113121113122113123113124113125113126113127113128113129113130113131113132113133113134113135113136113137113138113139113140113141113142113143113144113145113146113147113148113149113150113151113152113153113154113155113156113157113158113159113160113161113162113163113164113165113166113167113168113169113170113171113172113173113174113175113176113177113178113179113180113181113182113183113184113185113186113187113188113189113190113191113192113193113194113195113196113197113198113199113200113201113202113203113204113205113206113207113208113209113210113211113212113213113214113215113216113217113218113219113220113221113222113223113224113225113226113227113228113229113230113231113232113233113234113235113236113237113238113239113240113241113242113243113244113245113246113247113248113249113250113251113252113253113254113255113256113257113258113259113260113261113262113263113264113265113266113267113268113269113270113271113272113273113274113275113276113277113278113279113280113281113282113283113284113285113286113287113288113289113290113291113292113293113294113295113296113297113298113299113300113301113302113303113304113305113306113307113308113309113310113311113312113313113314113315113316113317113318113319113320113321113322113323113324113325113326113327113328113329113330113331113332113333113334113335113336113337113338113339113340113341113342113343113344113345113346113347113348113349113350113351113352113353113354113355113356113357113358113359113360113361113362113363113364113365113366113367113368113369113370113371113372113373113374113375113376113377113378113379113380113381113382113383113384113385113386113387113388113389113390113391113392113393113394113395113396113397113398113399113400113401113402113403113404113405113406113407113408113409113410113411113412113413113414113415113416113417113418113419113420113421113422113423113424113425113426113427113428113429113430113431113432113433113434113435113436113437113438113439113440113441113442113443113444113445113446113447113448113449113450113451113452113453113454113455113456113457113458113459113460113461113462113463113464113465113466113467113468113469113470113471113472113473113474113475113476113477113478113479113480113481113482113483113484113485113486113487113488113489113490113491113492113493113494113495113496113497113498113499113500113501113502113503113504113505113506113507113508113509113510113511113512113513113514113515113516113517113518113519113520113521113522113523113524113525113526113527113528113529113530113531113532113533113534113535113536113537113538113539113540113541113542113543113544113545113546113547113548113549113550113551113552113553113554113555113556113557113558113559113560113561113562113563113564113565113566113567113568113569113570113571113572113573113574113575113576113577113578113579113580113581113582113583113584113585113586113587113588113589113590113591113592113593113594113595113596113597113598113599113600113601113602113603113604113605113606113607113608113609113610113611113612113613113614113615113616113617113618113619113620113621113622113623113624113625113626113627113628113629113630113631113632113633113634113635113636113637113638113639113640113641113642113643113644113645113646113647113648113649113650113651113652113653113654113655113656113657113658113659113660113661113662113663113664113665113666113667113668113669113670113671113672113673113674113675113676113677113678113679113680113681113682113683113684113685113686113687113688113689113690113691113692113693113694113695113696113697113698113699113700113701113702113703113704113705113706113707113708113709113710113711113712113713113714113715113716113717113718113719113720113721113722113723113724113725113726113727113728113729113730113731113732113733113734113735113736113737113738113739113740113741113742113743113744113745113746113747113748113749113750113751113752113753113754113755113756113757113758113759113760113761113762113763113764113765113766113767113768113769113770113771113772113773113774113775113776113777113778113779113780113781113782113783113784113785113786113787113788113789113790113791113792113793113794113795113796113797113798113799113800113801113802113803113804113805113806113807113808113809113810113811113812113813113814113815113816113817113818113819113820113821113822113823113824113825113826113827113828113829113830113831113832113833113834113835113836113837113838113839113840113841113842113843113844113845113846113847113848113849113850113851113852113853113854113855113856113857113858113859113860113861113862113863113864113865113866113867113868113869113870113871113872113873113874113875113876113877113878113879113880113881113882113883113884113885113886113887113888113889113890113891113892113893113894113895113896113897113898113899113900113901113902113903113904113905113906113907113908113909113910113911113912113913113914113915113916113917113918113919113920113921113922113923113924113925113926113927113928113929113930113931113932113933113934113935113936113937113938113939113940113941113942113943113944113945113946113947113948113949113950113951113952113953113954113955113956113957113958113959113960113961113962113963113964113965113966113967113968113969113970113971113972113973113974113975113976113977113978113979113980113981113982113983113984113985113986113987113988113989113990113991113992113993113994113995113996113997113998113999114000114001114002114003114004114005114006114007114008114009114010114011114012114013114014114015114016114017114018114019114020114021114022114023114024114025114026114027114028114029114030114031114032114033114034114035114036114037114038114039114040114041114042114043114044114045114046114047114048114049114050114051114052114053114054114055114056114057114058114059114060114061114062114063114064114065114066114067114068114069114070114071114072114073114074114075114076114077114078114079114080114081114082114083114084114085114086114087114088114089114090114091114092114093114094114095114096114097114098114099114100114101114102114103114104114105114106114107114108114109114110114111114112114113114114114115114116114117114118114119114120114121114122114123114124114125114126114127114128114129114130114131114132114133114134114135114136114137114138114139114140114141114142114143114144114145114146114147114148114149114150114151114152114153114154114155114156114157114158114159114160114161114162114163114164114165114166114167114168114169114170114171114172114173114174114175114176114177114178114179114180114181114182114183114184114185114186114187114188114189114190114191114192114193114194114195114196114197114198114199114200114201114202114203114204114205114206114207114208114209114210114211114212114213114214114215114216114217114218114219114220114221114222114223114224114225114226114227114228114229114230114231114232114233114234114235114236114237114238114239114240114241114242114243114244114245114246114247114248114249114250114251114252114253114254114255114256114257114258114259114260114261114262114263114264114265114266114267114268114269114270114271114272114273114274114275114276114277114278114279114280114281114282114283114284114285114286114287114288114289114290114291114292114293114294114295114296114297114298114299114300114301114302114303114304114305114306114307114308114309114310114311114312114313114314114315114316114317114318114319114320114321114322114323114324114325114326114327114328114329114330114331114332114333114334114335114336114337114338114339114340114341114342114343114344114345114346114347114348114349114350114351114352114353114354114355114356114357114358114359114360114361114362114363114364114365114366114367114368114369114370114371114372114373114374114375114376114377114378114379114380114381114382114383114384114385114386114387114388114389114390114391114392114393114394114395114396114397114398114399114400114401114402114403114404114405114406114407114408114409114410114411114412114413114414114415114416114417114418114419114420114421114422114423114424114425114426114427114428114429114430114431114432114433114434114435114436114437114438114439114440114441114442114443114444114445114446114447114448114449114450114451114452114453114454114455114456114457114458114459114460114461114462114463114464114465114466114467114468114469114470114471114472114473114474114475114476114477114478114479114480114481114482114483114484114485114486114487114488114489114490114491114492114493114494114495114496114497114498114499114500114501114502114503114504114505114506114507114508114509114510114511114512114513114514114515114516114517114518114519114520114521114522114523114524114525114526114527114528114529114530114531114532114533114534114535114536114537114538114539114540114541114542114543114544114545114546114547114548114549114550114551114552114553114554114555114556114557114558114559114560114561114562114563114564114565114566114567114568114569114570114571114572114573114574114575114576114577114578114579114580114581114582114583114584114585114586114587114588114589114590114591114592114593114594114595114596114597114598114599114600114601114602114603114604114605114606114607114608114609114610114611114612114613114614114615114616114617114618114619114620114621114622114623114624114625114626114627114628114629114630114631114632114633114634114635114636114637114638114639114640114641114642114643114644114645114646114647114648114649114650114651114652114653114654114655114656114657114658114659114660114661114662114663114664114665114666114667114668114669114670114671114672114673114674114675114676114677114678114679114680114681114682114683114684114685114686114687114688114689114690114691114692114693114694114695114696114697114698114699114700114701114702114703114704114705114706114707114708114709114710114711114712114713114714114715114716114717114718114719114720114721114722114723114724114725114726114727114728114729114730114731114732114733114734114735114736114737114738114739114740114741114742114743114744114745114746114747114748114749114750114751114752114753114754114755114756114757114758114759114760114761114762114763114764114765114766114767114768114769114770114771114772114773114774114775114776114777114778114779114780114781114782114783114784114785114786114787114788114789114790114791114792114793114794114795114796114797114798114799114800114801114802114803114804114805114806114807114808114809114810114811114812114813114814114815114816114817114818114819114820114821114822114823114824114825114826114827114828114829114830114831114832114833114834114835114836114837114838114839114840114841114842114843114844114845114846114847114848114849114850114851114852114853114854114855114856114857114858114859114860114861114862114863114864114865114866114867114868114869114870114871114872114873114874114875114876114877114878114879114880114881114882114883114884114885114886114887114888114889114890114891114892114893114894114895114896114897114898114899114900114901114902114903114904114905114906114907114908114909114910114911114912114913114914114915114916114917114918114919114920114921114922114923114924114925114926114927114928114929114930114931114932114933114934114935114936114937114938114939114940114941114942114943114944114945114946114947114948114949114950114951114952114953114954114955114956114957114958114959114960114961114962114963114964114965114966114967114968114969114970114971114972114973114974114975114976114977114978114979114980114981114982114983114984114985114986114987114988114989114990114991114992114993114994114995114996114997114998114999115000115001115002115003115004115005115006115007115008115009115010115011115012115013115014115015115016115017115018115019115020115021115022115023115024115025115026115027115028115029115030115031115032115033115034115035115036115037115038115039115040115041115042115043115044115045115046115047115048115049115050115051115052115053115054115055115056115057115058115059115060115061115062115063115064115065115066115067115068115069115070115071115072115073115074115075115076115077115078115079115080115081115082115083115084115085115086115087115088115089115090115091115092115093115094115095115096115097115098115099115100115101115102115103115104115105115106115107115108115109115110115111115112115113115114115115115116115117115118115119115120115121115122115123115124115125115126115127115128115129115130115131115132115133115134115135115136115137115138115139115140115141115142115143115144115145115146115147115148115149115150115151115152115153115154115155115156115157115158115159115160115161115162115163115164115165115166115167115168115169115170115171115172115173115174115175115176115177115178115179115180115181115182115183115184115185115186115187115188115189115190115191115192115193115194115195115196115197115198115199115200115201115202115203115204115205115206115207115208115209115210115211115212115213115214115215115216115217115218115219115220115221115222115223115224115225115226115227115228115229115230115231115232115233115234115235115236115237115238115239115240115241115242115243115244115245115246115247115248115249115250115251115252115253115254115255115256115257115258115259115260115261115262115263115264115265115266115267115268115269115270115271115272115273115274115275115276115277115278115279115280115281115282115283115284115285115286115287115288115289115290115291115292115293115294115295115296115297115298115299115300115301115302115303115304115305115306115307115308115309115310115311115312115313115314115315115316115317115318115319115320115321115322115323115324115325115326115327115328115329115330115331115332115333115334115335115336115337115338115339115340115341115342115343115344115345115346115347115348115349115350115351115352115353115354115355115356115357115358115359115360115361115362115363115364115365115366115367115368115369115370115371115372115373115374115375115376115377115378115379115380115381115382115383115384115385115386115387115388115389115390115391115392115393115394115395115396115397115398115399115400115401115402115403115404115405115406115407115408115409115410115411115412115413115414115415115416115417115418115419115420115421115422115423115424115425115426115427115428115429115430115431115432115433115434115435115436115437115438115439115440115441115442115443115444115445115446115447115448115449115450115451115452115453115454115455115456115457115458115459115460115461115462115463115464115465115466115467115468115469115470115471115472115473115474115475115476115477115478115479115480115481115482115483115484115485115486115487115488115489115490115491115492115493115494115495115496115497115498115499115500115501115502115503115504115505115506115507115508115509115510115511115512115513115514115515115516115517115518115519115520115521115522115523115524115525115526115527115528115529115530115531115532115533115534115535115536115537115538115539115540115541115542115543115544115545115546115547115548115549115550115551115552115553115554115555115556115557115558115559115560115561115562115563115564115565115566115567115568115569115570115571115572115573115574115575115576115577115578115579115580115581115582115583115584115585115586115587115588115589115590115591115592115593115594115595115596115597115598115599115600115601115602115603115604115605115606115607115608115609115610115611115612115613115614115615115616115617115618115619115620115621115622115623115624115625115626115627115628115629115630115631115632115633115634115635115636115637115638115639115640115641115642115643115644115645115646115647115648115649115650115651115652115653115654115655115656115657115658115659115660115661115662115663115664115665115666115667115668115669115670115671115672115673115674115675115676115677115678115679115680115681115682115683115684115685115686115687115688115689115690115691115692115693115694115695115696115697115698115699115700115701115702115703115704115705115706115707115708115709115710115711115712115713115714115715115716115717115718115719115720115721115722115723115724115725115726115727115728115729115730115731115732115733115734115735115736115737115738115739115740115741115742115743115744115745115746115747115748115749115750115751115752115753115754115755115756115757115758115759115760115761115762115763115764115765115766115767115768115769115770115771115772115773115774115775115776115777115778115779115780115781115782115783115784115785115786115787115788115789115790115791115792115793115794115795115796115797115798115799115800115801115802115803115804115805115806115807115808115809115810115811115812115813115814115815115816115817115818115819115820115821115822115823115824115825115826115827115828115829115830115831115832115833115834115835115836115837115838115839115840115841115842115843115844115845115846115847115848115849115850115851115852115853115854115855115856115857115858115859115860115861115862115863115864115865115866115867115868115869115870115871115872115873115874115875115876115877115878115879115880115881115882115883115884115885115886115887115888115889115890115891115892115893115894115895115896115897115898115899115900115901115902115903115904115905115906115907115908115909115910115911115912115913115914115915115916115917115918115919115920115921115922115923115924115925115926115927115928115929115930115931115932115933115934115935115936115937115938115939115940115941115942115943115944115945115946115947115948115949115950115951115952115953115954115955115956115957115958115959115960115961115962115963115964115965115966115967115968115969115970115971115972115973115974115975115976115977115978115979115980115981115982115983115984115985115986115987115988115989115990115991115992115993115994115995115996115997115998115999116000116001116002116003116004116005116006116007116008116009116010116011116012116013116014116015116016116017116018116019116020116021116022116023116024116025116026116027116028116029116030116031116032116033116034116035116036116037116038116039116040116041116042116043116044116045116046116047116048116049116050116051116052116053116054116055116056116057116058116059116060116061116062116063116064116065116066116067116068116069116070116071116072116073116074116075116076116077116078116079116080116081116082116083116084116085116086116087116088116089116090116091116092116093116094116095116096116097116098116099116100116101116102116103116104116105116106116107116108116109116110116111116112116113116114116115116116116117116118116119116120116121116122116123116124116125116126116127116128116129116130116131116132116133116134116135116136116137116138116139116140116141116142116143116144116145116146116147116148116149116150116151116152116153116154116155116156116157116158116159116160116161116162116163116164116165116166116167116168116169116170116171116172116173116174116175116176116177116178116179116180116181116182116183116184116185116186116187116188116189116190116191116192116193116194116195116196116197116198116199116200116201116202116203116204116205116206116207116208116209116210116211116212116213116214116215116216116217116218116219116220116221116222116223116224116225116226116227116228116229116230116231116232116233116234116235116236116237116238116239116240116241116242116243116244116245116246116247116248116249116250116251116252116253116254116255116256116257116258116259116260116261116262116263116264116265116266116267116268116269116270116271116272116273116274116275116276116277116278116279116280116281116282116283116284116285116286116287116288116289116290116291116292116293116294116295116296116297116298116299116300116301116302116303116304116305116306116307116308116309116310116311116312116313116314116315116316116317116318116319116320116321116322116323116324116325116326116327116328116329116330116331116332116333116334116335116336116337116338116339116340116341116342116343116344116345116346116347116348116349116350116351116352116353116354116355116356116357116358116359116360116361116362116363116364116365116366116367116368116369116370116371116372116373116374116375116376116377116378116379116380116381116382116383116384116385116386116387116388116389116390116391116392116393116394116395116396116397116398116399116400116401116402116403116404116405116406116407116408116409116410116411116412116413116414116415116416116417116418116419116420116421116422116423116424116425116426116427116428116429116430116431116432116433116434116435116436116437116438116439116440116441116442116443116444116445116446116447116448116449116450116451116452116453116454116455116456116457116458116459116460116461116462116463116464116465116466116467116468116469116470116471116472116473116474116475116476116477116478116479116480116481116482116483116484116485116486116487116488116489116490116491116492116493116494116495116496116497116498116499116500116501116502116503116504116505116506116507116508116509116510116511116512116513116514116515116516116517116518116519116520116521116522116523116524116525116526116527116528116529116530116531116532116533116534116535116536116537116538116539116540116541116542116543116544116545116546116547116548116549116550116551116552116553116554116555116556116557116558116559116560116561116562116563116564116565116566116567116568116569116570116571116572116573116574116575116576116577116578116579116580116581116582116583116584116585116586116587116588116589116590116591116592116593116594116595116596116597116598116599116600116601116602116603116604116605116606116607116608116609116610116611116612116613116614116615116616116617116618116619116620116621116622116623116624116625116626116627116628116629116630116631116632116633116634116635116636116637116638116639116640116641116642116643116644116645116646116647116648116649116650116651116652116653116654116655116656116657116658116659116660116661116662116663116664116665116666116667116668116669116670116671116672116673116674116675116676116677116678116679116680116681116682116683116684116685116686116687116688116689116690116691116692116693116694116695116696116697116698116699116700116701116702116703116704116705116706116707116708116709116710116711116712116713116714116715116716116717116718116719116720116721116722116723116724116725116726116727116728116729116730116731116732116733116734116735116736116737116738116739116740116741116742116743116744116745116746116747116748116749116750116751116752116753116754116755116756116757116758116759116760116761116762116763116764116765116766116767116768116769116770116771116772116773116774116775116776116777116778116779116780116781116782116783116784116785116786116787116788116789116790116791116792116793116794116795116796116797116798116799116800116801116802116803116804116805116806116807116808116809116810116811116812116813116814116815116816116817116818116819116820116821116822116823116824116825116826116827116828116829116830116831116832116833116834116835116836116837116838116839116840116841116842116843116844116845116846116847116848116849116850116851116852116853116854116855116856116857116858116859116860116861116862116863116864116865116866116867116868116869116870116871116872116873116874116875116876116877116878116879116880116881116882116883116884116885116886116887116888116889116890116891116892116893116894116895116896116897116898116899116900116901116902116903116904116905116906116907116908116909116910116911116912116913116914116915116916116917116918116919116920116921116922116923116924116925116926116927116928116929116930116931116932116933116934116935116936116937116938116939116940116941116942116943116944116945116946116947116948116949116950116951116952116953116954116955116956116957116958116959116960116961116962116963116964116965116966116967116968116969116970116971116972116973116974116975116976116977116978116979116980116981116982116983116984116985116986116987116988116989116990116991116992116993116994116995116996116997116998116999117000117001117002117003117004117005117006117007117008117009117010117011117012117013117014117015117016117017117018117019117020117021117022117023117024117025117026117027117028117029117030117031117032117033117034117035117036117037117038117039117040117041117042117043117044117045117046117047117048117049117050117051117052117053117054117055117056117057117058117059117060117061117062117063117064117065117066117067117068117069117070117071117072117073117074117075117076117077117078117079117080117081117082117083117084117085117086117087117088117089117090117091117092117093117094117095117096117097117098117099117100117101117102117103117104117105117106117107117108117109117110117111117112117113117114117115117116117117117118117119117120117121117122117123117124117125117126117127117128117129117130117131117132117133117134117135117136117137117138117139117140117141117142117143117144117145117146117147117148117149117150117151117152117153117154117155117156117157117158117159117160117161117162117163117164117165117166117167117168117169117170117171117172117173117174117175117176117177117178117179117180117181117182117183117184117185117186117187117188117189117190117191117192117193117194117195117196117197117198117199117200117201117202117203117204117205117206117207117208117209117210117211117212117213117214117215117216117217117218117219117220117221117222117223117224117225117226117227117228117229117230117231117232117233117234117235117236117237117238117239117240117241117242117243117244117245117246117247117248117249117250117251117252117253117254117255117256117257117258117259117260117261117262117263117264117265117266117267117268117269117270117271117272117273117274117275117276117277117278117279117280117281117282117283117284117285117286117287117288117289117290117291117292117293117294117295117296117297117298117299117300117301117302117303117304117305117306117307117308117309117310117311117312117313117314117315117316117317117318117319117320117321117322117323117324117325117326117327117328117329117330117331117332117333117334117335117336117337117338117339117340117341117342117343117344117345117346117347117348117349117350117351117352117353117354117355117356117357117358117359117360117361117362117363117364117365117366117367117368117369117370117371117372117373117374117375117376117377117378117379117380117381117382117383117384117385117386117387117388117389117390117391117392117393117394117395117396117397117398117399117400117401117402117403117404117405117406117407117408117409117410117411117412117413117414117415117416117417117418117419117420117421117422117423117424117425117426117427117428117429117430117431117432117433117434117435117436117437117438117439117440117441117442117443117444117445117446117447117448117449117450117451117452117453117454117455117456117457117458117459117460117461117462117463117464117465117466117467117468117469117470117471117472117473117474117475117476117477117478117479117480117481117482117483117484117485117486117487117488117489117490117491117492117493117494117495117496117497117498117499117500117501117502117503117504117505117506117507117508117509117510117511117512117513117514117515117516117517117518117519117520117521117522117523117524117525117526117527117528117529117530117531117532117533117534117535117536117537117538117539117540117541117542117543117544117545117546117547117548117549117550117551117552117553117554117555117556117557117558117559117560117561117562117563117564117565117566117567117568117569117570117571117572117573117574117575117576117577117578117579117580117581117582117583117584117585117586117587117588117589117590117591117592117593117594117595117596117597117598117599117600117601117602117603117604117605117606117607117608117609117610117611117612117613117614117615117616117617117618117619117620117621117622117623117624117625117626117627117628117629117630117631117632117633117634117635117636117637117638117639117640117641117642117643117644117645117646117647117648117649117650117651117652117653117654117655117656117657117658117659117660117661117662117663117664117665117666117667117668117669117670117671117672117673117674117675117676117677117678117679117680117681117682117683117684117685117686117687117688117689117690117691117692117693117694117695117696117697117698117699117700117701117702117703117704117705117706117707117708117709117710117711117712117713117714117715117716117717117718117719117720117721117722117723117724117725117726117727117728117729117730117731117732117733117734117735117736117737117738117739117740117741117742117743117744117745117746117747117748117749117750117751117752117753117754117755117756117757117758117759117760117761117762117763117764117765117766117767117768117769117770117771117772117773117774117775117776117777117778117779117780117781117782117783117784117785117786117787117788117789117790117791117792117793117794117795117796117797117798117799117800117801117802117803117804117805117806117807117808117809117810117811117812117813117814117815117816117817117818117819117820117821117822117823117824117825117826117827117828117829117830117831117832117833117834117835117836117837117838117839117840117841117842117843117844117845117846117847117848117849117850117851117852117853117854117855117856117857117858117859117860117861117862117863117864117865117866117867117868117869117870117871117872117873117874117875117876117877117878117879117880117881117882117883117884117885117886117887117888117889117890117891117892117893117894117895117896117897117898117899117900117901117902117903117904117905117906117907117908117909117910117911117912117913117914117915117916117917117918117919117920117921117922117923117924117925117926117927117928117929117930117931117932117933117934117935117936117937117938117939117940117941117942117943117944117945117946117947117948117949117950117951117952117953117954117955117956117957117958117959117960117961117962117963117964117965117966117967117968117969117970117971117972117973117974117975117976117977117978117979117980117981117982117983117984117985117986117987117988117989117990117991117992117993117994117995117996117997117998117999118000118001118002118003118004118005118006118007118008118009118010118011118012118013118014118015118016118017118018118019118020118021118022118023118024118025118026118027118028118029118030118031118032118033118034118035118036118037118038118039118040118041118042118043118044118045118046118047118048118049118050118051118052118053118054118055118056118057118058118059118060118061118062118063118064118065118066118067118068118069118070118071118072118073118074118075118076118077118078118079118080118081118082118083118084118085118086118087118088118089118090118091118092118093118094118095118096118097118098118099118100118101118102118103118104118105118106118107118108118109118110118111118112118113118114118115118116118117118118118119118120118121118122118123118124118125118126118127118128118129118130118131118132118133118134118135118136118137118138118139118140118141118142118143118144118145118146118147118148118149118150118151118152118153118154118155118156118157118158118159118160118161118162118163118164118165118166118167118168118169118170118171118172118173118174118175118176118177118178118179118180118181118182118183118184118185118186118187118188118189118190118191118192118193118194118195118196118197118198118199118200118201118202118203118204118205118206118207118208118209118210118211118212118213118214118215118216118217118218118219118220118221118222118223118224118225118226118227118228118229118230118231118232118233118234118235118236118237118238118239118240118241118242118243118244118245118246118247118248118249118250118251118252118253118254118255118256118257118258118259118260118261118262118263118264118265118266118267118268118269118270118271118272118273118274118275118276118277118278118279118280118281118282118283118284118285118286118287118288118289118290118291118292118293118294118295118296118297118298118299118300118301118302118303118304118305118306118307118308118309118310118311118312118313118314118315118316118317118318118319118320118321118322118323118324118325118326118327118328118329118330118331118332118333118334118335118336118337118338118339118340118341118342118343118344118345118346118347118348118349118350118351118352118353118354118355118356118357118358118359118360118361118362118363118364118365118366118367118368118369118370118371118372118373118374118375118376118377118378118379118380118381118382118383118384118385118386118387118388118389118390118391118392118393118394118395118396118397118398118399118400118401118402118403118404118405118406118407118408118409118410118411118412118413118414118415118416118417118418118419118420118421118422118423118424118425118426118427118428118429118430118431118432118433118434118435118436118437118438118439118440118441118442118443118444118445118446118447118448118449118450118451118452118453118454118455118456118457118458118459118460118461118462118463118464118465118466118467118468118469118470118471118472118473118474118475118476118477118478118479118480118481118482118483118484118485118486118487118488118489118490118491118492118493118494118495118496118497118498118499118500118501118502118503118504118505118506118507118508118509118510118511118512118513118514118515118516118517118518118519118520118521118522118523118524118525118526118527118528118529118530118531118532118533118534118535118536118537118538118539118540118541118542118543118544118545118546118547118548118549118550118551118552118553118554118555118556118557118558118559118560118561118562118563118564118565118566118567118568118569118570118571118572118573118574118575118576118577118578118579118580118581118582118583118584118585118586118587118588118589118590118591118592118593118594118595118596118597118598118599118600118601118602118603118604118605118606118607118608118609118610118611118612118613118614118615118616118617118618118619118620118621118622118623118624118625118626118627118628118629118630118631118632118633118634118635118636118637118638118639118640118641118642118643118644118645118646118647118648118649118650118651118652118653118654118655118656118657118658118659118660118661118662118663118664118665118666118667118668118669118670118671118672118673118674118675118676118677118678118679118680118681118682118683118684118685118686118687118688118689118690118691118692118693118694118695118696118697118698118699118700118701118702118703118704118705118706118707118708118709118710118711118712118713118714118715118716118717118718118719118720118721118722118723118724118725118726118727118728118729118730118731118732118733118734118735118736118737118738118739118740118741118742118743118744118745118746118747118748118749118750118751118752118753118754118755118756118757118758118759118760118761118762118763118764118765118766118767118768118769118770118771118772118773118774118775118776118777118778118779118780118781118782118783118784118785118786118787118788118789118790118791118792118793118794118795118796118797118798118799118800118801118802118803118804118805118806118807118808118809118810118811118812118813118814118815118816118817118818118819118820118821118822118823118824118825118826118827118828118829118830118831118832118833118834118835118836118837118838118839118840118841118842118843118844118845118846118847118848118849118850118851118852118853118854118855118856118857118858118859118860118861118862118863118864118865118866118867118868118869118870118871118872118873118874118875118876118877118878118879118880118881118882118883118884118885118886118887118888118889118890118891118892118893118894118895118896118897118898118899118900118901118902118903118904118905118906118907118908118909118910118911118912118913118914118915118916118917118918118919118920118921118922118923118924118925118926118927118928118929118930118931118932118933118934118935118936118937118938118939118940118941118942118943118944118945118946118947118948118949118950118951118952118953118954118955118956118957118958118959118960118961118962118963118964118965118966118967118968118969118970118971118972118973118974118975118976118977118978118979118980118981118982118983118984118985118986118987118988118989118990118991118992118993118994118995118996118997118998118999119000119001119002119003119004119005119006119007119008119009119010119011119012119013119014119015119016119017119018119019119020119021119022119023119024119025119026119027119028119029119030119031119032119033119034119035119036119037119038119039119040119041119042119043119044119045119046119047119048119049119050119051119052119053119054119055119056119057119058119059119060119061119062119063119064119065119066119067119068119069119070119071119072119073119074119075119076119077119078119079119080119081119082119083119084119085119086119087119088119089119090119091119092119093119094119095119096119097119098119099119100119101119102119103119104119105119106119107119108119109119110119111119112119113119114119115119116119117119118119119119120119121119122119123119124119125119126119127119128119129119130119131119132119133119134119135119136119137119138119139119140119141119142119143119144119145119146119147119148119149119150119151119152119153119154119155119156119157119158119159119160119161119162119163119164119165119166119167119168119169119170119171119172119173119174119175119176119177119178119179119180119181119182119183119184119185119186119187119188119189119190119191119192119193119194119195119196119197119198119199119200119201119202119203119204119205119206119207119208119209119210119211119212119213119214119215119216119217119218119219119220119221119222119223119224119225119226119227119228119229119230119231119232119233119234119235119236119237119238119239119240119241119242119243119244119245119246119247119248119249119250119251119252119253119254119255119256119257119258119259119260119261119262119263119264119265119266119267119268119269119270119271119272119273119274119275119276119277119278119279119280119281119282119283119284119285119286119287119288119289119290119291119292119293119294119295119296119297119298119299119300119301119302119303119304119305119306119307119308119309119310119311119312119313119314119315119316119317119318119319119320119321119322119323119324119325119326119327119328119329119330119331119332119333119334119335119336119337119338119339119340119341119342119343119344119345119346119347119348119349119350119351119352119353119354119355119356119357119358119359119360119361119362119363119364119365119366119367119368119369119370119371119372119373119374119375119376119377119378119379119380119381119382119383119384119385119386119387119388119389119390119391119392119393119394119395119396119397119398119399119400119401119402119403119404119405119406119407119408119409119410119411119412119413119414119415119416119417119418119419119420119421119422119423119424119425119426119427119428119429119430119431119432119433119434119435119436119437119438119439119440119441119442119443119444119445119446119447119448119449119450119451119452119453119454119455119456119457119458119459119460119461119462119463119464119465119466119467119468119469119470119471119472119473119474119475119476119477119478119479119480119481119482119483119484119485119486119487119488119489119490119491119492119493119494119495119496119497119498119499119500119501119502119503119504119505119506119507119508119509119510119511119512119513119514119515119516119517119518119519119520119521119522119523119524119525119526119527119528119529119530119531119532119533119534119535119536119537119538119539119540119541119542119543119544119545119546119547119548119549119550119551119552119553119554119555119556119557119558119559119560119561119562119563119564119565119566119567119568119569119570119571119572119573119574119575119576119577119578119579119580119581119582119583119584119585119586119587119588119589119590119591119592119593119594119595119596119597119598119599119600119601119602119603119604119605119606119607119608119609119610119611119612119613119614119615119616119617119618119619119620119621119622119623119624119625119626119627119628119629119630119631119632119633119634119635119636119637119638119639119640119641119642119643119644119645119646119647119648119649119650119651119652119653119654119655119656119657119658119659119660119661119662119663119664119665119666119667119668119669119670119671119672119673119674119675119676119677119678119679119680119681119682119683119684119685119686119687119688119689119690119691119692119693119694119695119696119697119698119699119700119701119702119703119704119705119706119707119708119709119710119711119712119713119714119715119716119717119718119719119720119721119722119723119724119725119726119727119728119729119730119731119732119733119734119735119736119737119738119739119740119741119742119743119744119745119746119747119748119749119750119751119752119753119754119755119756119757119758119759119760119761119762119763119764119765119766119767119768119769119770119771119772119773119774119775119776119777119778119779119780119781119782119783119784119785119786119787119788119789119790119791119792119793119794119795119796119797119798119799119800119801119802119803119804119805119806119807119808119809119810119811119812119813119814119815119816119817119818119819119820119821119822119823119824119825119826119827119828119829119830119831119832119833119834119835119836119837119838119839119840119841119842119843119844119845119846119847119848119849119850119851119852119853119854119855119856119857119858119859119860119861119862119863119864119865119866119867119868119869119870119871119872119873119874119875119876119877119878119879119880119881119882119883119884119885119886119887119888119889119890119891119892119893119894119895119896119897119898119899119900119901119902119903119904119905119906119907119908119909119910119911119912119913119914119915119916119917119918119919119920119921119922119923119924119925119926119927119928119929119930119931119932119933119934119935119936119937119938119939119940119941119942119943119944119945119946119947119948119949119950119951119952119953119954119955119956119957119958119959119960119961119962119963119964119965119966119967119968119969119970119971119972119973119974119975119976119977119978119979119980119981119982119983119984119985119986119987119988119989119990119991119992119993119994119995119996119997119998119999120000120001
  1. // Copyright 2015-2023 The Khronos Group Inc.
  2. //
  3. // SPDX-License-Identifier: Apache-2.0 OR MIT
  4. //
  5. // This header is generated from the Khronos Vulkan XML API Registry.
  6. #ifndef VULKAN_STRUCTS_HPP
  7. #define VULKAN_STRUCTS_HPP
  8. #include <cstring> // strcmp
  9. namespace VULKAN_HPP_NAMESPACE
  10. {
  11. //===============
  12. //=== STRUCTS ===
  13. //===============
  14. struct AabbPositionsKHR
  15. {
  16. using NativeType = VkAabbPositionsKHR;
  17. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18. VULKAN_HPP_CONSTEXPR
  19. AabbPositionsKHR( float minX_ = {}, float minY_ = {}, float minZ_ = {}, float maxX_ = {}, float maxY_ = {}, float maxZ_ = {} ) VULKAN_HPP_NOEXCEPT
  20. : minX( minX_ )
  21. , minY( minY_ )
  22. , minZ( minZ_ )
  23. , maxX( maxX_ )
  24. , maxY( maxY_ )
  25. , maxZ( maxZ_ )
  26. {
  27. }
  28. VULKAN_HPP_CONSTEXPR AabbPositionsKHR( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29. AabbPositionsKHR( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT : AabbPositionsKHR( *reinterpret_cast<AabbPositionsKHR const *>( &rhs ) ) {}
  30. AabbPositionsKHR & operator=( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32. AabbPositionsKHR & operator=( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  33. {
  34. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AabbPositionsKHR const *>( &rhs );
  35. return *this;
  36. }
  37. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38. VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMinX( float minX_ ) VULKAN_HPP_NOEXCEPT
  39. {
  40. minX = minX_;
  41. return *this;
  42. }
  43. VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMinY( float minY_ ) VULKAN_HPP_NOEXCEPT
  44. {
  45. minY = minY_;
  46. return *this;
  47. }
  48. VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMinZ( float minZ_ ) VULKAN_HPP_NOEXCEPT
  49. {
  50. minZ = minZ_;
  51. return *this;
  52. }
  53. VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMaxX( float maxX_ ) VULKAN_HPP_NOEXCEPT
  54. {
  55. maxX = maxX_;
  56. return *this;
  57. }
  58. VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMaxY( float maxY_ ) VULKAN_HPP_NOEXCEPT
  59. {
  60. maxY = maxY_;
  61. return *this;
  62. }
  63. VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & setMaxZ( float maxZ_ ) VULKAN_HPP_NOEXCEPT
  64. {
  65. maxZ = maxZ_;
  66. return *this;
  67. }
  68. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69. operator VkAabbPositionsKHR const &() const VULKAN_HPP_NOEXCEPT
  70. {
  71. return *reinterpret_cast<const VkAabbPositionsKHR *>( this );
  72. }
  73. operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT
  74. {
  75. return *reinterpret_cast<VkAabbPositionsKHR *>( this );
  76. }
  77. #if defined( VULKAN_HPP_USE_REFLECT )
  78. # if 14 <= VULKAN_HPP_CPP_VERSION
  79. auto
  80. # else
  81. std::tuple<float const &, float const &, float const &, float const &, float const &, float const &>
  82. # endif
  83. reflect() const VULKAN_HPP_NOEXCEPT
  84. {
  85. return std::tie( minX, minY, minZ, maxX, maxY, maxZ );
  86. }
  87. #endif
  88. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  89. auto operator<=>( AabbPositionsKHR const & ) const = default;
  90. #else
  91. bool operator==( AabbPositionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  92. {
  93. # if defined( VULKAN_HPP_USE_REFLECT )
  94. return this->reflect() == rhs.reflect();
  95. # else
  96. return ( minX == rhs.minX ) && ( minY == rhs.minY ) && ( minZ == rhs.minZ ) && ( maxX == rhs.maxX ) && ( maxY == rhs.maxY ) && ( maxZ == rhs.maxZ );
  97. # endif
  98. }
  99. bool operator!=( AabbPositionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100. {
  101. return !operator==( rhs );
  102. }
  103. #endif
  104. public:
  105. float minX = {};
  106. float minY = {};
  107. float minZ = {};
  108. float maxX = {};
  109. float maxY = {};
  110. float maxZ = {};
  111. };
  112. using AabbPositionsNV = AabbPositionsKHR;
  113. union DeviceOrHostAddressConstKHR
  114. {
  115. using NativeType = VkDeviceOrHostAddressConstKHR;
  116. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  117. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) : deviceAddress( deviceAddress_ ) {}
  118. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstKHR( const void * hostAddress_ ) : hostAddress( hostAddress_ ) {}
  119. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  120. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  121. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
  122. {
  123. deviceAddress = deviceAddress_;
  124. return *this;
  125. }
  126. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstKHR & setHostAddress( const void * hostAddress_ ) VULKAN_HPP_NOEXCEPT
  127. {
  128. hostAddress = hostAddress_;
  129. return *this;
  130. }
  131. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  132. operator VkDeviceOrHostAddressConstKHR const &() const
  133. {
  134. return *reinterpret_cast<const VkDeviceOrHostAddressConstKHR *>( this );
  135. }
  136. operator VkDeviceOrHostAddressConstKHR &()
  137. {
  138. return *reinterpret_cast<VkDeviceOrHostAddressConstKHR *>( this );
  139. }
  140. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  141. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
  142. const void * hostAddress;
  143. #else
  144. VkDeviceAddress deviceAddress;
  145. const void * hostAddress;
  146. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  147. };
  148. struct AccelerationStructureGeometryTrianglesDataKHR
  149. {
  150. using NativeType = VkAccelerationStructureGeometryTrianglesDataKHR;
  151. static const bool allowDuplicate = false;
  152. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
  153. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  154. VULKAN_HPP_CONSTEXPR_14
  155. AccelerationStructureGeometryTrianglesDataKHR( VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  156. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {},
  157. VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {},
  158. uint32_t maxVertex_ = {},
  159. VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16,
  160. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData_ = {},
  161. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData_ = {},
  162. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  163. : pNext( pNext_ )
  164. , vertexFormat( vertexFormat_ )
  165. , vertexData( vertexData_ )
  166. , vertexStride( vertexStride_ )
  167. , maxVertex( maxVertex_ )
  168. , indexType( indexType_ )
  169. , indexData( indexData_ )
  170. , transformData( transformData_ )
  171. {
  172. }
  173. VULKAN_HPP_CONSTEXPR_14
  174. AccelerationStructureGeometryTrianglesDataKHR( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  175. AccelerationStructureGeometryTrianglesDataKHR( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  176. : AccelerationStructureGeometryTrianglesDataKHR( *reinterpret_cast<AccelerationStructureGeometryTrianglesDataKHR const *>( &rhs ) )
  177. {
  178. }
  179. AccelerationStructureGeometryTrianglesDataKHR & operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  180. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  181. AccelerationStructureGeometryTrianglesDataKHR & operator=( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  182. {
  183. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const *>( &rhs );
  184. return *this;
  185. }
  186. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  187. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  188. {
  189. pNext = pNext_;
  190. return *this;
  191. }
  192. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
  193. {
  194. vertexFormat = vertexFormat_;
  195. return *this;
  196. }
  197. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR &
  198. setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
  199. {
  200. vertexData = vertexData_;
  201. return *this;
  202. }
  203. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR &
  204. setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
  205. {
  206. vertexStride = vertexStride_;
  207. return *this;
  208. }
  209. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setMaxVertex( uint32_t maxVertex_ ) VULKAN_HPP_NOEXCEPT
  210. {
  211. maxVertex = maxVertex_;
  212. return *this;
  213. }
  214. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
  215. {
  216. indexType = indexType_;
  217. return *this;
  218. }
  219. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR &
  220. setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT
  221. {
  222. indexData = indexData_;
  223. return *this;
  224. }
  225. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryTrianglesDataKHR &
  226. setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT
  227. {
  228. transformData = transformData_;
  229. return *this;
  230. }
  231. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  232. operator VkAccelerationStructureGeometryTrianglesDataKHR const &() const VULKAN_HPP_NOEXCEPT
  233. {
  234. return *reinterpret_cast<const VkAccelerationStructureGeometryTrianglesDataKHR *>( this );
  235. }
  236. operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT
  237. {
  238. return *reinterpret_cast<VkAccelerationStructureGeometryTrianglesDataKHR *>( this );
  239. }
  240. #if defined( VULKAN_HPP_USE_REFLECT )
  241. # if 14 <= VULKAN_HPP_CPP_VERSION
  242. auto
  243. # else
  244. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  245. const void * const &,
  246. VULKAN_HPP_NAMESPACE::Format const &,
  247. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  248. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  249. uint32_t const &,
  250. VULKAN_HPP_NAMESPACE::IndexType const &,
  251. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  252. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &>
  253. # endif
  254. reflect() const VULKAN_HPP_NOEXCEPT
  255. {
  256. return std::tie( sType, pNext, vertexFormat, vertexData, vertexStride, maxVertex, indexType, indexData, transformData );
  257. }
  258. #endif
  259. public:
  260. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR;
  261. const void * pNext = {};
  262. VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  263. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {};
  264. VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
  265. uint32_t maxVertex = {};
  266. VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
  267. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData = {};
  268. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData = {};
  269. };
  270. template <>
  271. struct CppType<StructureType, StructureType::eAccelerationStructureGeometryTrianglesDataKHR>
  272. {
  273. using Type = AccelerationStructureGeometryTrianglesDataKHR;
  274. };
  275. struct AccelerationStructureGeometryAabbsDataKHR
  276. {
  277. using NativeType = VkAccelerationStructureGeometryAabbsDataKHR;
  278. static const bool allowDuplicate = false;
  279. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
  280. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  281. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {},
  282. VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {},
  283. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  284. : pNext( pNext_ )
  285. , data( data_ )
  286. , stride( stride_ )
  287. {
  288. }
  289. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  290. AccelerationStructureGeometryAabbsDataKHR( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  291. : AccelerationStructureGeometryAabbsDataKHR( *reinterpret_cast<AccelerationStructureGeometryAabbsDataKHR const *>( &rhs ) )
  292. {
  293. }
  294. AccelerationStructureGeometryAabbsDataKHR & operator=( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  295. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  296. AccelerationStructureGeometryAabbsDataKHR & operator=( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  297. {
  298. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const *>( &rhs );
  299. return *this;
  300. }
  301. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  302. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  303. {
  304. pNext = pNext_;
  305. return *this;
  306. }
  307. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR &
  308. setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
  309. {
  310. data = data_;
  311. return *this;
  312. }
  313. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryAabbsDataKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
  314. {
  315. stride = stride_;
  316. return *this;
  317. }
  318. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  319. operator VkAccelerationStructureGeometryAabbsDataKHR const &() const VULKAN_HPP_NOEXCEPT
  320. {
  321. return *reinterpret_cast<const VkAccelerationStructureGeometryAabbsDataKHR *>( this );
  322. }
  323. operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT
  324. {
  325. return *reinterpret_cast<VkAccelerationStructureGeometryAabbsDataKHR *>( this );
  326. }
  327. #if defined( VULKAN_HPP_USE_REFLECT )
  328. # if 14 <= VULKAN_HPP_CPP_VERSION
  329. auto
  330. # else
  331. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  332. const void * const &,
  333. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  334. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  335. # endif
  336. reflect() const VULKAN_HPP_NOEXCEPT
  337. {
  338. return std::tie( sType, pNext, data, stride );
  339. }
  340. #endif
  341. public:
  342. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryAabbsDataKHR;
  343. const void * pNext = {};
  344. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
  345. VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
  346. };
  347. template <>
  348. struct CppType<StructureType, StructureType::eAccelerationStructureGeometryAabbsDataKHR>
  349. {
  350. using Type = AccelerationStructureGeometryAabbsDataKHR;
  351. };
  352. struct AccelerationStructureGeometryInstancesDataKHR
  353. {
  354. using NativeType = VkAccelerationStructureGeometryInstancesDataKHR;
  355. static const bool allowDuplicate = false;
  356. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
  357. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  358. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ = {},
  359. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {},
  360. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  361. : pNext( pNext_ )
  362. , arrayOfPointers( arrayOfPointers_ )
  363. , data( data_ )
  364. {
  365. }
  366. VULKAN_HPP_CONSTEXPR_14
  367. AccelerationStructureGeometryInstancesDataKHR( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  368. AccelerationStructureGeometryInstancesDataKHR( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  369. : AccelerationStructureGeometryInstancesDataKHR( *reinterpret_cast<AccelerationStructureGeometryInstancesDataKHR const *>( &rhs ) )
  370. {
  371. }
  372. AccelerationStructureGeometryInstancesDataKHR & operator=( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  373. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  374. AccelerationStructureGeometryInstancesDataKHR & operator=( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  375. {
  376. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const *>( &rhs );
  377. return *this;
  378. }
  379. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  380. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  381. {
  382. pNext = pNext_;
  383. return *this;
  384. }
  385. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR &
  386. setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT
  387. {
  388. arrayOfPointers = arrayOfPointers_;
  389. return *this;
  390. }
  391. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryInstancesDataKHR &
  392. setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
  393. {
  394. data = data_;
  395. return *this;
  396. }
  397. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  398. operator VkAccelerationStructureGeometryInstancesDataKHR const &() const VULKAN_HPP_NOEXCEPT
  399. {
  400. return *reinterpret_cast<const VkAccelerationStructureGeometryInstancesDataKHR *>( this );
  401. }
  402. operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT
  403. {
  404. return *reinterpret_cast<VkAccelerationStructureGeometryInstancesDataKHR *>( this );
  405. }
  406. #if defined( VULKAN_HPP_USE_REFLECT )
  407. # if 14 <= VULKAN_HPP_CPP_VERSION
  408. auto
  409. # else
  410. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  411. const void * const &,
  412. VULKAN_HPP_NAMESPACE::Bool32 const &,
  413. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &>
  414. # endif
  415. reflect() const VULKAN_HPP_NOEXCEPT
  416. {
  417. return std::tie( sType, pNext, arrayOfPointers, data );
  418. }
  419. #endif
  420. public:
  421. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryInstancesDataKHR;
  422. const void * pNext = {};
  423. VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers = {};
  424. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
  425. };
  426. template <>
  427. struct CppType<StructureType, StructureType::eAccelerationStructureGeometryInstancesDataKHR>
  428. {
  429. using Type = AccelerationStructureGeometryInstancesDataKHR;
  430. };
  431. union AccelerationStructureGeometryDataKHR
  432. {
  433. using NativeType = VkAccelerationStructureGeometryDataKHR;
  434. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  435. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_ = {} )
  436. : triangles( triangles_ )
  437. {
  438. }
  439. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_ ) : aabbs( aabbs_ ) {}
  440. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_ )
  441. : instances( instances_ )
  442. {
  443. }
  444. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  445. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  446. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR &
  447. setTriangles( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT
  448. {
  449. triangles = triangles_;
  450. return *this;
  451. }
  452. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR &
  453. setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT
  454. {
  455. aabbs = aabbs_;
  456. return *this;
  457. }
  458. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryDataKHR &
  459. setInstances( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT
  460. {
  461. instances = instances_;
  462. return *this;
  463. }
  464. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  465. operator VkAccelerationStructureGeometryDataKHR const &() const
  466. {
  467. return *reinterpret_cast<const VkAccelerationStructureGeometryDataKHR *>( this );
  468. }
  469. operator VkAccelerationStructureGeometryDataKHR &()
  470. {
  471. return *reinterpret_cast<VkAccelerationStructureGeometryDataKHR *>( this );
  472. }
  473. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  474. VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles;
  475. VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs;
  476. VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances;
  477. #else
  478. VkAccelerationStructureGeometryTrianglesDataKHR triangles;
  479. VkAccelerationStructureGeometryAabbsDataKHR aabbs;
  480. VkAccelerationStructureGeometryInstancesDataKHR instances;
  481. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  482. };
  483. struct AccelerationStructureGeometryKHR
  484. {
  485. using NativeType = VkAccelerationStructureGeometryKHR;
  486. static const bool allowDuplicate = false;
  487. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryKHR;
  488. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  489. VULKAN_HPP_CONSTEXPR_14
  490. AccelerationStructureGeometryKHR( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles,
  491. VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry_ = {},
  492. VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {},
  493. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  494. : pNext( pNext_ )
  495. , geometryType( geometryType_ )
  496. , geometry( geometry_ )
  497. , flags( flags_ )
  498. {
  499. }
  500. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  501. AccelerationStructureGeometryKHR( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  502. : AccelerationStructureGeometryKHR( *reinterpret_cast<AccelerationStructureGeometryKHR const *>( &rhs ) )
  503. {
  504. }
  505. AccelerationStructureGeometryKHR & operator=( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  506. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  507. AccelerationStructureGeometryKHR & operator=( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  508. {
  509. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR const *>( &rhs );
  510. return *this;
  511. }
  512. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  513. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  514. {
  515. pNext = pNext_;
  516. return *this;
  517. }
  518. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
  519. {
  520. geometryType = geometryType_;
  521. return *this;
  522. }
  523. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR &
  524. setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT
  525. {
  526. geometry = geometry_;
  527. return *this;
  528. }
  529. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  530. {
  531. flags = flags_;
  532. return *this;
  533. }
  534. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  535. operator VkAccelerationStructureGeometryKHR const &() const VULKAN_HPP_NOEXCEPT
  536. {
  537. return *reinterpret_cast<const VkAccelerationStructureGeometryKHR *>( this );
  538. }
  539. operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT
  540. {
  541. return *reinterpret_cast<VkAccelerationStructureGeometryKHR *>( this );
  542. }
  543. #if defined( VULKAN_HPP_USE_REFLECT )
  544. # if 14 <= VULKAN_HPP_CPP_VERSION
  545. auto
  546. # else
  547. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  548. const void * const &,
  549. VULKAN_HPP_NAMESPACE::GeometryTypeKHR const &,
  550. VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const &,
  551. VULKAN_HPP_NAMESPACE::GeometryFlagsKHR const &>
  552. # endif
  553. reflect() const VULKAN_HPP_NOEXCEPT
  554. {
  555. return std::tie( sType, pNext, geometryType, geometry, flags );
  556. }
  557. #endif
  558. public:
  559. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryKHR;
  560. const void * pNext = {};
  561. VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
  562. VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry = {};
  563. VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
  564. };
  565. template <>
  566. struct CppType<StructureType, StructureType::eAccelerationStructureGeometryKHR>
  567. {
  568. using Type = AccelerationStructureGeometryKHR;
  569. };
  570. union DeviceOrHostAddressKHR
  571. {
  572. using NativeType = VkDeviceOrHostAddressKHR;
  573. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  574. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) : deviceAddress( deviceAddress_ ) {}
  575. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressKHR( void * hostAddress_ ) : hostAddress( hostAddress_ ) {}
  576. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  577. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  578. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
  579. {
  580. deviceAddress = deviceAddress_;
  581. return *this;
  582. }
  583. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressKHR & setHostAddress( void * hostAddress_ ) VULKAN_HPP_NOEXCEPT
  584. {
  585. hostAddress = hostAddress_;
  586. return *this;
  587. }
  588. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  589. operator VkDeviceOrHostAddressKHR const &() const
  590. {
  591. return *reinterpret_cast<const VkDeviceOrHostAddressKHR *>( this );
  592. }
  593. operator VkDeviceOrHostAddressKHR &()
  594. {
  595. return *reinterpret_cast<VkDeviceOrHostAddressKHR *>( this );
  596. }
  597. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  598. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
  599. void * hostAddress;
  600. #else
  601. VkDeviceAddress deviceAddress;
  602. void * hostAddress;
  603. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  604. };
  605. struct AccelerationStructureBuildGeometryInfoKHR
  606. {
  607. using NativeType = VkAccelerationStructureBuildGeometryInfoKHR;
  608. static const bool allowDuplicate = false;
  609. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
  610. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  611. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR(
  612. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel,
  613. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {},
  614. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild,
  615. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ = {},
  616. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ = {},
  617. uint32_t geometryCount_ = {},
  618. const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * pGeometries_ = {},
  619. const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries_ = {},
  620. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {},
  621. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  622. : pNext( pNext_ )
  623. , type( type_ )
  624. , flags( flags_ )
  625. , mode( mode_ )
  626. , srcAccelerationStructure( srcAccelerationStructure_ )
  627. , dstAccelerationStructure( dstAccelerationStructure_ )
  628. , geometryCount( geometryCount_ )
  629. , pGeometries( pGeometries_ )
  630. , ppGeometries( ppGeometries_ )
  631. , scratchData( scratchData_ )
  632. {
  633. }
  634. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  635. AccelerationStructureBuildGeometryInfoKHR( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  636. : AccelerationStructureBuildGeometryInfoKHR( *reinterpret_cast<AccelerationStructureBuildGeometryInfoKHR const *>( &rhs ) )
  637. {
  638. }
  639. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  640. AccelerationStructureBuildGeometryInfoKHR(
  641. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_,
  642. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_,
  643. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_,
  644. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_,
  645. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_,
  646. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR> const & geometries_,
  647. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const> const & pGeometries_ = {},
  648. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {},
  649. const void * pNext_ = nullptr )
  650. : pNext( pNext_ )
  651. , type( type_ )
  652. , flags( flags_ )
  653. , mode( mode_ )
  654. , srcAccelerationStructure( srcAccelerationStructure_ )
  655. , dstAccelerationStructure( dstAccelerationStructure_ )
  656. , geometryCount( static_cast<uint32_t>( !geometries_.empty() ? geometries_.size() : pGeometries_.size() ) )
  657. , pGeometries( geometries_.data() )
  658. , ppGeometries( pGeometries_.data() )
  659. , scratchData( scratchData_ )
  660. {
  661. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  662. VULKAN_HPP_ASSERT( ( !geometries_.empty() + !pGeometries_.empty() ) <= 1 );
  663. # else
  664. if ( 1 < ( !geometries_.empty() + !pGeometries_.empty() ) )
  665. {
  666. throw LogicError(
  667. VULKAN_HPP_NAMESPACE_STRING
  668. "::AccelerationStructureBuildGeometryInfoKHR::AccelerationStructureBuildGeometryInfoKHR: 1 < ( !geometries_.empty() + !pGeometries_.empty() )" );
  669. }
  670. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  671. }
  672. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  673. AccelerationStructureBuildGeometryInfoKHR & operator=( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  674. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  675. AccelerationStructureBuildGeometryInfoKHR & operator=( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  676. {
  677. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR const *>( &rhs );
  678. return *this;
  679. }
  680. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  681. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  682. {
  683. pNext = pNext_;
  684. return *this;
  685. }
  686. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
  687. {
  688. type = type_;
  689. return *this;
  690. }
  691. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
  692. setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  693. {
  694. flags = flags_;
  695. return *this;
  696. }
  697. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
  698. setMode( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
  699. {
  700. mode = mode_;
  701. return *this;
  702. }
  703. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
  704. setSrcAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  705. {
  706. srcAccelerationStructure = srcAccelerationStructure_;
  707. return *this;
  708. }
  709. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
  710. setDstAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  711. {
  712. dstAccelerationStructure = dstAccelerationStructure_;
  713. return *this;
  714. }
  715. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
  716. {
  717. geometryCount = geometryCount_;
  718. return *this;
  719. }
  720. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
  721. setPGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * pGeometries_ ) VULKAN_HPP_NOEXCEPT
  722. {
  723. pGeometries = pGeometries_;
  724. return *this;
  725. }
  726. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  727. AccelerationStructureBuildGeometryInfoKHR & setGeometries(
  728. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR> const & geometries_ ) VULKAN_HPP_NOEXCEPT
  729. {
  730. geometryCount = static_cast<uint32_t>( geometries_.size() );
  731. pGeometries = geometries_.data();
  732. return *this;
  733. }
  734. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  735. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
  736. setPpGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT
  737. {
  738. ppGeometries = ppGeometries_;
  739. return *this;
  740. }
  741. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  742. AccelerationStructureBuildGeometryInfoKHR &
  743. setPGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const> const & pGeometries_ )
  744. VULKAN_HPP_NOEXCEPT
  745. {
  746. geometryCount = static_cast<uint32_t>( pGeometries_.size() );
  747. ppGeometries = pGeometries_.data();
  748. return *this;
  749. }
  750. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  751. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildGeometryInfoKHR &
  752. setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
  753. {
  754. scratchData = scratchData_;
  755. return *this;
  756. }
  757. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  758. operator VkAccelerationStructureBuildGeometryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  759. {
  760. return *reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( this );
  761. }
  762. operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT
  763. {
  764. return *reinterpret_cast<VkAccelerationStructureBuildGeometryInfoKHR *>( this );
  765. }
  766. #if defined( VULKAN_HPP_USE_REFLECT )
  767. # if 14 <= VULKAN_HPP_CPP_VERSION
  768. auto
  769. # else
  770. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  771. const void * const &,
  772. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR const &,
  773. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR const &,
  774. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR const &,
  775. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &,
  776. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &,
  777. uint32_t const &,
  778. const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const &,
  779. const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * const &,
  780. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const &>
  781. # endif
  782. reflect() const VULKAN_HPP_NOEXCEPT
  783. {
  784. return std::tie(
  785. sType, pNext, type, flags, mode, srcAccelerationStructure, dstAccelerationStructure, geometryCount, pGeometries, ppGeometries, scratchData );
  786. }
  787. #endif
  788. public:
  789. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildGeometryInfoKHR;
  790. const void * pNext = {};
  791. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
  792. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {};
  793. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild;
  794. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure = {};
  795. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure = {};
  796. uint32_t geometryCount = {};
  797. const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * pGeometries = {};
  798. const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries = {};
  799. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {};
  800. };
  801. template <>
  802. struct CppType<StructureType, StructureType::eAccelerationStructureBuildGeometryInfoKHR>
  803. {
  804. using Type = AccelerationStructureBuildGeometryInfoKHR;
  805. };
  806. struct AccelerationStructureBuildRangeInfoKHR
  807. {
  808. using NativeType = VkAccelerationStructureBuildRangeInfoKHR;
  809. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  810. VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR( uint32_t primitiveCount_ = {},
  811. uint32_t primitiveOffset_ = {},
  812. uint32_t firstVertex_ = {},
  813. uint32_t transformOffset_ = {} ) VULKAN_HPP_NOEXCEPT
  814. : primitiveCount( primitiveCount_ )
  815. , primitiveOffset( primitiveOffset_ )
  816. , firstVertex( firstVertex_ )
  817. , transformOffset( transformOffset_ )
  818. {
  819. }
  820. VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  821. AccelerationStructureBuildRangeInfoKHR( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  822. : AccelerationStructureBuildRangeInfoKHR( *reinterpret_cast<AccelerationStructureBuildRangeInfoKHR const *>( &rhs ) )
  823. {
  824. }
  825. AccelerationStructureBuildRangeInfoKHR & operator=( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  826. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  827. AccelerationStructureBuildRangeInfoKHR & operator=( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  828. {
  829. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR const *>( &rhs );
  830. return *this;
  831. }
  832. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  833. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildRangeInfoKHR & setPrimitiveCount( uint32_t primitiveCount_ ) VULKAN_HPP_NOEXCEPT
  834. {
  835. primitiveCount = primitiveCount_;
  836. return *this;
  837. }
  838. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildRangeInfoKHR & setPrimitiveOffset( uint32_t primitiveOffset_ ) VULKAN_HPP_NOEXCEPT
  839. {
  840. primitiveOffset = primitiveOffset_;
  841. return *this;
  842. }
  843. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildRangeInfoKHR & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
  844. {
  845. firstVertex = firstVertex_;
  846. return *this;
  847. }
  848. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildRangeInfoKHR & setTransformOffset( uint32_t transformOffset_ ) VULKAN_HPP_NOEXCEPT
  849. {
  850. transformOffset = transformOffset_;
  851. return *this;
  852. }
  853. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  854. operator VkAccelerationStructureBuildRangeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  855. {
  856. return *reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR *>( this );
  857. }
  858. operator VkAccelerationStructureBuildRangeInfoKHR &() VULKAN_HPP_NOEXCEPT
  859. {
  860. return *reinterpret_cast<VkAccelerationStructureBuildRangeInfoKHR *>( this );
  861. }
  862. #if defined( VULKAN_HPP_USE_REFLECT )
  863. # if 14 <= VULKAN_HPP_CPP_VERSION
  864. auto
  865. # else
  866. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
  867. # endif
  868. reflect() const VULKAN_HPP_NOEXCEPT
  869. {
  870. return std::tie( primitiveCount, primitiveOffset, firstVertex, transformOffset );
  871. }
  872. #endif
  873. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  874. auto operator<=>( AccelerationStructureBuildRangeInfoKHR const & ) const = default;
  875. #else
  876. bool operator==( AccelerationStructureBuildRangeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  877. {
  878. # if defined( VULKAN_HPP_USE_REFLECT )
  879. return this->reflect() == rhs.reflect();
  880. # else
  881. return ( primitiveCount == rhs.primitiveCount ) && ( primitiveOffset == rhs.primitiveOffset ) && ( firstVertex == rhs.firstVertex ) &&
  882. ( transformOffset == rhs.transformOffset );
  883. # endif
  884. }
  885. bool operator!=( AccelerationStructureBuildRangeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  886. {
  887. return !operator==( rhs );
  888. }
  889. #endif
  890. public:
  891. uint32_t primitiveCount = {};
  892. uint32_t primitiveOffset = {};
  893. uint32_t firstVertex = {};
  894. uint32_t transformOffset = {};
  895. };
  896. struct AccelerationStructureBuildSizesInfoKHR
  897. {
  898. using NativeType = VkAccelerationStructureBuildSizesInfoKHR;
  899. static const bool allowDuplicate = false;
  900. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildSizesInfoKHR;
  901. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  902. VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR( VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ = {},
  903. VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ = {},
  904. VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ = {},
  905. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  906. : pNext( pNext_ )
  907. , accelerationStructureSize( accelerationStructureSize_ )
  908. , updateScratchSize( updateScratchSize_ )
  909. , buildScratchSize( buildScratchSize_ )
  910. {
  911. }
  912. VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  913. AccelerationStructureBuildSizesInfoKHR( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  914. : AccelerationStructureBuildSizesInfoKHR( *reinterpret_cast<AccelerationStructureBuildSizesInfoKHR const *>( &rhs ) )
  915. {
  916. }
  917. AccelerationStructureBuildSizesInfoKHR & operator=( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  918. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  919. AccelerationStructureBuildSizesInfoKHR & operator=( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  920. {
  921. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR const *>( &rhs );
  922. return *this;
  923. }
  924. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  925. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  926. {
  927. pNext = pNext_;
  928. return *this;
  929. }
  930. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR &
  931. setAccelerationStructureSize( VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ ) VULKAN_HPP_NOEXCEPT
  932. {
  933. accelerationStructureSize = accelerationStructureSize_;
  934. return *this;
  935. }
  936. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR &
  937. setUpdateScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ ) VULKAN_HPP_NOEXCEPT
  938. {
  939. updateScratchSize = updateScratchSize_;
  940. return *this;
  941. }
  942. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR &
  943. setBuildScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ ) VULKAN_HPP_NOEXCEPT
  944. {
  945. buildScratchSize = buildScratchSize_;
  946. return *this;
  947. }
  948. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  949. operator VkAccelerationStructureBuildSizesInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  950. {
  951. return *reinterpret_cast<const VkAccelerationStructureBuildSizesInfoKHR *>( this );
  952. }
  953. operator VkAccelerationStructureBuildSizesInfoKHR &() VULKAN_HPP_NOEXCEPT
  954. {
  955. return *reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>( this );
  956. }
  957. #if defined( VULKAN_HPP_USE_REFLECT )
  958. # if 14 <= VULKAN_HPP_CPP_VERSION
  959. auto
  960. # else
  961. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  962. const void * const &,
  963. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  964. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  965. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  966. # endif
  967. reflect() const VULKAN_HPP_NOEXCEPT
  968. {
  969. return std::tie( sType, pNext, accelerationStructureSize, updateScratchSize, buildScratchSize );
  970. }
  971. #endif
  972. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  973. auto operator<=>( AccelerationStructureBuildSizesInfoKHR const & ) const = default;
  974. #else
  975. bool operator==( AccelerationStructureBuildSizesInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  976. {
  977. # if defined( VULKAN_HPP_USE_REFLECT )
  978. return this->reflect() == rhs.reflect();
  979. # else
  980. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructureSize == rhs.accelerationStructureSize ) &&
  981. ( updateScratchSize == rhs.updateScratchSize ) && ( buildScratchSize == rhs.buildScratchSize );
  982. # endif
  983. }
  984. bool operator!=( AccelerationStructureBuildSizesInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  985. {
  986. return !operator==( rhs );
  987. }
  988. #endif
  989. public:
  990. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildSizesInfoKHR;
  991. const void * pNext = {};
  992. VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize = {};
  993. VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize = {};
  994. VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize = {};
  995. };
  996. template <>
  997. struct CppType<StructureType, StructureType::eAccelerationStructureBuildSizesInfoKHR>
  998. {
  999. using Type = AccelerationStructureBuildSizesInfoKHR;
  1000. };
  1001. struct AccelerationStructureCaptureDescriptorDataInfoEXT
  1002. {
  1003. using NativeType = VkAccelerationStructureCaptureDescriptorDataInfoEXT;
  1004. static const bool allowDuplicate = false;
  1005. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCaptureDescriptorDataInfoEXT;
  1006. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1007. VULKAN_HPP_CONSTEXPR AccelerationStructureCaptureDescriptorDataInfoEXT( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {},
  1008. VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructureNV_ = {},
  1009. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1010. : pNext( pNext_ )
  1011. , accelerationStructure( accelerationStructure_ )
  1012. , accelerationStructureNV( accelerationStructureNV_ )
  1013. {
  1014. }
  1015. VULKAN_HPP_CONSTEXPR
  1016. AccelerationStructureCaptureDescriptorDataInfoEXT( AccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1017. AccelerationStructureCaptureDescriptorDataInfoEXT( VkAccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  1018. : AccelerationStructureCaptureDescriptorDataInfoEXT( *reinterpret_cast<AccelerationStructureCaptureDescriptorDataInfoEXT const *>( &rhs ) )
  1019. {
  1020. }
  1021. AccelerationStructureCaptureDescriptorDataInfoEXT &
  1022. operator=( AccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1023. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1024. AccelerationStructureCaptureDescriptorDataInfoEXT & operator=( VkAccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  1025. {
  1026. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT const *>( &rhs );
  1027. return *this;
  1028. }
  1029. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1030. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCaptureDescriptorDataInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1031. {
  1032. pNext = pNext_;
  1033. return *this;
  1034. }
  1035. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCaptureDescriptorDataInfoEXT &
  1036. setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  1037. {
  1038. accelerationStructure = accelerationStructure_;
  1039. return *this;
  1040. }
  1041. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCaptureDescriptorDataInfoEXT &
  1042. setAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructureNV_ ) VULKAN_HPP_NOEXCEPT
  1043. {
  1044. accelerationStructureNV = accelerationStructureNV_;
  1045. return *this;
  1046. }
  1047. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1048. operator VkAccelerationStructureCaptureDescriptorDataInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  1049. {
  1050. return *reinterpret_cast<const VkAccelerationStructureCaptureDescriptorDataInfoEXT *>( this );
  1051. }
  1052. operator VkAccelerationStructureCaptureDescriptorDataInfoEXT &() VULKAN_HPP_NOEXCEPT
  1053. {
  1054. return *reinterpret_cast<VkAccelerationStructureCaptureDescriptorDataInfoEXT *>( this );
  1055. }
  1056. #if defined( VULKAN_HPP_USE_REFLECT )
  1057. # if 14 <= VULKAN_HPP_CPP_VERSION
  1058. auto
  1059. # else
  1060. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1061. const void * const &,
  1062. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &,
  1063. VULKAN_HPP_NAMESPACE::AccelerationStructureNV const &>
  1064. # endif
  1065. reflect() const VULKAN_HPP_NOEXCEPT
  1066. {
  1067. return std::tie( sType, pNext, accelerationStructure, accelerationStructureNV );
  1068. }
  1069. #endif
  1070. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1071. auto operator<=>( AccelerationStructureCaptureDescriptorDataInfoEXT const & ) const = default;
  1072. #else
  1073. bool operator==( AccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  1074. {
  1075. # if defined( VULKAN_HPP_USE_REFLECT )
  1076. return this->reflect() == rhs.reflect();
  1077. # else
  1078. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructure == rhs.accelerationStructure ) &&
  1079. ( accelerationStructureNV == rhs.accelerationStructureNV );
  1080. # endif
  1081. }
  1082. bool operator!=( AccelerationStructureCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  1083. {
  1084. return !operator==( rhs );
  1085. }
  1086. #endif
  1087. public:
  1088. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCaptureDescriptorDataInfoEXT;
  1089. const void * pNext = {};
  1090. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
  1091. VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructureNV = {};
  1092. };
  1093. template <>
  1094. struct CppType<StructureType, StructureType::eAccelerationStructureCaptureDescriptorDataInfoEXT>
  1095. {
  1096. using Type = AccelerationStructureCaptureDescriptorDataInfoEXT;
  1097. };
  1098. struct AccelerationStructureCreateInfoKHR
  1099. {
  1100. using NativeType = VkAccelerationStructureCreateInfoKHR;
  1101. static const bool allowDuplicate = false;
  1102. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoKHR;
  1103. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1104. VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR(
  1105. VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ = {},
  1106. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  1107. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  1108. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  1109. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel,
  1110. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
  1111. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1112. : pNext( pNext_ )
  1113. , createFlags( createFlags_ )
  1114. , buffer( buffer_ )
  1115. , offset( offset_ )
  1116. , size( size_ )
  1117. , type( type_ )
  1118. , deviceAddress( deviceAddress_ )
  1119. {
  1120. }
  1121. VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1122. AccelerationStructureCreateInfoKHR( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  1123. : AccelerationStructureCreateInfoKHR( *reinterpret_cast<AccelerationStructureCreateInfoKHR const *>( &rhs ) )
  1124. {
  1125. }
  1126. AccelerationStructureCreateInfoKHR & operator=( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1127. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1128. AccelerationStructureCreateInfoKHR & operator=( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  1129. {
  1130. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const *>( &rhs );
  1131. return *this;
  1132. }
  1133. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1134. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1135. {
  1136. pNext = pNext_;
  1137. return *this;
  1138. }
  1139. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR &
  1140. setCreateFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ ) VULKAN_HPP_NOEXCEPT
  1141. {
  1142. createFlags = createFlags_;
  1143. return *this;
  1144. }
  1145. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  1146. {
  1147. buffer = buffer_;
  1148. return *this;
  1149. }
  1150. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  1151. {
  1152. offset = offset_;
  1153. return *this;
  1154. }
  1155. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  1156. {
  1157. size = size_;
  1158. return *this;
  1159. }
  1160. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
  1161. {
  1162. type = type_;
  1163. return *this;
  1164. }
  1165. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
  1166. {
  1167. deviceAddress = deviceAddress_;
  1168. return *this;
  1169. }
  1170. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1171. operator VkAccelerationStructureCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  1172. {
  1173. return *reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( this );
  1174. }
  1175. operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  1176. {
  1177. return *reinterpret_cast<VkAccelerationStructureCreateInfoKHR *>( this );
  1178. }
  1179. #if defined( VULKAN_HPP_USE_REFLECT )
  1180. # if 14 <= VULKAN_HPP_CPP_VERSION
  1181. auto
  1182. # else
  1183. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1184. const void * const &,
  1185. VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR const &,
  1186. VULKAN_HPP_NAMESPACE::Buffer const &,
  1187. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1188. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1189. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR const &,
  1190. VULKAN_HPP_NAMESPACE::DeviceAddress const &>
  1191. # endif
  1192. reflect() const VULKAN_HPP_NOEXCEPT
  1193. {
  1194. return std::tie( sType, pNext, createFlags, buffer, offset, size, type, deviceAddress );
  1195. }
  1196. #endif
  1197. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1198. auto operator<=>( AccelerationStructureCreateInfoKHR const & ) const = default;
  1199. #else
  1200. bool operator==( AccelerationStructureCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  1201. {
  1202. # if defined( VULKAN_HPP_USE_REFLECT )
  1203. return this->reflect() == rhs.reflect();
  1204. # else
  1205. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( createFlags == rhs.createFlags ) && ( buffer == rhs.buffer ) && ( offset == rhs.offset ) &&
  1206. ( size == rhs.size ) && ( type == rhs.type ) && ( deviceAddress == rhs.deviceAddress );
  1207. # endif
  1208. }
  1209. bool operator!=( AccelerationStructureCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  1210. {
  1211. return !operator==( rhs );
  1212. }
  1213. #endif
  1214. public:
  1215. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoKHR;
  1216. const void * pNext = {};
  1217. VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags = {};
  1218. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  1219. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  1220. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  1221. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel;
  1222. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
  1223. };
  1224. template <>
  1225. struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoKHR>
  1226. {
  1227. using Type = AccelerationStructureCreateInfoKHR;
  1228. };
  1229. struct GeometryTrianglesNV
  1230. {
  1231. using NativeType = VkGeometryTrianglesNV;
  1232. static const bool allowDuplicate = false;
  1233. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryTrianglesNV;
  1234. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1235. VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( VULKAN_HPP_NAMESPACE::Buffer vertexData_ = {},
  1236. VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ = {},
  1237. uint32_t vertexCount_ = {},
  1238. VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {},
  1239. VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  1240. VULKAN_HPP_NAMESPACE::Buffer indexData_ = {},
  1241. VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ = {},
  1242. uint32_t indexCount_ = {},
  1243. VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16,
  1244. VULKAN_HPP_NAMESPACE::Buffer transformData_ = {},
  1245. VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ = {},
  1246. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1247. : pNext( pNext_ )
  1248. , vertexData( vertexData_ )
  1249. , vertexOffset( vertexOffset_ )
  1250. , vertexCount( vertexCount_ )
  1251. , vertexStride( vertexStride_ )
  1252. , vertexFormat( vertexFormat_ )
  1253. , indexData( indexData_ )
  1254. , indexOffset( indexOffset_ )
  1255. , indexCount( indexCount_ )
  1256. , indexType( indexType_ )
  1257. , transformData( transformData_ )
  1258. , transformOffset( transformOffset_ )
  1259. {
  1260. }
  1261. VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1262. GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT : GeometryTrianglesNV( *reinterpret_cast<GeometryTrianglesNV const *>( &rhs ) )
  1263. {
  1264. }
  1265. GeometryTrianglesNV & operator=( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1266. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1267. GeometryTrianglesNV & operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1268. {
  1269. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const *>( &rhs );
  1270. return *this;
  1271. }
  1272. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1273. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1274. {
  1275. pNext = pNext_;
  1276. return *this;
  1277. }
  1278. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT
  1279. {
  1280. vertexData = vertexData_;
  1281. return *this;
  1282. }
  1283. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT
  1284. {
  1285. vertexOffset = vertexOffset_;
  1286. return *this;
  1287. }
  1288. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
  1289. {
  1290. vertexCount = vertexCount_;
  1291. return *this;
  1292. }
  1293. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT
  1294. {
  1295. vertexStride = vertexStride_;
  1296. return *this;
  1297. }
  1298. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT
  1299. {
  1300. vertexFormat = vertexFormat_;
  1301. return *this;
  1302. }
  1303. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT
  1304. {
  1305. indexData = indexData_;
  1306. return *this;
  1307. }
  1308. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT
  1309. {
  1310. indexOffset = indexOffset_;
  1311. return *this;
  1312. }
  1313. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
  1314. {
  1315. indexCount = indexCount_;
  1316. return *this;
  1317. }
  1318. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
  1319. {
  1320. indexType = indexType_;
  1321. return *this;
  1322. }
  1323. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT
  1324. {
  1325. transformData = transformData_;
  1326. return *this;
  1327. }
  1328. VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT
  1329. {
  1330. transformOffset = transformOffset_;
  1331. return *this;
  1332. }
  1333. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1334. operator VkGeometryTrianglesNV const &() const VULKAN_HPP_NOEXCEPT
  1335. {
  1336. return *reinterpret_cast<const VkGeometryTrianglesNV *>( this );
  1337. }
  1338. operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT
  1339. {
  1340. return *reinterpret_cast<VkGeometryTrianglesNV *>( this );
  1341. }
  1342. #if defined( VULKAN_HPP_USE_REFLECT )
  1343. # if 14 <= VULKAN_HPP_CPP_VERSION
  1344. auto
  1345. # else
  1346. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1347. const void * const &,
  1348. VULKAN_HPP_NAMESPACE::Buffer const &,
  1349. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1350. uint32_t const &,
  1351. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1352. VULKAN_HPP_NAMESPACE::Format const &,
  1353. VULKAN_HPP_NAMESPACE::Buffer const &,
  1354. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1355. uint32_t const &,
  1356. VULKAN_HPP_NAMESPACE::IndexType const &,
  1357. VULKAN_HPP_NAMESPACE::Buffer const &,
  1358. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  1359. # endif
  1360. reflect() const VULKAN_HPP_NOEXCEPT
  1361. {
  1362. return std::tie( sType,
  1363. pNext,
  1364. vertexData,
  1365. vertexOffset,
  1366. vertexCount,
  1367. vertexStride,
  1368. vertexFormat,
  1369. indexData,
  1370. indexOffset,
  1371. indexCount,
  1372. indexType,
  1373. transformData,
  1374. transformOffset );
  1375. }
  1376. #endif
  1377. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1378. auto operator<=>( GeometryTrianglesNV const & ) const = default;
  1379. #else
  1380. bool operator==( GeometryTrianglesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1381. {
  1382. # if defined( VULKAN_HPP_USE_REFLECT )
  1383. return this->reflect() == rhs.reflect();
  1384. # else
  1385. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vertexData == rhs.vertexData ) && ( vertexOffset == rhs.vertexOffset ) &&
  1386. ( vertexCount == rhs.vertexCount ) && ( vertexStride == rhs.vertexStride ) && ( vertexFormat == rhs.vertexFormat ) &&
  1387. ( indexData == rhs.indexData ) && ( indexOffset == rhs.indexOffset ) && ( indexCount == rhs.indexCount ) && ( indexType == rhs.indexType ) &&
  1388. ( transformData == rhs.transformData ) && ( transformOffset == rhs.transformOffset );
  1389. # endif
  1390. }
  1391. bool operator!=( GeometryTrianglesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1392. {
  1393. return !operator==( rhs );
  1394. }
  1395. #endif
  1396. public:
  1397. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV;
  1398. const void * pNext = {};
  1399. VULKAN_HPP_NAMESPACE::Buffer vertexData = {};
  1400. VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {};
  1401. uint32_t vertexCount = {};
  1402. VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {};
  1403. VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  1404. VULKAN_HPP_NAMESPACE::Buffer indexData = {};
  1405. VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {};
  1406. uint32_t indexCount = {};
  1407. VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
  1408. VULKAN_HPP_NAMESPACE::Buffer transformData = {};
  1409. VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {};
  1410. };
  1411. template <>
  1412. struct CppType<StructureType, StructureType::eGeometryTrianglesNV>
  1413. {
  1414. using Type = GeometryTrianglesNV;
  1415. };
  1416. struct GeometryAABBNV
  1417. {
  1418. using NativeType = VkGeometryAABBNV;
  1419. static const bool allowDuplicate = false;
  1420. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryAabbNV;
  1421. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1422. VULKAN_HPP_CONSTEXPR GeometryAABBNV( VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {},
  1423. uint32_t numAABBs_ = {},
  1424. uint32_t stride_ = {},
  1425. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  1426. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1427. : pNext( pNext_ )
  1428. , aabbData( aabbData_ )
  1429. , numAABBs( numAABBs_ )
  1430. , stride( stride_ )
  1431. , offset( offset_ )
  1432. {
  1433. }
  1434. VULKAN_HPP_CONSTEXPR GeometryAABBNV( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1435. GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT : GeometryAABBNV( *reinterpret_cast<GeometryAABBNV const *>( &rhs ) ) {}
  1436. GeometryAABBNV & operator=( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1437. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1438. GeometryAABBNV & operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1439. {
  1440. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryAABBNV const *>( &rhs );
  1441. return *this;
  1442. }
  1443. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1444. VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1445. {
  1446. pNext = pNext_;
  1447. return *this;
  1448. }
  1449. VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT
  1450. {
  1451. aabbData = aabbData_;
  1452. return *this;
  1453. }
  1454. VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT
  1455. {
  1456. numAABBs = numAABBs_;
  1457. return *this;
  1458. }
  1459. VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
  1460. {
  1461. stride = stride_;
  1462. return *this;
  1463. }
  1464. VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  1465. {
  1466. offset = offset_;
  1467. return *this;
  1468. }
  1469. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1470. operator VkGeometryAABBNV const &() const VULKAN_HPP_NOEXCEPT
  1471. {
  1472. return *reinterpret_cast<const VkGeometryAABBNV *>( this );
  1473. }
  1474. operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT
  1475. {
  1476. return *reinterpret_cast<VkGeometryAABBNV *>( this );
  1477. }
  1478. #if defined( VULKAN_HPP_USE_REFLECT )
  1479. # if 14 <= VULKAN_HPP_CPP_VERSION
  1480. auto
  1481. # else
  1482. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1483. const void * const &,
  1484. VULKAN_HPP_NAMESPACE::Buffer const &,
  1485. uint32_t const &,
  1486. uint32_t const &,
  1487. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  1488. # endif
  1489. reflect() const VULKAN_HPP_NOEXCEPT
  1490. {
  1491. return std::tie( sType, pNext, aabbData, numAABBs, stride, offset );
  1492. }
  1493. #endif
  1494. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1495. auto operator<=>( GeometryAABBNV const & ) const = default;
  1496. #else
  1497. bool operator==( GeometryAABBNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1498. {
  1499. # if defined( VULKAN_HPP_USE_REFLECT )
  1500. return this->reflect() == rhs.reflect();
  1501. # else
  1502. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( aabbData == rhs.aabbData ) && ( numAABBs == rhs.numAABBs ) && ( stride == rhs.stride ) &&
  1503. ( offset == rhs.offset );
  1504. # endif
  1505. }
  1506. bool operator!=( GeometryAABBNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1507. {
  1508. return !operator==( rhs );
  1509. }
  1510. #endif
  1511. public:
  1512. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV;
  1513. const void * pNext = {};
  1514. VULKAN_HPP_NAMESPACE::Buffer aabbData = {};
  1515. uint32_t numAABBs = {};
  1516. uint32_t stride = {};
  1517. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  1518. };
  1519. template <>
  1520. struct CppType<StructureType, StructureType::eGeometryAabbNV>
  1521. {
  1522. using Type = GeometryAABBNV;
  1523. };
  1524. struct GeometryDataNV
  1525. {
  1526. using NativeType = VkGeometryDataNV;
  1527. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1528. VULKAN_HPP_CONSTEXPR GeometryDataNV( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {},
  1529. VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {} ) VULKAN_HPP_NOEXCEPT
  1530. : triangles( triangles_ )
  1531. , aabbs( aabbs_ )
  1532. {
  1533. }
  1534. VULKAN_HPP_CONSTEXPR GeometryDataNV( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1535. GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT : GeometryDataNV( *reinterpret_cast<GeometryDataNV const *>( &rhs ) ) {}
  1536. GeometryDataNV & operator=( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1537. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1538. GeometryDataNV & operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1539. {
  1540. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryDataNV const *>( &rhs );
  1541. return *this;
  1542. }
  1543. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1544. VULKAN_HPP_CONSTEXPR_14 GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT
  1545. {
  1546. triangles = triangles_;
  1547. return *this;
  1548. }
  1549. VULKAN_HPP_CONSTEXPR_14 GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & aabbs_ ) VULKAN_HPP_NOEXCEPT
  1550. {
  1551. aabbs = aabbs_;
  1552. return *this;
  1553. }
  1554. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1555. operator VkGeometryDataNV const &() const VULKAN_HPP_NOEXCEPT
  1556. {
  1557. return *reinterpret_cast<const VkGeometryDataNV *>( this );
  1558. }
  1559. operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT
  1560. {
  1561. return *reinterpret_cast<VkGeometryDataNV *>( this );
  1562. }
  1563. #if defined( VULKAN_HPP_USE_REFLECT )
  1564. # if 14 <= VULKAN_HPP_CPP_VERSION
  1565. auto
  1566. # else
  1567. std::tuple<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const &, VULKAN_HPP_NAMESPACE::GeometryAABBNV const &>
  1568. # endif
  1569. reflect() const VULKAN_HPP_NOEXCEPT
  1570. {
  1571. return std::tie( triangles, aabbs );
  1572. }
  1573. #endif
  1574. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1575. auto operator<=>( GeometryDataNV const & ) const = default;
  1576. #else
  1577. bool operator==( GeometryDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1578. {
  1579. # if defined( VULKAN_HPP_USE_REFLECT )
  1580. return this->reflect() == rhs.reflect();
  1581. # else
  1582. return ( triangles == rhs.triangles ) && ( aabbs == rhs.aabbs );
  1583. # endif
  1584. }
  1585. bool operator!=( GeometryDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1586. {
  1587. return !operator==( rhs );
  1588. }
  1589. #endif
  1590. public:
  1591. VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {};
  1592. VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {};
  1593. };
  1594. struct GeometryNV
  1595. {
  1596. using NativeType = VkGeometryNV;
  1597. static const bool allowDuplicate = false;
  1598. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryNV;
  1599. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1600. VULKAN_HPP_CONSTEXPR GeometryNV( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles,
  1601. VULKAN_HPP_NAMESPACE::GeometryDataNV geometry_ = {},
  1602. VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {},
  1603. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1604. : pNext( pNext_ )
  1605. , geometryType( geometryType_ )
  1606. , geometry( geometry_ )
  1607. , flags( flags_ )
  1608. {
  1609. }
  1610. VULKAN_HPP_CONSTEXPR GeometryNV( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1611. GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT : GeometryNV( *reinterpret_cast<GeometryNV const *>( &rhs ) ) {}
  1612. GeometryNV & operator=( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1613. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1614. GeometryNV & operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1615. {
  1616. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeometryNV const *>( &rhs );
  1617. return *this;
  1618. }
  1619. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1620. VULKAN_HPP_CONSTEXPR_14 GeometryNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1621. {
  1622. pNext = pNext_;
  1623. return *this;
  1624. }
  1625. VULKAN_HPP_CONSTEXPR_14 GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT
  1626. {
  1627. geometryType = geometryType_;
  1628. return *this;
  1629. }
  1630. VULKAN_HPP_CONSTEXPR_14 GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometry_ ) VULKAN_HPP_NOEXCEPT
  1631. {
  1632. geometry = geometry_;
  1633. return *this;
  1634. }
  1635. VULKAN_HPP_CONSTEXPR_14 GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  1636. {
  1637. flags = flags_;
  1638. return *this;
  1639. }
  1640. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1641. operator VkGeometryNV const &() const VULKAN_HPP_NOEXCEPT
  1642. {
  1643. return *reinterpret_cast<const VkGeometryNV *>( this );
  1644. }
  1645. operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT
  1646. {
  1647. return *reinterpret_cast<VkGeometryNV *>( this );
  1648. }
  1649. #if defined( VULKAN_HPP_USE_REFLECT )
  1650. # if 14 <= VULKAN_HPP_CPP_VERSION
  1651. auto
  1652. # else
  1653. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1654. const void * const &,
  1655. VULKAN_HPP_NAMESPACE::GeometryTypeKHR const &,
  1656. VULKAN_HPP_NAMESPACE::GeometryDataNV const &,
  1657. VULKAN_HPP_NAMESPACE::GeometryFlagsKHR const &>
  1658. # endif
  1659. reflect() const VULKAN_HPP_NOEXCEPT
  1660. {
  1661. return std::tie( sType, pNext, geometryType, geometry, flags );
  1662. }
  1663. #endif
  1664. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1665. auto operator<=>( GeometryNV const & ) const = default;
  1666. #else
  1667. bool operator==( GeometryNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1668. {
  1669. # if defined( VULKAN_HPP_USE_REFLECT )
  1670. return this->reflect() == rhs.reflect();
  1671. # else
  1672. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( geometryType == rhs.geometryType ) && ( geometry == rhs.geometry ) && ( flags == rhs.flags );
  1673. # endif
  1674. }
  1675. bool operator!=( GeometryNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1676. {
  1677. return !operator==( rhs );
  1678. }
  1679. #endif
  1680. public:
  1681. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV;
  1682. const void * pNext = {};
  1683. VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles;
  1684. VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {};
  1685. VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {};
  1686. };
  1687. template <>
  1688. struct CppType<StructureType, StructureType::eGeometryNV>
  1689. {
  1690. using Type = GeometryNV;
  1691. };
  1692. struct AccelerationStructureInfoNV
  1693. {
  1694. using NativeType = VkAccelerationStructureInfoNV;
  1695. static const bool allowDuplicate = false;
  1696. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureInfoNV;
  1697. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1698. VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ = {},
  1699. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ = {},
  1700. uint32_t instanceCount_ = {},
  1701. uint32_t geometryCount_ = {},
  1702. const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries_ = {},
  1703. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1704. : pNext( pNext_ )
  1705. , type( type_ )
  1706. , flags( flags_ )
  1707. , instanceCount( instanceCount_ )
  1708. , geometryCount( geometryCount_ )
  1709. , pGeometries( pGeometries_ )
  1710. {
  1711. }
  1712. VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1713. AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1714. : AccelerationStructureInfoNV( *reinterpret_cast<AccelerationStructureInfoNV const *>( &rhs ) )
  1715. {
  1716. }
  1717. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  1718. AccelerationStructureInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_,
  1719. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_,
  1720. uint32_t instanceCount_,
  1721. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_,
  1722. const void * pNext_ = nullptr )
  1723. : pNext( pNext_ )
  1724. , type( type_ )
  1725. , flags( flags_ )
  1726. , instanceCount( instanceCount_ )
  1727. , geometryCount( static_cast<uint32_t>( geometries_.size() ) )
  1728. , pGeometries( geometries_.data() )
  1729. {
  1730. }
  1731. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  1732. AccelerationStructureInfoNV & operator=( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1733. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1734. AccelerationStructureInfoNV & operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1735. {
  1736. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const *>( &rhs );
  1737. return *this;
  1738. }
  1739. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1740. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1741. {
  1742. pNext = pNext_;
  1743. return *this;
  1744. }
  1745. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT
  1746. {
  1747. type = type_;
  1748. return *this;
  1749. }
  1750. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  1751. {
  1752. flags = flags_;
  1753. return *this;
  1754. }
  1755. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
  1756. {
  1757. instanceCount = instanceCount_;
  1758. return *this;
  1759. }
  1760. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT
  1761. {
  1762. geometryCount = geometryCount_;
  1763. return *this;
  1764. }
  1765. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries_ ) VULKAN_HPP_NOEXCEPT
  1766. {
  1767. pGeometries = pGeometries_;
  1768. return *this;
  1769. }
  1770. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  1771. AccelerationStructureInfoNV &
  1772. setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GeometryNV> const & geometries_ ) VULKAN_HPP_NOEXCEPT
  1773. {
  1774. geometryCount = static_cast<uint32_t>( geometries_.size() );
  1775. pGeometries = geometries_.data();
  1776. return *this;
  1777. }
  1778. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  1779. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1780. operator VkAccelerationStructureInfoNV const &() const VULKAN_HPP_NOEXCEPT
  1781. {
  1782. return *reinterpret_cast<const VkAccelerationStructureInfoNV *>( this );
  1783. }
  1784. operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT
  1785. {
  1786. return *reinterpret_cast<VkAccelerationStructureInfoNV *>( this );
  1787. }
  1788. #if defined( VULKAN_HPP_USE_REFLECT )
  1789. # if 14 <= VULKAN_HPP_CPP_VERSION
  1790. auto
  1791. # else
  1792. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1793. const void * const &,
  1794. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV const &,
  1795. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV const &,
  1796. uint32_t const &,
  1797. uint32_t const &,
  1798. const VULKAN_HPP_NAMESPACE::GeometryNV * const &>
  1799. # endif
  1800. reflect() const VULKAN_HPP_NOEXCEPT
  1801. {
  1802. return std::tie( sType, pNext, type, flags, instanceCount, geometryCount, pGeometries );
  1803. }
  1804. #endif
  1805. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1806. auto operator<=>( AccelerationStructureInfoNV const & ) const = default;
  1807. #else
  1808. bool operator==( AccelerationStructureInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1809. {
  1810. # if defined( VULKAN_HPP_USE_REFLECT )
  1811. return this->reflect() == rhs.reflect();
  1812. # else
  1813. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( flags == rhs.flags ) && ( instanceCount == rhs.instanceCount ) &&
  1814. ( geometryCount == rhs.geometryCount ) && ( pGeometries == rhs.pGeometries );
  1815. # endif
  1816. }
  1817. bool operator!=( AccelerationStructureInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1818. {
  1819. return !operator==( rhs );
  1820. }
  1821. #endif
  1822. public:
  1823. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV;
  1824. const void * pNext = {};
  1825. VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = {};
  1826. VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {};
  1827. uint32_t instanceCount = {};
  1828. uint32_t geometryCount = {};
  1829. const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries = {};
  1830. };
  1831. template <>
  1832. struct CppType<StructureType, StructureType::eAccelerationStructureInfoNV>
  1833. {
  1834. using Type = AccelerationStructureInfoNV;
  1835. };
  1836. struct AccelerationStructureCreateInfoNV
  1837. {
  1838. using NativeType = VkAccelerationStructureCreateInfoNV;
  1839. static const bool allowDuplicate = false;
  1840. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoNV;
  1841. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1842. VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {},
  1843. VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {},
  1844. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1845. : pNext( pNext_ )
  1846. , compactedSize( compactedSize_ )
  1847. , info( info_ )
  1848. {
  1849. }
  1850. VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1851. AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1852. : AccelerationStructureCreateInfoNV( *reinterpret_cast<AccelerationStructureCreateInfoNV const *>( &rhs ) )
  1853. {
  1854. }
  1855. AccelerationStructureCreateInfoNV & operator=( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1856. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1857. AccelerationStructureCreateInfoNV & operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  1858. {
  1859. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const *>( &rhs );
  1860. return *this;
  1861. }
  1862. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1863. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1864. {
  1865. pNext = pNext_;
  1866. return *this;
  1867. }
  1868. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT
  1869. {
  1870. compactedSize = compactedSize_;
  1871. return *this;
  1872. }
  1873. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & info_ ) VULKAN_HPP_NOEXCEPT
  1874. {
  1875. info = info_;
  1876. return *this;
  1877. }
  1878. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1879. operator VkAccelerationStructureCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  1880. {
  1881. return *reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( this );
  1882. }
  1883. operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  1884. {
  1885. return *reinterpret_cast<VkAccelerationStructureCreateInfoNV *>( this );
  1886. }
  1887. #if defined( VULKAN_HPP_USE_REFLECT )
  1888. # if 14 <= VULKAN_HPP_CPP_VERSION
  1889. auto
  1890. # else
  1891. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  1892. const void * const &,
  1893. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  1894. VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const &>
  1895. # endif
  1896. reflect() const VULKAN_HPP_NOEXCEPT
  1897. {
  1898. return std::tie( sType, pNext, compactedSize, info );
  1899. }
  1900. #endif
  1901. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1902. auto operator<=>( AccelerationStructureCreateInfoNV const & ) const = default;
  1903. #else
  1904. bool operator==( AccelerationStructureCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1905. {
  1906. # if defined( VULKAN_HPP_USE_REFLECT )
  1907. return this->reflect() == rhs.reflect();
  1908. # else
  1909. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( compactedSize == rhs.compactedSize ) && ( info == rhs.info );
  1910. # endif
  1911. }
  1912. bool operator!=( AccelerationStructureCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  1913. {
  1914. return !operator==( rhs );
  1915. }
  1916. #endif
  1917. public:
  1918. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV;
  1919. const void * pNext = {};
  1920. VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {};
  1921. VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {};
  1922. };
  1923. template <>
  1924. struct CppType<StructureType, StructureType::eAccelerationStructureCreateInfoNV>
  1925. {
  1926. using Type = AccelerationStructureCreateInfoNV;
  1927. };
  1928. struct AccelerationStructureDeviceAddressInfoKHR
  1929. {
  1930. using NativeType = VkAccelerationStructureDeviceAddressInfoKHR;
  1931. static const bool allowDuplicate = false;
  1932. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
  1933. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  1934. VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {},
  1935. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  1936. : pNext( pNext_ )
  1937. , accelerationStructure( accelerationStructure_ )
  1938. {
  1939. }
  1940. VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1941. AccelerationStructureDeviceAddressInfoKHR( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  1942. : AccelerationStructureDeviceAddressInfoKHR( *reinterpret_cast<AccelerationStructureDeviceAddressInfoKHR const *>( &rhs ) )
  1943. {
  1944. }
  1945. AccelerationStructureDeviceAddressInfoKHR & operator=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  1946. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  1947. AccelerationStructureDeviceAddressInfoKHR & operator=( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  1948. {
  1949. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR const *>( &rhs );
  1950. return *this;
  1951. }
  1952. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  1953. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDeviceAddressInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  1954. {
  1955. pNext = pNext_;
  1956. return *this;
  1957. }
  1958. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDeviceAddressInfoKHR &
  1959. setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  1960. {
  1961. accelerationStructure = accelerationStructure_;
  1962. return *this;
  1963. }
  1964. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  1965. operator VkAccelerationStructureDeviceAddressInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  1966. {
  1967. return *reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( this );
  1968. }
  1969. operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT
  1970. {
  1971. return *reinterpret_cast<VkAccelerationStructureDeviceAddressInfoKHR *>( this );
  1972. }
  1973. #if defined( VULKAN_HPP_USE_REFLECT )
  1974. # if 14 <= VULKAN_HPP_CPP_VERSION
  1975. auto
  1976. # else
  1977. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &>
  1978. # endif
  1979. reflect() const VULKAN_HPP_NOEXCEPT
  1980. {
  1981. return std::tie( sType, pNext, accelerationStructure );
  1982. }
  1983. #endif
  1984. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  1985. auto operator<=>( AccelerationStructureDeviceAddressInfoKHR const & ) const = default;
  1986. #else
  1987. bool operator==( AccelerationStructureDeviceAddressInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  1988. {
  1989. # if defined( VULKAN_HPP_USE_REFLECT )
  1990. return this->reflect() == rhs.reflect();
  1991. # else
  1992. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructure == rhs.accelerationStructure );
  1993. # endif
  1994. }
  1995. bool operator!=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  1996. {
  1997. return !operator==( rhs );
  1998. }
  1999. #endif
  2000. public:
  2001. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureDeviceAddressInfoKHR;
  2002. const void * pNext = {};
  2003. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {};
  2004. };
  2005. template <>
  2006. struct CppType<StructureType, StructureType::eAccelerationStructureDeviceAddressInfoKHR>
  2007. {
  2008. using Type = AccelerationStructureDeviceAddressInfoKHR;
  2009. };
  2010. struct AccelerationStructureGeometryMotionTrianglesDataNV
  2011. {
  2012. using NativeType = VkAccelerationStructureGeometryMotionTrianglesDataNV;
  2013. static const bool allowDuplicate = false;
  2014. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV;
  2015. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2016. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {},
  2017. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  2018. : pNext( pNext_ )
  2019. , vertexData( vertexData_ )
  2020. {
  2021. }
  2022. VULKAN_HPP_CONSTEXPR_14
  2023. AccelerationStructureGeometryMotionTrianglesDataNV( AccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2024. AccelerationStructureGeometryMotionTrianglesDataNV( VkAccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2025. : AccelerationStructureGeometryMotionTrianglesDataNV( *reinterpret_cast<AccelerationStructureGeometryMotionTrianglesDataNV const *>( &rhs ) )
  2026. {
  2027. }
  2028. AccelerationStructureGeometryMotionTrianglesDataNV &
  2029. operator=( AccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2030. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2031. AccelerationStructureGeometryMotionTrianglesDataNV & operator=( VkAccelerationStructureGeometryMotionTrianglesDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2032. {
  2033. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryMotionTrianglesDataNV const *>( &rhs );
  2034. return *this;
  2035. }
  2036. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2037. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  2038. {
  2039. pNext = pNext_;
  2040. return *this;
  2041. }
  2042. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureGeometryMotionTrianglesDataNV &
  2043. setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT
  2044. {
  2045. vertexData = vertexData_;
  2046. return *this;
  2047. }
  2048. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2049. operator VkAccelerationStructureGeometryMotionTrianglesDataNV const &() const VULKAN_HPP_NOEXCEPT
  2050. {
  2051. return *reinterpret_cast<const VkAccelerationStructureGeometryMotionTrianglesDataNV *>( this );
  2052. }
  2053. operator VkAccelerationStructureGeometryMotionTrianglesDataNV &() VULKAN_HPP_NOEXCEPT
  2054. {
  2055. return *reinterpret_cast<VkAccelerationStructureGeometryMotionTrianglesDataNV *>( this );
  2056. }
  2057. #if defined( VULKAN_HPP_USE_REFLECT )
  2058. # if 14 <= VULKAN_HPP_CPP_VERSION
  2059. auto
  2060. # else
  2061. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &>
  2062. # endif
  2063. reflect() const VULKAN_HPP_NOEXCEPT
  2064. {
  2065. return std::tie( sType, pNext, vertexData );
  2066. }
  2067. #endif
  2068. public:
  2069. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV;
  2070. const void * pNext = {};
  2071. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {};
  2072. };
  2073. template <>
  2074. struct CppType<StructureType, StructureType::eAccelerationStructureGeometryMotionTrianglesDataNV>
  2075. {
  2076. using Type = AccelerationStructureGeometryMotionTrianglesDataNV;
  2077. };
  2078. struct TransformMatrixKHR
  2079. {
  2080. using NativeType = VkTransformMatrixKHR;
  2081. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2082. VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( std::array<std::array<float, 4>, 3> const & matrix_ = {} ) VULKAN_HPP_NOEXCEPT : matrix( matrix_ ) {}
  2083. VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2084. TransformMatrixKHR( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT : TransformMatrixKHR( *reinterpret_cast<TransformMatrixKHR const *>( &rhs ) ) {}
  2085. TransformMatrixKHR & operator=( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2086. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2087. TransformMatrixKHR & operator=( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  2088. {
  2089. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const *>( &rhs );
  2090. return *this;
  2091. }
  2092. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2093. VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR & setMatrix( std::array<std::array<float, 4>, 3> matrix_ ) VULKAN_HPP_NOEXCEPT
  2094. {
  2095. matrix = matrix_;
  2096. return *this;
  2097. }
  2098. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2099. operator VkTransformMatrixKHR const &() const VULKAN_HPP_NOEXCEPT
  2100. {
  2101. return *reinterpret_cast<const VkTransformMatrixKHR *>( this );
  2102. }
  2103. operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT
  2104. {
  2105. return *reinterpret_cast<VkTransformMatrixKHR *>( this );
  2106. }
  2107. #if defined( VULKAN_HPP_USE_REFLECT )
  2108. # if 14 <= VULKAN_HPP_CPP_VERSION
  2109. auto
  2110. # else
  2111. std::tuple<VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> const &>
  2112. # endif
  2113. reflect() const VULKAN_HPP_NOEXCEPT
  2114. {
  2115. return std::tie( matrix );
  2116. }
  2117. #endif
  2118. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2119. auto operator<=>( TransformMatrixKHR const & ) const = default;
  2120. #else
  2121. bool operator==( TransformMatrixKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  2122. {
  2123. # if defined( VULKAN_HPP_USE_REFLECT )
  2124. return this->reflect() == rhs.reflect();
  2125. # else
  2126. return ( matrix == rhs.matrix );
  2127. # endif
  2128. }
  2129. bool operator!=( TransformMatrixKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  2130. {
  2131. return !operator==( rhs );
  2132. }
  2133. #endif
  2134. public:
  2135. VULKAN_HPP_NAMESPACE::ArrayWrapper2D<float, 3, 4> matrix = {};
  2136. };
  2137. using TransformMatrixNV = TransformMatrixKHR;
  2138. struct AccelerationStructureInstanceKHR
  2139. {
  2140. using NativeType = VkAccelerationStructureInstanceKHR;
  2141. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2142. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform_ = {},
  2143. uint32_t instanceCustomIndex_ = {},
  2144. uint32_t mask_ = {},
  2145. uint32_t instanceShaderBindingTableRecordOffset_ = {},
  2146. VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {},
  2147. uint64_t accelerationStructureReference_ = {} ) VULKAN_HPP_NOEXCEPT
  2148. : transform( transform_ )
  2149. , instanceCustomIndex( instanceCustomIndex_ )
  2150. , mask( mask_ )
  2151. , instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ )
  2152. , flags( flags_ )
  2153. , accelerationStructureReference( accelerationStructureReference_ )
  2154. {
  2155. }
  2156. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2157. AccelerationStructureInstanceKHR( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  2158. : AccelerationStructureInstanceKHR( *reinterpret_cast<AccelerationStructureInstanceKHR const *>( &rhs ) )
  2159. {
  2160. }
  2161. AccelerationStructureInstanceKHR & operator=( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2162. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2163. AccelerationStructureInstanceKHR & operator=( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  2164. {
  2165. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const *>( &rhs );
  2166. return *this;
  2167. }
  2168. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2169. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT
  2170. {
  2171. transform = transform_;
  2172. return *this;
  2173. }
  2174. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
  2175. {
  2176. instanceCustomIndex = instanceCustomIndex_;
  2177. return *this;
  2178. }
  2179. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
  2180. {
  2181. mask = mask_;
  2182. return *this;
  2183. }
  2184. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR &
  2185. setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
  2186. {
  2187. instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
  2188. return *this;
  2189. }
  2190. AccelerationStructureInstanceKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  2191. {
  2192. flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR *>( &flags_ );
  2193. return *this;
  2194. }
  2195. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
  2196. {
  2197. accelerationStructureReference = accelerationStructureReference_;
  2198. return *this;
  2199. }
  2200. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2201. operator VkAccelerationStructureInstanceKHR const &() const VULKAN_HPP_NOEXCEPT
  2202. {
  2203. return *reinterpret_cast<const VkAccelerationStructureInstanceKHR *>( this );
  2204. }
  2205. operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT
  2206. {
  2207. return *reinterpret_cast<VkAccelerationStructureInstanceKHR *>( this );
  2208. }
  2209. #if defined( VULKAN_HPP_USE_REFLECT )
  2210. # if 14 <= VULKAN_HPP_CPP_VERSION
  2211. auto
  2212. # else
  2213. std::tuple<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const &,
  2214. uint32_t const &,
  2215. uint32_t const &,
  2216. uint32_t const &,
  2217. VkGeometryInstanceFlagsKHR const &,
  2218. uint64_t const &>
  2219. # endif
  2220. reflect() const VULKAN_HPP_NOEXCEPT
  2221. {
  2222. return std::tie( transform, instanceCustomIndex, mask, instanceShaderBindingTableRecordOffset, flags, accelerationStructureReference );
  2223. }
  2224. #endif
  2225. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2226. auto operator<=>( AccelerationStructureInstanceKHR const & ) const = default;
  2227. #else
  2228. bool operator==( AccelerationStructureInstanceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  2229. {
  2230. # if defined( VULKAN_HPP_USE_REFLECT )
  2231. return this->reflect() == rhs.reflect();
  2232. # else
  2233. return ( transform == rhs.transform ) && ( instanceCustomIndex == rhs.instanceCustomIndex ) && ( mask == rhs.mask ) &&
  2234. ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset ) && ( flags == rhs.flags ) &&
  2235. ( accelerationStructureReference == rhs.accelerationStructureReference );
  2236. # endif
  2237. }
  2238. bool operator!=( AccelerationStructureInstanceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  2239. {
  2240. return !operator==( rhs );
  2241. }
  2242. #endif
  2243. public:
  2244. VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {};
  2245. uint32_t instanceCustomIndex : 24;
  2246. uint32_t mask : 8;
  2247. uint32_t instanceShaderBindingTableRecordOffset : 24;
  2248. VkGeometryInstanceFlagsKHR flags : 8;
  2249. uint64_t accelerationStructureReference = {};
  2250. };
  2251. using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
  2252. struct AccelerationStructureMatrixMotionInstanceNV
  2253. {
  2254. using NativeType = VkAccelerationStructureMatrixMotionInstanceNV;
  2255. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2256. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV( VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT0_ = {},
  2257. VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT1_ = {},
  2258. uint32_t instanceCustomIndex_ = {},
  2259. uint32_t mask_ = {},
  2260. uint32_t instanceShaderBindingTableRecordOffset_ = {},
  2261. VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {},
  2262. uint64_t accelerationStructureReference_ = {} ) VULKAN_HPP_NOEXCEPT
  2263. : transformT0( transformT0_ )
  2264. , transformT1( transformT1_ )
  2265. , instanceCustomIndex( instanceCustomIndex_ )
  2266. , mask( mask_ )
  2267. , instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ )
  2268. , flags( flags_ )
  2269. , accelerationStructureReference( accelerationStructureReference_ )
  2270. {
  2271. }
  2272. VULKAN_HPP_CONSTEXPR_14
  2273. AccelerationStructureMatrixMotionInstanceNV( AccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2274. AccelerationStructureMatrixMotionInstanceNV( VkAccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2275. : AccelerationStructureMatrixMotionInstanceNV( *reinterpret_cast<AccelerationStructureMatrixMotionInstanceNV const *>( &rhs ) )
  2276. {
  2277. }
  2278. AccelerationStructureMatrixMotionInstanceNV & operator=( AccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2279. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2280. AccelerationStructureMatrixMotionInstanceNV & operator=( VkAccelerationStructureMatrixMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2281. {
  2282. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV const *>( &rhs );
  2283. return *this;
  2284. }
  2285. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2286. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
  2287. setTransformT0( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformT0_ ) VULKAN_HPP_NOEXCEPT
  2288. {
  2289. transformT0 = transformT0_;
  2290. return *this;
  2291. }
  2292. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
  2293. setTransformT1( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformT1_ ) VULKAN_HPP_NOEXCEPT
  2294. {
  2295. transformT1 = transformT1_;
  2296. return *this;
  2297. }
  2298. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
  2299. {
  2300. instanceCustomIndex = instanceCustomIndex_;
  2301. return *this;
  2302. }
  2303. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
  2304. {
  2305. mask = mask_;
  2306. return *this;
  2307. }
  2308. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
  2309. setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
  2310. {
  2311. instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
  2312. return *this;
  2313. }
  2314. AccelerationStructureMatrixMotionInstanceNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  2315. {
  2316. flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR *>( &flags_ );
  2317. return *this;
  2318. }
  2319. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMatrixMotionInstanceNV &
  2320. setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
  2321. {
  2322. accelerationStructureReference = accelerationStructureReference_;
  2323. return *this;
  2324. }
  2325. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2326. operator VkAccelerationStructureMatrixMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
  2327. {
  2328. return *reinterpret_cast<const VkAccelerationStructureMatrixMotionInstanceNV *>( this );
  2329. }
  2330. operator VkAccelerationStructureMatrixMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
  2331. {
  2332. return *reinterpret_cast<VkAccelerationStructureMatrixMotionInstanceNV *>( this );
  2333. }
  2334. #if defined( VULKAN_HPP_USE_REFLECT )
  2335. # if 14 <= VULKAN_HPP_CPP_VERSION
  2336. auto
  2337. # else
  2338. std::tuple<VULKAN_HPP_NAMESPACE::TransformMatrixKHR const &,
  2339. VULKAN_HPP_NAMESPACE::TransformMatrixKHR const &,
  2340. uint32_t const &,
  2341. uint32_t const &,
  2342. uint32_t const &,
  2343. VkGeometryInstanceFlagsKHR const &,
  2344. uint64_t const &>
  2345. # endif
  2346. reflect() const VULKAN_HPP_NOEXCEPT
  2347. {
  2348. return std::tie( transformT0, transformT1, instanceCustomIndex, mask, instanceShaderBindingTableRecordOffset, flags, accelerationStructureReference );
  2349. }
  2350. #endif
  2351. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2352. auto operator<=>( AccelerationStructureMatrixMotionInstanceNV const & ) const = default;
  2353. #else
  2354. bool operator==( AccelerationStructureMatrixMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2355. {
  2356. # if defined( VULKAN_HPP_USE_REFLECT )
  2357. return this->reflect() == rhs.reflect();
  2358. # else
  2359. return ( transformT0 == rhs.transformT0 ) && ( transformT1 == rhs.transformT1 ) && ( instanceCustomIndex == rhs.instanceCustomIndex ) &&
  2360. ( mask == rhs.mask ) && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset ) && ( flags == rhs.flags ) &&
  2361. ( accelerationStructureReference == rhs.accelerationStructureReference );
  2362. # endif
  2363. }
  2364. bool operator!=( AccelerationStructureMatrixMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2365. {
  2366. return !operator==( rhs );
  2367. }
  2368. #endif
  2369. public:
  2370. VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT0 = {};
  2371. VULKAN_HPP_NAMESPACE::TransformMatrixKHR transformT1 = {};
  2372. uint32_t instanceCustomIndex : 24;
  2373. uint32_t mask : 8;
  2374. uint32_t instanceShaderBindingTableRecordOffset : 24;
  2375. VkGeometryInstanceFlagsKHR flags : 8;
  2376. uint64_t accelerationStructureReference = {};
  2377. };
  2378. struct AccelerationStructureMemoryRequirementsInfoNV
  2379. {
  2380. using NativeType = VkAccelerationStructureMemoryRequirementsInfoNV;
  2381. static const bool allowDuplicate = false;
  2382. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
  2383. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2384. VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV(
  2385. VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject,
  2386. VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {},
  2387. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  2388. : pNext( pNext_ )
  2389. , type( type_ )
  2390. , accelerationStructure( accelerationStructure_ )
  2391. {
  2392. }
  2393. VULKAN_HPP_CONSTEXPR
  2394. AccelerationStructureMemoryRequirementsInfoNV( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2395. AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2396. : AccelerationStructureMemoryRequirementsInfoNV( *reinterpret_cast<AccelerationStructureMemoryRequirementsInfoNV const *>( &rhs ) )
  2397. {
  2398. }
  2399. AccelerationStructureMemoryRequirementsInfoNV & operator=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2400. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2401. AccelerationStructureMemoryRequirementsInfoNV & operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2402. {
  2403. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV const *>( &rhs );
  2404. return *this;
  2405. }
  2406. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2407. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  2408. {
  2409. pNext = pNext_;
  2410. return *this;
  2411. }
  2412. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV &
  2413. setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT
  2414. {
  2415. type = type_;
  2416. return *this;
  2417. }
  2418. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV &
  2419. setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  2420. {
  2421. accelerationStructure = accelerationStructure_;
  2422. return *this;
  2423. }
  2424. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2425. operator VkAccelerationStructureMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT
  2426. {
  2427. return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( this );
  2428. }
  2429. operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
  2430. {
  2431. return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV *>( this );
  2432. }
  2433. #if defined( VULKAN_HPP_USE_REFLECT )
  2434. # if 14 <= VULKAN_HPP_CPP_VERSION
  2435. auto
  2436. # else
  2437. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  2438. const void * const &,
  2439. VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV const &,
  2440. VULKAN_HPP_NAMESPACE::AccelerationStructureNV const &>
  2441. # endif
  2442. reflect() const VULKAN_HPP_NOEXCEPT
  2443. {
  2444. return std::tie( sType, pNext, type, accelerationStructure );
  2445. }
  2446. #endif
  2447. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2448. auto operator<=>( AccelerationStructureMemoryRequirementsInfoNV const & ) const = default;
  2449. #else
  2450. bool operator==( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2451. {
  2452. # if defined( VULKAN_HPP_USE_REFLECT )
  2453. return this->reflect() == rhs.reflect();
  2454. # else
  2455. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( accelerationStructure == rhs.accelerationStructure );
  2456. # endif
  2457. }
  2458. bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2459. {
  2460. return !operator==( rhs );
  2461. }
  2462. #endif
  2463. public:
  2464. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
  2465. const void * pNext = {};
  2466. VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject;
  2467. VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
  2468. };
  2469. template <>
  2470. struct CppType<StructureType, StructureType::eAccelerationStructureMemoryRequirementsInfoNV>
  2471. {
  2472. using Type = AccelerationStructureMemoryRequirementsInfoNV;
  2473. };
  2474. struct AccelerationStructureMotionInfoNV
  2475. {
  2476. using NativeType = VkAccelerationStructureMotionInfoNV;
  2477. static const bool allowDuplicate = false;
  2478. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMotionInfoNV;
  2479. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2480. VULKAN_HPP_CONSTEXPR AccelerationStructureMotionInfoNV( uint32_t maxInstances_ = {},
  2481. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags_ = {},
  2482. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  2483. : pNext( pNext_ )
  2484. , maxInstances( maxInstances_ )
  2485. , flags( flags_ )
  2486. {
  2487. }
  2488. VULKAN_HPP_CONSTEXPR AccelerationStructureMotionInfoNV( AccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2489. AccelerationStructureMotionInfoNV( VkAccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2490. : AccelerationStructureMotionInfoNV( *reinterpret_cast<AccelerationStructureMotionInfoNV const *>( &rhs ) )
  2491. {
  2492. }
  2493. AccelerationStructureMotionInfoNV & operator=( AccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2494. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2495. AccelerationStructureMotionInfoNV & operator=( VkAccelerationStructureMotionInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2496. {
  2497. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV const *>( &rhs );
  2498. return *this;
  2499. }
  2500. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2501. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  2502. {
  2503. pNext = pNext_;
  2504. return *this;
  2505. }
  2506. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInfoNV & setMaxInstances( uint32_t maxInstances_ ) VULKAN_HPP_NOEXCEPT
  2507. {
  2508. maxInstances = maxInstances_;
  2509. return *this;
  2510. }
  2511. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInfoNV &
  2512. setFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  2513. {
  2514. flags = flags_;
  2515. return *this;
  2516. }
  2517. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2518. operator VkAccelerationStructureMotionInfoNV const &() const VULKAN_HPP_NOEXCEPT
  2519. {
  2520. return *reinterpret_cast<const VkAccelerationStructureMotionInfoNV *>( this );
  2521. }
  2522. operator VkAccelerationStructureMotionInfoNV &() VULKAN_HPP_NOEXCEPT
  2523. {
  2524. return *reinterpret_cast<VkAccelerationStructureMotionInfoNV *>( this );
  2525. }
  2526. #if defined( VULKAN_HPP_USE_REFLECT )
  2527. # if 14 <= VULKAN_HPP_CPP_VERSION
  2528. auto
  2529. # else
  2530. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  2531. const void * const &,
  2532. uint32_t const &,
  2533. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV const &>
  2534. # endif
  2535. reflect() const VULKAN_HPP_NOEXCEPT
  2536. {
  2537. return std::tie( sType, pNext, maxInstances, flags );
  2538. }
  2539. #endif
  2540. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2541. auto operator<=>( AccelerationStructureMotionInfoNV const & ) const = default;
  2542. #else
  2543. bool operator==( AccelerationStructureMotionInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2544. {
  2545. # if defined( VULKAN_HPP_USE_REFLECT )
  2546. return this->reflect() == rhs.reflect();
  2547. # else
  2548. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxInstances == rhs.maxInstances ) && ( flags == rhs.flags );
  2549. # endif
  2550. }
  2551. bool operator!=( AccelerationStructureMotionInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2552. {
  2553. return !operator==( rhs );
  2554. }
  2555. #endif
  2556. public:
  2557. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMotionInfoNV;
  2558. const void * pNext = {};
  2559. uint32_t maxInstances = {};
  2560. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoFlagsNV flags = {};
  2561. };
  2562. template <>
  2563. struct CppType<StructureType, StructureType::eAccelerationStructureMotionInfoNV>
  2564. {
  2565. using Type = AccelerationStructureMotionInfoNV;
  2566. };
  2567. struct SRTDataNV
  2568. {
  2569. using NativeType = VkSRTDataNV;
  2570. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2571. VULKAN_HPP_CONSTEXPR SRTDataNV( float sx_ = {},
  2572. float a_ = {},
  2573. float b_ = {},
  2574. float pvx_ = {},
  2575. float sy_ = {},
  2576. float c_ = {},
  2577. float pvy_ = {},
  2578. float sz_ = {},
  2579. float pvz_ = {},
  2580. float qx_ = {},
  2581. float qy_ = {},
  2582. float qz_ = {},
  2583. float qw_ = {},
  2584. float tx_ = {},
  2585. float ty_ = {},
  2586. float tz_ = {} ) VULKAN_HPP_NOEXCEPT
  2587. : sx( sx_ )
  2588. , a( a_ )
  2589. , b( b_ )
  2590. , pvx( pvx_ )
  2591. , sy( sy_ )
  2592. , c( c_ )
  2593. , pvy( pvy_ )
  2594. , sz( sz_ )
  2595. , pvz( pvz_ )
  2596. , qx( qx_ )
  2597. , qy( qy_ )
  2598. , qz( qz_ )
  2599. , qw( qw_ )
  2600. , tx( tx_ )
  2601. , ty( ty_ )
  2602. , tz( tz_ )
  2603. {
  2604. }
  2605. VULKAN_HPP_CONSTEXPR SRTDataNV( SRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2606. SRTDataNV( VkSRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT : SRTDataNV( *reinterpret_cast<SRTDataNV const *>( &rhs ) ) {}
  2607. SRTDataNV & operator=( SRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2608. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2609. SRTDataNV & operator=( VkSRTDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2610. {
  2611. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SRTDataNV const *>( &rhs );
  2612. return *this;
  2613. }
  2614. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2615. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setSx( float sx_ ) VULKAN_HPP_NOEXCEPT
  2616. {
  2617. sx = sx_;
  2618. return *this;
  2619. }
  2620. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setA( float a_ ) VULKAN_HPP_NOEXCEPT
  2621. {
  2622. a = a_;
  2623. return *this;
  2624. }
  2625. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setB( float b_ ) VULKAN_HPP_NOEXCEPT
  2626. {
  2627. b = b_;
  2628. return *this;
  2629. }
  2630. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setPvx( float pvx_ ) VULKAN_HPP_NOEXCEPT
  2631. {
  2632. pvx = pvx_;
  2633. return *this;
  2634. }
  2635. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setSy( float sy_ ) VULKAN_HPP_NOEXCEPT
  2636. {
  2637. sy = sy_;
  2638. return *this;
  2639. }
  2640. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setC( float c_ ) VULKAN_HPP_NOEXCEPT
  2641. {
  2642. c = c_;
  2643. return *this;
  2644. }
  2645. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setPvy( float pvy_ ) VULKAN_HPP_NOEXCEPT
  2646. {
  2647. pvy = pvy_;
  2648. return *this;
  2649. }
  2650. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setSz( float sz_ ) VULKAN_HPP_NOEXCEPT
  2651. {
  2652. sz = sz_;
  2653. return *this;
  2654. }
  2655. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setPvz( float pvz_ ) VULKAN_HPP_NOEXCEPT
  2656. {
  2657. pvz = pvz_;
  2658. return *this;
  2659. }
  2660. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQx( float qx_ ) VULKAN_HPP_NOEXCEPT
  2661. {
  2662. qx = qx_;
  2663. return *this;
  2664. }
  2665. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQy( float qy_ ) VULKAN_HPP_NOEXCEPT
  2666. {
  2667. qy = qy_;
  2668. return *this;
  2669. }
  2670. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQz( float qz_ ) VULKAN_HPP_NOEXCEPT
  2671. {
  2672. qz = qz_;
  2673. return *this;
  2674. }
  2675. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setQw( float qw_ ) VULKAN_HPP_NOEXCEPT
  2676. {
  2677. qw = qw_;
  2678. return *this;
  2679. }
  2680. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setTx( float tx_ ) VULKAN_HPP_NOEXCEPT
  2681. {
  2682. tx = tx_;
  2683. return *this;
  2684. }
  2685. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setTy( float ty_ ) VULKAN_HPP_NOEXCEPT
  2686. {
  2687. ty = ty_;
  2688. return *this;
  2689. }
  2690. VULKAN_HPP_CONSTEXPR_14 SRTDataNV & setTz( float tz_ ) VULKAN_HPP_NOEXCEPT
  2691. {
  2692. tz = tz_;
  2693. return *this;
  2694. }
  2695. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2696. operator VkSRTDataNV const &() const VULKAN_HPP_NOEXCEPT
  2697. {
  2698. return *reinterpret_cast<const VkSRTDataNV *>( this );
  2699. }
  2700. operator VkSRTDataNV &() VULKAN_HPP_NOEXCEPT
  2701. {
  2702. return *reinterpret_cast<VkSRTDataNV *>( this );
  2703. }
  2704. #if defined( VULKAN_HPP_USE_REFLECT )
  2705. # if 14 <= VULKAN_HPP_CPP_VERSION
  2706. auto
  2707. # else
  2708. std::tuple<float const &,
  2709. float const &,
  2710. float const &,
  2711. float const &,
  2712. float const &,
  2713. float const &,
  2714. float const &,
  2715. float const &,
  2716. float const &,
  2717. float const &,
  2718. float const &,
  2719. float const &,
  2720. float const &,
  2721. float const &,
  2722. float const &,
  2723. float const &>
  2724. # endif
  2725. reflect() const VULKAN_HPP_NOEXCEPT
  2726. {
  2727. return std::tie( sx, a, b, pvx, sy, c, pvy, sz, pvz, qx, qy, qz, qw, tx, ty, tz );
  2728. }
  2729. #endif
  2730. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2731. auto operator<=>( SRTDataNV const & ) const = default;
  2732. #else
  2733. bool operator==( SRTDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2734. {
  2735. # if defined( VULKAN_HPP_USE_REFLECT )
  2736. return this->reflect() == rhs.reflect();
  2737. # else
  2738. return ( sx == rhs.sx ) && ( a == rhs.a ) && ( b == rhs.b ) && ( pvx == rhs.pvx ) && ( sy == rhs.sy ) && ( c == rhs.c ) && ( pvy == rhs.pvy ) &&
  2739. ( sz == rhs.sz ) && ( pvz == rhs.pvz ) && ( qx == rhs.qx ) && ( qy == rhs.qy ) && ( qz == rhs.qz ) && ( qw == rhs.qw ) && ( tx == rhs.tx ) &&
  2740. ( ty == rhs.ty ) && ( tz == rhs.tz );
  2741. # endif
  2742. }
  2743. bool operator!=( SRTDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2744. {
  2745. return !operator==( rhs );
  2746. }
  2747. #endif
  2748. public:
  2749. float sx = {};
  2750. float a = {};
  2751. float b = {};
  2752. float pvx = {};
  2753. float sy = {};
  2754. float c = {};
  2755. float pvy = {};
  2756. float sz = {};
  2757. float pvz = {};
  2758. float qx = {};
  2759. float qy = {};
  2760. float qz = {};
  2761. float qw = {};
  2762. float tx = {};
  2763. float ty = {};
  2764. float tz = {};
  2765. };
  2766. struct AccelerationStructureSRTMotionInstanceNV
  2767. {
  2768. using NativeType = VkAccelerationStructureSRTMotionInstanceNV;
  2769. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2770. VULKAN_HPP_CONSTEXPR AccelerationStructureSRTMotionInstanceNV( VULKAN_HPP_NAMESPACE::SRTDataNV transformT0_ = {},
  2771. VULKAN_HPP_NAMESPACE::SRTDataNV transformT1_ = {},
  2772. uint32_t instanceCustomIndex_ = {},
  2773. uint32_t mask_ = {},
  2774. uint32_t instanceShaderBindingTableRecordOffset_ = {},
  2775. VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {},
  2776. uint64_t accelerationStructureReference_ = {} ) VULKAN_HPP_NOEXCEPT
  2777. : transformT0( transformT0_ )
  2778. , transformT1( transformT1_ )
  2779. , instanceCustomIndex( instanceCustomIndex_ )
  2780. , mask( mask_ )
  2781. , instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ )
  2782. , flags( flags_ )
  2783. , accelerationStructureReference( accelerationStructureReference_ )
  2784. {
  2785. }
  2786. VULKAN_HPP_CONSTEXPR AccelerationStructureSRTMotionInstanceNV( AccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2787. AccelerationStructureSRTMotionInstanceNV( VkAccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2788. : AccelerationStructureSRTMotionInstanceNV( *reinterpret_cast<AccelerationStructureSRTMotionInstanceNV const *>( &rhs ) )
  2789. {
  2790. }
  2791. AccelerationStructureSRTMotionInstanceNV & operator=( AccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2792. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2793. AccelerationStructureSRTMotionInstanceNV & operator=( VkAccelerationStructureSRTMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2794. {
  2795. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV const *>( &rhs );
  2796. return *this;
  2797. }
  2798. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2799. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
  2800. setTransformT0( VULKAN_HPP_NAMESPACE::SRTDataNV const & transformT0_ ) VULKAN_HPP_NOEXCEPT
  2801. {
  2802. transformT0 = transformT0_;
  2803. return *this;
  2804. }
  2805. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
  2806. setTransformT1( VULKAN_HPP_NAMESPACE::SRTDataNV const & transformT1_ ) VULKAN_HPP_NOEXCEPT
  2807. {
  2808. transformT1 = transformT1_;
  2809. return *this;
  2810. }
  2811. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT
  2812. {
  2813. instanceCustomIndex = instanceCustomIndex_;
  2814. return *this;
  2815. }
  2816. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT
  2817. {
  2818. mask = mask_;
  2819. return *this;
  2820. }
  2821. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
  2822. setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT
  2823. {
  2824. instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_;
  2825. return *this;
  2826. }
  2827. AccelerationStructureSRTMotionInstanceNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  2828. {
  2829. flags = *reinterpret_cast<VkGeometryInstanceFlagsKHR *>( &flags_ );
  2830. return *this;
  2831. }
  2832. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureSRTMotionInstanceNV &
  2833. setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT
  2834. {
  2835. accelerationStructureReference = accelerationStructureReference_;
  2836. return *this;
  2837. }
  2838. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2839. operator VkAccelerationStructureSRTMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
  2840. {
  2841. return *reinterpret_cast<const VkAccelerationStructureSRTMotionInstanceNV *>( this );
  2842. }
  2843. operator VkAccelerationStructureSRTMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
  2844. {
  2845. return *reinterpret_cast<VkAccelerationStructureSRTMotionInstanceNV *>( this );
  2846. }
  2847. #if defined( VULKAN_HPP_USE_REFLECT )
  2848. # if 14 <= VULKAN_HPP_CPP_VERSION
  2849. auto
  2850. # else
  2851. std::tuple<VULKAN_HPP_NAMESPACE::SRTDataNV const &,
  2852. VULKAN_HPP_NAMESPACE::SRTDataNV const &,
  2853. uint32_t const &,
  2854. uint32_t const &,
  2855. uint32_t const &,
  2856. VkGeometryInstanceFlagsKHR const &,
  2857. uint64_t const &>
  2858. # endif
  2859. reflect() const VULKAN_HPP_NOEXCEPT
  2860. {
  2861. return std::tie( transformT0, transformT1, instanceCustomIndex, mask, instanceShaderBindingTableRecordOffset, flags, accelerationStructureReference );
  2862. }
  2863. #endif
  2864. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  2865. auto operator<=>( AccelerationStructureSRTMotionInstanceNV const & ) const = default;
  2866. #else
  2867. bool operator==( AccelerationStructureSRTMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2868. {
  2869. # if defined( VULKAN_HPP_USE_REFLECT )
  2870. return this->reflect() == rhs.reflect();
  2871. # else
  2872. return ( transformT0 == rhs.transformT0 ) && ( transformT1 == rhs.transformT1 ) && ( instanceCustomIndex == rhs.instanceCustomIndex ) &&
  2873. ( mask == rhs.mask ) && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset ) && ( flags == rhs.flags ) &&
  2874. ( accelerationStructureReference == rhs.accelerationStructureReference );
  2875. # endif
  2876. }
  2877. bool operator!=( AccelerationStructureSRTMotionInstanceNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  2878. {
  2879. return !operator==( rhs );
  2880. }
  2881. #endif
  2882. public:
  2883. VULKAN_HPP_NAMESPACE::SRTDataNV transformT0 = {};
  2884. VULKAN_HPP_NAMESPACE::SRTDataNV transformT1 = {};
  2885. uint32_t instanceCustomIndex : 24;
  2886. uint32_t mask : 8;
  2887. uint32_t instanceShaderBindingTableRecordOffset : 24;
  2888. VkGeometryInstanceFlagsKHR flags : 8;
  2889. uint64_t accelerationStructureReference = {};
  2890. };
  2891. union AccelerationStructureMotionInstanceDataNV
  2892. {
  2893. using NativeType = VkAccelerationStructureMotionInstanceDataNV;
  2894. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  2895. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV( VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR staticInstance_ = {} )
  2896. : staticInstance( staticInstance_ )
  2897. {
  2898. }
  2899. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV( VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV matrixMotionInstance_ )
  2900. : matrixMotionInstance( matrixMotionInstance_ )
  2901. {
  2902. }
  2903. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV( VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV srtMotionInstance_ )
  2904. : srtMotionInstance( srtMotionInstance_ )
  2905. {
  2906. }
  2907. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  2908. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  2909. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV &
  2910. setStaticInstance( VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const & staticInstance_ ) VULKAN_HPP_NOEXCEPT
  2911. {
  2912. staticInstance = staticInstance_;
  2913. return *this;
  2914. }
  2915. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV &
  2916. setMatrixMotionInstance( VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV const & matrixMotionInstance_ ) VULKAN_HPP_NOEXCEPT
  2917. {
  2918. matrixMotionInstance = matrixMotionInstance_;
  2919. return *this;
  2920. }
  2921. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceDataNV &
  2922. setSrtMotionInstance( VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV const & srtMotionInstance_ ) VULKAN_HPP_NOEXCEPT
  2923. {
  2924. srtMotionInstance = srtMotionInstance_;
  2925. return *this;
  2926. }
  2927. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  2928. operator VkAccelerationStructureMotionInstanceDataNV const &() const
  2929. {
  2930. return *reinterpret_cast<const VkAccelerationStructureMotionInstanceDataNV *>( this );
  2931. }
  2932. operator VkAccelerationStructureMotionInstanceDataNV &()
  2933. {
  2934. return *reinterpret_cast<VkAccelerationStructureMotionInstanceDataNV *>( this );
  2935. }
  2936. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  2937. VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR staticInstance;
  2938. VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
  2939. VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV srtMotionInstance;
  2940. #else
  2941. VkAccelerationStructureInstanceKHR staticInstance;
  2942. VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
  2943. VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance;
  2944. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  2945. };
  2946. struct AccelerationStructureMotionInstanceNV
  2947. {
  2948. using NativeType = VkAccelerationStructureMotionInstanceNV;
  2949. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  2950. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV(
  2951. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV::eStatic,
  2952. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags_ = {},
  2953. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV data_ = {} ) VULKAN_HPP_NOEXCEPT
  2954. : type( type_ )
  2955. , flags( flags_ )
  2956. , data( data_ )
  2957. {
  2958. }
  2959. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV( AccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2960. AccelerationStructureMotionInstanceNV( VkAccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2961. : AccelerationStructureMotionInstanceNV( *reinterpret_cast<AccelerationStructureMotionInstanceNV const *>( &rhs ) )
  2962. {
  2963. }
  2964. AccelerationStructureMotionInstanceNV & operator=( AccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  2965. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  2966. AccelerationStructureMotionInstanceNV & operator=( VkAccelerationStructureMotionInstanceNV const & rhs ) VULKAN_HPP_NOEXCEPT
  2967. {
  2968. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceNV const *>( &rhs );
  2969. return *this;
  2970. }
  2971. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  2972. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV &
  2973. setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type_ ) VULKAN_HPP_NOEXCEPT
  2974. {
  2975. type = type_;
  2976. return *this;
  2977. }
  2978. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV &
  2979. setFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  2980. {
  2981. flags = flags_;
  2982. return *this;
  2983. }
  2984. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMotionInstanceNV &
  2985. setData( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV const & data_ ) VULKAN_HPP_NOEXCEPT
  2986. {
  2987. data = data_;
  2988. return *this;
  2989. }
  2990. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  2991. operator VkAccelerationStructureMotionInstanceNV const &() const VULKAN_HPP_NOEXCEPT
  2992. {
  2993. return *reinterpret_cast<const VkAccelerationStructureMotionInstanceNV *>( this );
  2994. }
  2995. operator VkAccelerationStructureMotionInstanceNV &() VULKAN_HPP_NOEXCEPT
  2996. {
  2997. return *reinterpret_cast<VkAccelerationStructureMotionInstanceNV *>( this );
  2998. }
  2999. #if defined( VULKAN_HPP_USE_REFLECT )
  3000. # if 14 <= VULKAN_HPP_CPP_VERSION
  3001. auto
  3002. # else
  3003. std::tuple<VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV const &,
  3004. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV const &,
  3005. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV const &>
  3006. # endif
  3007. reflect() const VULKAN_HPP_NOEXCEPT
  3008. {
  3009. return std::tie( type, flags, data );
  3010. }
  3011. #endif
  3012. public:
  3013. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV type = VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceTypeNV::eStatic;
  3014. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceFlagsNV flags = {};
  3015. VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInstanceDataNV data = {};
  3016. };
  3017. struct MicromapUsageEXT
  3018. {
  3019. using NativeType = VkMicromapUsageEXT;
  3020. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3021. VULKAN_HPP_CONSTEXPR MicromapUsageEXT( uint32_t count_ = {}, uint32_t subdivisionLevel_ = {}, uint32_t format_ = {} ) VULKAN_HPP_NOEXCEPT
  3022. : count( count_ )
  3023. , subdivisionLevel( subdivisionLevel_ )
  3024. , format( format_ )
  3025. {
  3026. }
  3027. VULKAN_HPP_CONSTEXPR MicromapUsageEXT( MicromapUsageEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3028. MicromapUsageEXT( VkMicromapUsageEXT const & rhs ) VULKAN_HPP_NOEXCEPT : MicromapUsageEXT( *reinterpret_cast<MicromapUsageEXT const *>( &rhs ) ) {}
  3029. MicromapUsageEXT & operator=( MicromapUsageEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3030. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3031. MicromapUsageEXT & operator=( VkMicromapUsageEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  3032. {
  3033. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapUsageEXT const *>( &rhs );
  3034. return *this;
  3035. }
  3036. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3037. VULKAN_HPP_CONSTEXPR_14 MicromapUsageEXT & setCount( uint32_t count_ ) VULKAN_HPP_NOEXCEPT
  3038. {
  3039. count = count_;
  3040. return *this;
  3041. }
  3042. VULKAN_HPP_CONSTEXPR_14 MicromapUsageEXT & setSubdivisionLevel( uint32_t subdivisionLevel_ ) VULKAN_HPP_NOEXCEPT
  3043. {
  3044. subdivisionLevel = subdivisionLevel_;
  3045. return *this;
  3046. }
  3047. VULKAN_HPP_CONSTEXPR_14 MicromapUsageEXT & setFormat( uint32_t format_ ) VULKAN_HPP_NOEXCEPT
  3048. {
  3049. format = format_;
  3050. return *this;
  3051. }
  3052. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3053. operator VkMicromapUsageEXT const &() const VULKAN_HPP_NOEXCEPT
  3054. {
  3055. return *reinterpret_cast<const VkMicromapUsageEXT *>( this );
  3056. }
  3057. operator VkMicromapUsageEXT &() VULKAN_HPP_NOEXCEPT
  3058. {
  3059. return *reinterpret_cast<VkMicromapUsageEXT *>( this );
  3060. }
  3061. #if defined( VULKAN_HPP_USE_REFLECT )
  3062. # if 14 <= VULKAN_HPP_CPP_VERSION
  3063. auto
  3064. # else
  3065. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  3066. # endif
  3067. reflect() const VULKAN_HPP_NOEXCEPT
  3068. {
  3069. return std::tie( count, subdivisionLevel, format );
  3070. }
  3071. #endif
  3072. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3073. auto operator<=>( MicromapUsageEXT const & ) const = default;
  3074. #else
  3075. bool operator==( MicromapUsageEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  3076. {
  3077. # if defined( VULKAN_HPP_USE_REFLECT )
  3078. return this->reflect() == rhs.reflect();
  3079. # else
  3080. return ( count == rhs.count ) && ( subdivisionLevel == rhs.subdivisionLevel ) && ( format == rhs.format );
  3081. # endif
  3082. }
  3083. bool operator!=( MicromapUsageEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  3084. {
  3085. return !operator==( rhs );
  3086. }
  3087. #endif
  3088. public:
  3089. uint32_t count = {};
  3090. uint32_t subdivisionLevel = {};
  3091. uint32_t format = {};
  3092. };
  3093. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  3094. struct AccelerationStructureTrianglesDisplacementMicromapNV
  3095. {
  3096. using NativeType = VkAccelerationStructureTrianglesDisplacementMicromapNV;
  3097. static const bool allowDuplicate = false;
  3098. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureTrianglesDisplacementMicromapNV;
  3099. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3100. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV(
  3101. VULKAN_HPP_NAMESPACE::Format displacementBiasAndScaleFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  3102. VULKAN_HPP_NAMESPACE::Format displacementVectorFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  3103. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer_ = {},
  3104. VULKAN_HPP_NAMESPACE::DeviceSize displacementBiasAndScaleStride_ = {},
  3105. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementVectorBuffer_ = {},
  3106. VULKAN_HPP_NAMESPACE::DeviceSize displacementVectorStride_ = {},
  3107. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags_ = {},
  3108. VULKAN_HPP_NAMESPACE::DeviceSize displacedMicromapPrimitiveFlagsStride_ = {},
  3109. VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16,
  3110. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer_ = {},
  3111. VULKAN_HPP_NAMESPACE::DeviceSize indexStride_ = {},
  3112. uint32_t baseTriangle_ = {},
  3113. uint32_t usageCountsCount_ = {},
  3114. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ = {},
  3115. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ = {},
  3116. VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ = {},
  3117. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3118. : pNext( pNext_ )
  3119. , displacementBiasAndScaleFormat( displacementBiasAndScaleFormat_ )
  3120. , displacementVectorFormat( displacementVectorFormat_ )
  3121. , displacementBiasAndScaleBuffer( displacementBiasAndScaleBuffer_ )
  3122. , displacementBiasAndScaleStride( displacementBiasAndScaleStride_ )
  3123. , displacementVectorBuffer( displacementVectorBuffer_ )
  3124. , displacementVectorStride( displacementVectorStride_ )
  3125. , displacedMicromapPrimitiveFlags( displacedMicromapPrimitiveFlags_ )
  3126. , displacedMicromapPrimitiveFlagsStride( displacedMicromapPrimitiveFlagsStride_ )
  3127. , indexType( indexType_ )
  3128. , indexBuffer( indexBuffer_ )
  3129. , indexStride( indexStride_ )
  3130. , baseTriangle( baseTriangle_ )
  3131. , usageCountsCount( usageCountsCount_ )
  3132. , pUsageCounts( pUsageCounts_ )
  3133. , ppUsageCounts( ppUsageCounts_ )
  3134. , micromap( micromap_ )
  3135. {
  3136. }
  3137. VULKAN_HPP_CONSTEXPR_14
  3138. AccelerationStructureTrianglesDisplacementMicromapNV( AccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3139. AccelerationStructureTrianglesDisplacementMicromapNV( VkAccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT
  3140. : AccelerationStructureTrianglesDisplacementMicromapNV( *reinterpret_cast<AccelerationStructureTrianglesDisplacementMicromapNV const *>( &rhs ) )
  3141. {
  3142. }
  3143. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  3144. AccelerationStructureTrianglesDisplacementMicromapNV(
  3145. VULKAN_HPP_NAMESPACE::Format displacementBiasAndScaleFormat_,
  3146. VULKAN_HPP_NAMESPACE::Format displacementVectorFormat_,
  3147. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer_,
  3148. VULKAN_HPP_NAMESPACE::DeviceSize displacementBiasAndScaleStride_,
  3149. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementVectorBuffer_,
  3150. VULKAN_HPP_NAMESPACE::DeviceSize displacementVectorStride_,
  3151. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags_,
  3152. VULKAN_HPP_NAMESPACE::DeviceSize displacedMicromapPrimitiveFlagsStride_,
  3153. VULKAN_HPP_NAMESPACE::IndexType indexType_,
  3154. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer_,
  3155. VULKAN_HPP_NAMESPACE::DeviceSize indexStride_,
  3156. uint32_t baseTriangle_,
  3157. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_,
  3158. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ = {},
  3159. VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ = {},
  3160. void * pNext_ = nullptr )
  3161. : pNext( pNext_ )
  3162. , displacementBiasAndScaleFormat( displacementBiasAndScaleFormat_ )
  3163. , displacementVectorFormat( displacementVectorFormat_ )
  3164. , displacementBiasAndScaleBuffer( displacementBiasAndScaleBuffer_ )
  3165. , displacementBiasAndScaleStride( displacementBiasAndScaleStride_ )
  3166. , displacementVectorBuffer( displacementVectorBuffer_ )
  3167. , displacementVectorStride( displacementVectorStride_ )
  3168. , displacedMicromapPrimitiveFlags( displacedMicromapPrimitiveFlags_ )
  3169. , displacedMicromapPrimitiveFlagsStride( displacedMicromapPrimitiveFlagsStride_ )
  3170. , indexType( indexType_ )
  3171. , indexBuffer( indexBuffer_ )
  3172. , indexStride( indexStride_ )
  3173. , baseTriangle( baseTriangle_ )
  3174. , usageCountsCount( static_cast<uint32_t>( usageCounts_.size() ) )
  3175. , pUsageCounts( usageCounts_.data() )
  3176. , ppUsageCounts( pUsageCounts_.data() )
  3177. , micromap( micromap_ )
  3178. {
  3179. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  3180. VULKAN_HPP_ASSERT( usageCounts_.empty() || pUsageCounts_.empty() || ( usageCounts_.size() == pUsageCounts_.size() ) );
  3181. # else
  3182. if ( !usageCounts_.empty() && !pUsageCounts_.empty() && ( usageCounts_.size() != pUsageCounts_.size() ) )
  3183. {
  3184. throw LogicError(
  3185. VULKAN_HPP_NAMESPACE_STRING
  3186. "::AccelerationStructureTrianglesDisplacementMicromapNV::AccelerationStructureTrianglesDisplacementMicromapNV: !usageCounts_.empty() && !pUsageCounts_.empty() && ( usageCounts_.size() != pUsageCounts_.size() )" );
  3187. }
  3188. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  3189. }
  3190. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  3191. AccelerationStructureTrianglesDisplacementMicromapNV &
  3192. operator=( AccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3193. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3194. AccelerationStructureTrianglesDisplacementMicromapNV & operator=( VkAccelerationStructureTrianglesDisplacementMicromapNV const & rhs ) VULKAN_HPP_NOEXCEPT
  3195. {
  3196. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesDisplacementMicromapNV const *>( &rhs );
  3197. return *this;
  3198. }
  3199. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3200. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  3201. {
  3202. pNext = pNext_;
  3203. return *this;
  3204. }
  3205. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3206. setDisplacementBiasAndScaleFormat( VULKAN_HPP_NAMESPACE::Format displacementBiasAndScaleFormat_ ) VULKAN_HPP_NOEXCEPT
  3207. {
  3208. displacementBiasAndScaleFormat = displacementBiasAndScaleFormat_;
  3209. return *this;
  3210. }
  3211. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3212. setDisplacementVectorFormat( VULKAN_HPP_NAMESPACE::Format displacementVectorFormat_ ) VULKAN_HPP_NOEXCEPT
  3213. {
  3214. displacementVectorFormat = displacementVectorFormat_;
  3215. return *this;
  3216. }
  3217. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3218. setDisplacementBiasAndScaleBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & displacementBiasAndScaleBuffer_ ) VULKAN_HPP_NOEXCEPT
  3219. {
  3220. displacementBiasAndScaleBuffer = displacementBiasAndScaleBuffer_;
  3221. return *this;
  3222. }
  3223. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3224. setDisplacementBiasAndScaleStride( VULKAN_HPP_NAMESPACE::DeviceSize displacementBiasAndScaleStride_ ) VULKAN_HPP_NOEXCEPT
  3225. {
  3226. displacementBiasAndScaleStride = displacementBiasAndScaleStride_;
  3227. return *this;
  3228. }
  3229. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3230. setDisplacementVectorBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & displacementVectorBuffer_ ) VULKAN_HPP_NOEXCEPT
  3231. {
  3232. displacementVectorBuffer = displacementVectorBuffer_;
  3233. return *this;
  3234. }
  3235. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3236. setDisplacementVectorStride( VULKAN_HPP_NAMESPACE::DeviceSize displacementVectorStride_ ) VULKAN_HPP_NOEXCEPT
  3237. {
  3238. displacementVectorStride = displacementVectorStride_;
  3239. return *this;
  3240. }
  3241. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3242. setDisplacedMicromapPrimitiveFlags( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & displacedMicromapPrimitiveFlags_ ) VULKAN_HPP_NOEXCEPT
  3243. {
  3244. displacedMicromapPrimitiveFlags = displacedMicromapPrimitiveFlags_;
  3245. return *this;
  3246. }
  3247. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3248. setDisplacedMicromapPrimitiveFlagsStride( VULKAN_HPP_NAMESPACE::DeviceSize displacedMicromapPrimitiveFlagsStride_ ) VULKAN_HPP_NOEXCEPT
  3249. {
  3250. displacedMicromapPrimitiveFlagsStride = displacedMicromapPrimitiveFlagsStride_;
  3251. return *this;
  3252. }
  3253. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3254. setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
  3255. {
  3256. indexType = indexType_;
  3257. return *this;
  3258. }
  3259. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3260. setIndexBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexBuffer_ ) VULKAN_HPP_NOEXCEPT
  3261. {
  3262. indexBuffer = indexBuffer_;
  3263. return *this;
  3264. }
  3265. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3266. setIndexStride( VULKAN_HPP_NAMESPACE::DeviceSize indexStride_ ) VULKAN_HPP_NOEXCEPT
  3267. {
  3268. indexStride = indexStride_;
  3269. return *this;
  3270. }
  3271. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setBaseTriangle( uint32_t baseTriangle_ ) VULKAN_HPP_NOEXCEPT
  3272. {
  3273. baseTriangle = baseTriangle_;
  3274. return *this;
  3275. }
  3276. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV & setUsageCountsCount( uint32_t usageCountsCount_ ) VULKAN_HPP_NOEXCEPT
  3277. {
  3278. usageCountsCount = usageCountsCount_;
  3279. return *this;
  3280. }
  3281. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3282. setPUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
  3283. {
  3284. pUsageCounts = pUsageCounts_;
  3285. return *this;
  3286. }
  3287. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  3288. AccelerationStructureTrianglesDisplacementMicromapNV &
  3289. setUsageCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_ ) VULKAN_HPP_NOEXCEPT
  3290. {
  3291. usageCountsCount = static_cast<uint32_t>( usageCounts_.size() );
  3292. pUsageCounts = usageCounts_.data();
  3293. return *this;
  3294. }
  3295. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  3296. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3297. setPpUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ ) VULKAN_HPP_NOEXCEPT
  3298. {
  3299. ppUsageCounts = ppUsageCounts_;
  3300. return *this;
  3301. }
  3302. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  3303. AccelerationStructureTrianglesDisplacementMicromapNV & setPUsageCounts(
  3304. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
  3305. {
  3306. usageCountsCount = static_cast<uint32_t>( pUsageCounts_.size() );
  3307. ppUsageCounts = pUsageCounts_.data();
  3308. return *this;
  3309. }
  3310. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  3311. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesDisplacementMicromapNV &
  3312. setMicromap( VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ ) VULKAN_HPP_NOEXCEPT
  3313. {
  3314. micromap = micromap_;
  3315. return *this;
  3316. }
  3317. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3318. operator VkAccelerationStructureTrianglesDisplacementMicromapNV const &() const VULKAN_HPP_NOEXCEPT
  3319. {
  3320. return *reinterpret_cast<const VkAccelerationStructureTrianglesDisplacementMicromapNV *>( this );
  3321. }
  3322. operator VkAccelerationStructureTrianglesDisplacementMicromapNV &() VULKAN_HPP_NOEXCEPT
  3323. {
  3324. return *reinterpret_cast<VkAccelerationStructureTrianglesDisplacementMicromapNV *>( this );
  3325. }
  3326. # if defined( VULKAN_HPP_USE_REFLECT )
  3327. # if 14 <= VULKAN_HPP_CPP_VERSION
  3328. auto
  3329. # else
  3330. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  3331. void * const &,
  3332. VULKAN_HPP_NAMESPACE::Format const &,
  3333. VULKAN_HPP_NAMESPACE::Format const &,
  3334. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  3335. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  3336. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  3337. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  3338. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  3339. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  3340. VULKAN_HPP_NAMESPACE::IndexType const &,
  3341. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  3342. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  3343. uint32_t const &,
  3344. uint32_t const &,
  3345. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const &,
  3346. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * const &,
  3347. VULKAN_HPP_NAMESPACE::MicromapEXT const &>
  3348. # endif
  3349. reflect() const VULKAN_HPP_NOEXCEPT
  3350. {
  3351. return std::tie( sType,
  3352. pNext,
  3353. displacementBiasAndScaleFormat,
  3354. displacementVectorFormat,
  3355. displacementBiasAndScaleBuffer,
  3356. displacementBiasAndScaleStride,
  3357. displacementVectorBuffer,
  3358. displacementVectorStride,
  3359. displacedMicromapPrimitiveFlags,
  3360. displacedMicromapPrimitiveFlagsStride,
  3361. indexType,
  3362. indexBuffer,
  3363. indexStride,
  3364. baseTriangle,
  3365. usageCountsCount,
  3366. pUsageCounts,
  3367. ppUsageCounts,
  3368. micromap );
  3369. }
  3370. # endif
  3371. public:
  3372. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureTrianglesDisplacementMicromapNV;
  3373. void * pNext = {};
  3374. VULKAN_HPP_NAMESPACE::Format displacementBiasAndScaleFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  3375. VULKAN_HPP_NAMESPACE::Format displacementVectorFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  3376. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer = {};
  3377. VULKAN_HPP_NAMESPACE::DeviceSize displacementBiasAndScaleStride = {};
  3378. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacementVectorBuffer = {};
  3379. VULKAN_HPP_NAMESPACE::DeviceSize displacementVectorStride = {};
  3380. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags = {};
  3381. VULKAN_HPP_NAMESPACE::DeviceSize displacedMicromapPrimitiveFlagsStride = {};
  3382. VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
  3383. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer = {};
  3384. VULKAN_HPP_NAMESPACE::DeviceSize indexStride = {};
  3385. uint32_t baseTriangle = {};
  3386. uint32_t usageCountsCount = {};
  3387. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts = {};
  3388. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts = {};
  3389. VULKAN_HPP_NAMESPACE::MicromapEXT micromap = {};
  3390. };
  3391. template <>
  3392. struct CppType<StructureType, StructureType::eAccelerationStructureTrianglesDisplacementMicromapNV>
  3393. {
  3394. using Type = AccelerationStructureTrianglesDisplacementMicromapNV;
  3395. };
  3396. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  3397. struct AccelerationStructureTrianglesOpacityMicromapEXT
  3398. {
  3399. using NativeType = VkAccelerationStructureTrianglesOpacityMicromapEXT;
  3400. static const bool allowDuplicate = false;
  3401. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureTrianglesOpacityMicromapEXT;
  3402. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3403. VULKAN_HPP_CONSTEXPR_14
  3404. AccelerationStructureTrianglesOpacityMicromapEXT( VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16,
  3405. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer_ = {},
  3406. VULKAN_HPP_NAMESPACE::DeviceSize indexStride_ = {},
  3407. uint32_t baseTriangle_ = {},
  3408. uint32_t usageCountsCount_ = {},
  3409. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ = {},
  3410. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ = {},
  3411. VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ = {},
  3412. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3413. : pNext( pNext_ )
  3414. , indexType( indexType_ )
  3415. , indexBuffer( indexBuffer_ )
  3416. , indexStride( indexStride_ )
  3417. , baseTriangle( baseTriangle_ )
  3418. , usageCountsCount( usageCountsCount_ )
  3419. , pUsageCounts( pUsageCounts_ )
  3420. , ppUsageCounts( ppUsageCounts_ )
  3421. , micromap( micromap_ )
  3422. {
  3423. }
  3424. VULKAN_HPP_CONSTEXPR_14
  3425. AccelerationStructureTrianglesOpacityMicromapEXT( AccelerationStructureTrianglesOpacityMicromapEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3426. AccelerationStructureTrianglesOpacityMicromapEXT( VkAccelerationStructureTrianglesOpacityMicromapEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  3427. : AccelerationStructureTrianglesOpacityMicromapEXT( *reinterpret_cast<AccelerationStructureTrianglesOpacityMicromapEXT const *>( &rhs ) )
  3428. {
  3429. }
  3430. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  3431. AccelerationStructureTrianglesOpacityMicromapEXT(
  3432. VULKAN_HPP_NAMESPACE::IndexType indexType_,
  3433. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer_,
  3434. VULKAN_HPP_NAMESPACE::DeviceSize indexStride_,
  3435. uint32_t baseTriangle_,
  3436. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_,
  3437. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ = {},
  3438. VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ = {},
  3439. void * pNext_ = nullptr )
  3440. : pNext( pNext_ )
  3441. , indexType( indexType_ )
  3442. , indexBuffer( indexBuffer_ )
  3443. , indexStride( indexStride_ )
  3444. , baseTriangle( baseTriangle_ )
  3445. , usageCountsCount( static_cast<uint32_t>( !usageCounts_.empty() ? usageCounts_.size() : pUsageCounts_.size() ) )
  3446. , pUsageCounts( usageCounts_.data() )
  3447. , ppUsageCounts( pUsageCounts_.data() )
  3448. , micromap( micromap_ )
  3449. {
  3450. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  3451. VULKAN_HPP_ASSERT( ( !usageCounts_.empty() + !pUsageCounts_.empty() ) <= 1 );
  3452. # else
  3453. if ( 1 < ( !usageCounts_.empty() + !pUsageCounts_.empty() ) )
  3454. {
  3455. throw LogicError(
  3456. VULKAN_HPP_NAMESPACE_STRING
  3457. "::AccelerationStructureTrianglesOpacityMicromapEXT::AccelerationStructureTrianglesOpacityMicromapEXT: 1 < ( !usageCounts_.empty() + !pUsageCounts_.empty() )" );
  3458. }
  3459. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  3460. }
  3461. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  3462. AccelerationStructureTrianglesOpacityMicromapEXT & operator=( AccelerationStructureTrianglesOpacityMicromapEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3463. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3464. AccelerationStructureTrianglesOpacityMicromapEXT & operator=( VkAccelerationStructureTrianglesOpacityMicromapEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  3465. {
  3466. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureTrianglesOpacityMicromapEXT const *>( &rhs );
  3467. return *this;
  3468. }
  3469. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3470. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  3471. {
  3472. pNext = pNext_;
  3473. return *this;
  3474. }
  3475. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
  3476. {
  3477. indexType = indexType_;
  3478. return *this;
  3479. }
  3480. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT &
  3481. setIndexBuffer( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexBuffer_ ) VULKAN_HPP_NOEXCEPT
  3482. {
  3483. indexBuffer = indexBuffer_;
  3484. return *this;
  3485. }
  3486. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT &
  3487. setIndexStride( VULKAN_HPP_NAMESPACE::DeviceSize indexStride_ ) VULKAN_HPP_NOEXCEPT
  3488. {
  3489. indexStride = indexStride_;
  3490. return *this;
  3491. }
  3492. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setBaseTriangle( uint32_t baseTriangle_ ) VULKAN_HPP_NOEXCEPT
  3493. {
  3494. baseTriangle = baseTriangle_;
  3495. return *this;
  3496. }
  3497. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setUsageCountsCount( uint32_t usageCountsCount_ ) VULKAN_HPP_NOEXCEPT
  3498. {
  3499. usageCountsCount = usageCountsCount_;
  3500. return *this;
  3501. }
  3502. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT &
  3503. setPUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
  3504. {
  3505. pUsageCounts = pUsageCounts_;
  3506. return *this;
  3507. }
  3508. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  3509. AccelerationStructureTrianglesOpacityMicromapEXT &
  3510. setUsageCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_ ) VULKAN_HPP_NOEXCEPT
  3511. {
  3512. usageCountsCount = static_cast<uint32_t>( usageCounts_.size() );
  3513. pUsageCounts = usageCounts_.data();
  3514. return *this;
  3515. }
  3516. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  3517. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT &
  3518. setPpUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ ) VULKAN_HPP_NOEXCEPT
  3519. {
  3520. ppUsageCounts = ppUsageCounts_;
  3521. return *this;
  3522. }
  3523. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  3524. AccelerationStructureTrianglesOpacityMicromapEXT & setPUsageCounts(
  3525. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
  3526. {
  3527. usageCountsCount = static_cast<uint32_t>( pUsageCounts_.size() );
  3528. ppUsageCounts = pUsageCounts_.data();
  3529. return *this;
  3530. }
  3531. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  3532. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureTrianglesOpacityMicromapEXT & setMicromap( VULKAN_HPP_NAMESPACE::MicromapEXT micromap_ ) VULKAN_HPP_NOEXCEPT
  3533. {
  3534. micromap = micromap_;
  3535. return *this;
  3536. }
  3537. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3538. operator VkAccelerationStructureTrianglesOpacityMicromapEXT const &() const VULKAN_HPP_NOEXCEPT
  3539. {
  3540. return *reinterpret_cast<const VkAccelerationStructureTrianglesOpacityMicromapEXT *>( this );
  3541. }
  3542. operator VkAccelerationStructureTrianglesOpacityMicromapEXT &() VULKAN_HPP_NOEXCEPT
  3543. {
  3544. return *reinterpret_cast<VkAccelerationStructureTrianglesOpacityMicromapEXT *>( this );
  3545. }
  3546. #if defined( VULKAN_HPP_USE_REFLECT )
  3547. # if 14 <= VULKAN_HPP_CPP_VERSION
  3548. auto
  3549. # else
  3550. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  3551. void * const &,
  3552. VULKAN_HPP_NAMESPACE::IndexType const &,
  3553. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  3554. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  3555. uint32_t const &,
  3556. uint32_t const &,
  3557. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const &,
  3558. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * const &,
  3559. VULKAN_HPP_NAMESPACE::MicromapEXT const &>
  3560. # endif
  3561. reflect() const VULKAN_HPP_NOEXCEPT
  3562. {
  3563. return std::tie( sType, pNext, indexType, indexBuffer, indexStride, baseTriangle, usageCountsCount, pUsageCounts, ppUsageCounts, micromap );
  3564. }
  3565. #endif
  3566. public:
  3567. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureTrianglesOpacityMicromapEXT;
  3568. void * pNext = {};
  3569. VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
  3570. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexBuffer = {};
  3571. VULKAN_HPP_NAMESPACE::DeviceSize indexStride = {};
  3572. uint32_t baseTriangle = {};
  3573. uint32_t usageCountsCount = {};
  3574. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts = {};
  3575. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts = {};
  3576. VULKAN_HPP_NAMESPACE::MicromapEXT micromap = {};
  3577. };
  3578. template <>
  3579. struct CppType<StructureType, StructureType::eAccelerationStructureTrianglesOpacityMicromapEXT>
  3580. {
  3581. using Type = AccelerationStructureTrianglesOpacityMicromapEXT;
  3582. };
  3583. struct AccelerationStructureVersionInfoKHR
  3584. {
  3585. using NativeType = VkAccelerationStructureVersionInfoKHR;
  3586. static const bool allowDuplicate = false;
  3587. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureVersionInfoKHR;
  3588. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3589. VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR( const uint8_t * pVersionData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3590. : pNext( pNext_ )
  3591. , pVersionData( pVersionData_ )
  3592. {
  3593. }
  3594. VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3595. AccelerationStructureVersionInfoKHR( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3596. : AccelerationStructureVersionInfoKHR( *reinterpret_cast<AccelerationStructureVersionInfoKHR const *>( &rhs ) )
  3597. {
  3598. }
  3599. AccelerationStructureVersionInfoKHR & operator=( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3600. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3601. AccelerationStructureVersionInfoKHR & operator=( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3602. {
  3603. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR const *>( &rhs );
  3604. return *this;
  3605. }
  3606. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3607. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureVersionInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  3608. {
  3609. pNext = pNext_;
  3610. return *this;
  3611. }
  3612. VULKAN_HPP_CONSTEXPR_14 AccelerationStructureVersionInfoKHR & setPVersionData( const uint8_t * pVersionData_ ) VULKAN_HPP_NOEXCEPT
  3613. {
  3614. pVersionData = pVersionData_;
  3615. return *this;
  3616. }
  3617. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3618. operator VkAccelerationStructureVersionInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  3619. {
  3620. return *reinterpret_cast<const VkAccelerationStructureVersionInfoKHR *>( this );
  3621. }
  3622. operator VkAccelerationStructureVersionInfoKHR &() VULKAN_HPP_NOEXCEPT
  3623. {
  3624. return *reinterpret_cast<VkAccelerationStructureVersionInfoKHR *>( this );
  3625. }
  3626. #if defined( VULKAN_HPP_USE_REFLECT )
  3627. # if 14 <= VULKAN_HPP_CPP_VERSION
  3628. auto
  3629. # else
  3630. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const uint8_t * const &>
  3631. # endif
  3632. reflect() const VULKAN_HPP_NOEXCEPT
  3633. {
  3634. return std::tie( sType, pNext, pVersionData );
  3635. }
  3636. #endif
  3637. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3638. auto operator<=>( AccelerationStructureVersionInfoKHR const & ) const = default;
  3639. #else
  3640. bool operator==( AccelerationStructureVersionInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3641. {
  3642. # if defined( VULKAN_HPP_USE_REFLECT )
  3643. return this->reflect() == rhs.reflect();
  3644. # else
  3645. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pVersionData == rhs.pVersionData );
  3646. # endif
  3647. }
  3648. bool operator!=( AccelerationStructureVersionInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3649. {
  3650. return !operator==( rhs );
  3651. }
  3652. #endif
  3653. public:
  3654. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureVersionInfoKHR;
  3655. const void * pNext = {};
  3656. const uint8_t * pVersionData = {};
  3657. };
  3658. template <>
  3659. struct CppType<StructureType, StructureType::eAccelerationStructureVersionInfoKHR>
  3660. {
  3661. using Type = AccelerationStructureVersionInfoKHR;
  3662. };
  3663. struct AcquireNextImageInfoKHR
  3664. {
  3665. using NativeType = VkAcquireNextImageInfoKHR;
  3666. static const bool allowDuplicate = false;
  3667. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireNextImageInfoKHR;
  3668. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3669. VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {},
  3670. uint64_t timeout_ = {},
  3671. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  3672. VULKAN_HPP_NAMESPACE::Fence fence_ = {},
  3673. uint32_t deviceMask_ = {},
  3674. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3675. : pNext( pNext_ )
  3676. , swapchain( swapchain_ )
  3677. , timeout( timeout_ )
  3678. , semaphore( semaphore_ )
  3679. , fence( fence_ )
  3680. , deviceMask( deviceMask_ )
  3681. {
  3682. }
  3683. VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3684. AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3685. : AcquireNextImageInfoKHR( *reinterpret_cast<AcquireNextImageInfoKHR const *>( &rhs ) )
  3686. {
  3687. }
  3688. AcquireNextImageInfoKHR & operator=( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3689. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3690. AcquireNextImageInfoKHR & operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3691. {
  3692. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR const *>( &rhs );
  3693. return *this;
  3694. }
  3695. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3696. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  3697. {
  3698. pNext = pNext_;
  3699. return *this;
  3700. }
  3701. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
  3702. {
  3703. swapchain = swapchain_;
  3704. return *this;
  3705. }
  3706. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
  3707. {
  3708. timeout = timeout_;
  3709. return *this;
  3710. }
  3711. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  3712. {
  3713. semaphore = semaphore_;
  3714. return *this;
  3715. }
  3716. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
  3717. {
  3718. fence = fence_;
  3719. return *this;
  3720. }
  3721. VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
  3722. {
  3723. deviceMask = deviceMask_;
  3724. return *this;
  3725. }
  3726. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3727. operator VkAcquireNextImageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  3728. {
  3729. return *reinterpret_cast<const VkAcquireNextImageInfoKHR *>( this );
  3730. }
  3731. operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT
  3732. {
  3733. return *reinterpret_cast<VkAcquireNextImageInfoKHR *>( this );
  3734. }
  3735. #if defined( VULKAN_HPP_USE_REFLECT )
  3736. # if 14 <= VULKAN_HPP_CPP_VERSION
  3737. auto
  3738. # else
  3739. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  3740. const void * const &,
  3741. VULKAN_HPP_NAMESPACE::SwapchainKHR const &,
  3742. uint64_t const &,
  3743. VULKAN_HPP_NAMESPACE::Semaphore const &,
  3744. VULKAN_HPP_NAMESPACE::Fence const &,
  3745. uint32_t const &>
  3746. # endif
  3747. reflect() const VULKAN_HPP_NOEXCEPT
  3748. {
  3749. return std::tie( sType, pNext, swapchain, timeout, semaphore, fence, deviceMask );
  3750. }
  3751. #endif
  3752. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3753. auto operator<=>( AcquireNextImageInfoKHR const & ) const = default;
  3754. #else
  3755. bool operator==( AcquireNextImageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3756. {
  3757. # if defined( VULKAN_HPP_USE_REFLECT )
  3758. return this->reflect() == rhs.reflect();
  3759. # else
  3760. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchain == rhs.swapchain ) && ( timeout == rhs.timeout ) &&
  3761. ( semaphore == rhs.semaphore ) && ( fence == rhs.fence ) && ( deviceMask == rhs.deviceMask );
  3762. # endif
  3763. }
  3764. bool operator!=( AcquireNextImageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3765. {
  3766. return !operator==( rhs );
  3767. }
  3768. #endif
  3769. public:
  3770. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR;
  3771. const void * pNext = {};
  3772. VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
  3773. uint64_t timeout = {};
  3774. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  3775. VULKAN_HPP_NAMESPACE::Fence fence = {};
  3776. uint32_t deviceMask = {};
  3777. };
  3778. template <>
  3779. struct CppType<StructureType, StructureType::eAcquireNextImageInfoKHR>
  3780. {
  3781. using Type = AcquireNextImageInfoKHR;
  3782. };
  3783. struct AcquireProfilingLockInfoKHR
  3784. {
  3785. using NativeType = VkAcquireProfilingLockInfoKHR;
  3786. static const bool allowDuplicate = false;
  3787. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireProfilingLockInfoKHR;
  3788. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3789. VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {},
  3790. uint64_t timeout_ = {},
  3791. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3792. : pNext( pNext_ )
  3793. , flags( flags_ )
  3794. , timeout( timeout_ )
  3795. {
  3796. }
  3797. VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3798. AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3799. : AcquireProfilingLockInfoKHR( *reinterpret_cast<AcquireProfilingLockInfoKHR const *>( &rhs ) )
  3800. {
  3801. }
  3802. AcquireProfilingLockInfoKHR & operator=( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3803. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3804. AcquireProfilingLockInfoKHR & operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  3805. {
  3806. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR const *>( &rhs );
  3807. return *this;
  3808. }
  3809. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3810. VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  3811. {
  3812. pNext = pNext_;
  3813. return *this;
  3814. }
  3815. VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  3816. {
  3817. flags = flags_;
  3818. return *this;
  3819. }
  3820. VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT
  3821. {
  3822. timeout = timeout_;
  3823. return *this;
  3824. }
  3825. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3826. operator VkAcquireProfilingLockInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  3827. {
  3828. return *reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( this );
  3829. }
  3830. operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT
  3831. {
  3832. return *reinterpret_cast<VkAcquireProfilingLockInfoKHR *>( this );
  3833. }
  3834. #if defined( VULKAN_HPP_USE_REFLECT )
  3835. # if 14 <= VULKAN_HPP_CPP_VERSION
  3836. auto
  3837. # else
  3838. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR const &, uint64_t const &>
  3839. # endif
  3840. reflect() const VULKAN_HPP_NOEXCEPT
  3841. {
  3842. return std::tie( sType, pNext, flags, timeout );
  3843. }
  3844. #endif
  3845. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  3846. auto operator<=>( AcquireProfilingLockInfoKHR const & ) const = default;
  3847. #else
  3848. bool operator==( AcquireProfilingLockInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3849. {
  3850. # if defined( VULKAN_HPP_USE_REFLECT )
  3851. return this->reflect() == rhs.reflect();
  3852. # else
  3853. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( timeout == rhs.timeout );
  3854. # endif
  3855. }
  3856. bool operator!=( AcquireProfilingLockInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  3857. {
  3858. return !operator==( rhs );
  3859. }
  3860. #endif
  3861. public:
  3862. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR;
  3863. const void * pNext = {};
  3864. VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {};
  3865. uint64_t timeout = {};
  3866. };
  3867. template <>
  3868. struct CppType<StructureType, StructureType::eAcquireProfilingLockInfoKHR>
  3869. {
  3870. using Type = AcquireProfilingLockInfoKHR;
  3871. };
  3872. struct AllocationCallbacks
  3873. {
  3874. using NativeType = VkAllocationCallbacks;
  3875. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3876. VULKAN_HPP_CONSTEXPR AllocationCallbacks( void * pUserData_ = {},
  3877. PFN_vkAllocationFunction pfnAllocation_ = {},
  3878. PFN_vkReallocationFunction pfnReallocation_ = {},
  3879. PFN_vkFreeFunction pfnFree_ = {},
  3880. PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {},
  3881. PFN_vkInternalFreeNotification pfnInternalFree_ = {} ) VULKAN_HPP_NOEXCEPT
  3882. : pUserData( pUserData_ )
  3883. , pfnAllocation( pfnAllocation_ )
  3884. , pfnReallocation( pfnReallocation_ )
  3885. , pfnFree( pfnFree_ )
  3886. , pfnInternalAllocation( pfnInternalAllocation_ )
  3887. , pfnInternalFree( pfnInternalFree_ )
  3888. {
  3889. }
  3890. VULKAN_HPP_CONSTEXPR AllocationCallbacks( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3891. AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT : AllocationCallbacks( *reinterpret_cast<AllocationCallbacks const *>( &rhs ) )
  3892. {
  3893. }
  3894. AllocationCallbacks & operator=( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3895. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3896. AllocationCallbacks & operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT
  3897. {
  3898. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AllocationCallbacks const *>( &rhs );
  3899. return *this;
  3900. }
  3901. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  3902. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
  3903. {
  3904. pUserData = pUserData_;
  3905. return *this;
  3906. }
  3907. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT
  3908. {
  3909. pfnAllocation = pfnAllocation_;
  3910. return *this;
  3911. }
  3912. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT
  3913. {
  3914. pfnReallocation = pfnReallocation_;
  3915. return *this;
  3916. }
  3917. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT
  3918. {
  3919. pfnFree = pfnFree_;
  3920. return *this;
  3921. }
  3922. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT
  3923. {
  3924. pfnInternalAllocation = pfnInternalAllocation_;
  3925. return *this;
  3926. }
  3927. VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT
  3928. {
  3929. pfnInternalFree = pfnInternalFree_;
  3930. return *this;
  3931. }
  3932. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  3933. operator VkAllocationCallbacks const &() const VULKAN_HPP_NOEXCEPT
  3934. {
  3935. return *reinterpret_cast<const VkAllocationCallbacks *>( this );
  3936. }
  3937. operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT
  3938. {
  3939. return *reinterpret_cast<VkAllocationCallbacks *>( this );
  3940. }
  3941. #if defined( VULKAN_HPP_USE_REFLECT )
  3942. # if 14 <= VULKAN_HPP_CPP_VERSION
  3943. auto
  3944. # else
  3945. std::tuple<void * const &,
  3946. PFN_vkAllocationFunction const &,
  3947. PFN_vkReallocationFunction const &,
  3948. PFN_vkFreeFunction const &,
  3949. PFN_vkInternalAllocationNotification const &,
  3950. PFN_vkInternalFreeNotification const &>
  3951. # endif
  3952. reflect() const VULKAN_HPP_NOEXCEPT
  3953. {
  3954. return std::tie( pUserData, pfnAllocation, pfnReallocation, pfnFree, pfnInternalAllocation, pfnInternalFree );
  3955. }
  3956. #endif
  3957. bool operator==( AllocationCallbacks const & rhs ) const VULKAN_HPP_NOEXCEPT
  3958. {
  3959. #if defined( VULKAN_HPP_USE_REFLECT )
  3960. return this->reflect() == rhs.reflect();
  3961. #else
  3962. return ( pUserData == rhs.pUserData ) && ( pfnAllocation == rhs.pfnAllocation ) && ( pfnReallocation == rhs.pfnReallocation ) &&
  3963. ( pfnFree == rhs.pfnFree ) && ( pfnInternalAllocation == rhs.pfnInternalAllocation ) && ( pfnInternalFree == rhs.pfnInternalFree );
  3964. #endif
  3965. }
  3966. bool operator!=( AllocationCallbacks const & rhs ) const VULKAN_HPP_NOEXCEPT
  3967. {
  3968. return !operator==( rhs );
  3969. }
  3970. public:
  3971. void * pUserData = {};
  3972. PFN_vkAllocationFunction pfnAllocation = {};
  3973. PFN_vkReallocationFunction pfnReallocation = {};
  3974. PFN_vkFreeFunction pfnFree = {};
  3975. PFN_vkInternalAllocationNotification pfnInternalAllocation = {};
  3976. PFN_vkInternalFreeNotification pfnInternalFree = {};
  3977. };
  3978. struct AmigoProfilingSubmitInfoSEC
  3979. {
  3980. using NativeType = VkAmigoProfilingSubmitInfoSEC;
  3981. static const bool allowDuplicate = false;
  3982. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAmigoProfilingSubmitInfoSEC;
  3983. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  3984. VULKAN_HPP_CONSTEXPR
  3985. AmigoProfilingSubmitInfoSEC( uint64_t firstDrawTimestamp_ = {}, uint64_t swapBufferTimestamp_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  3986. : pNext( pNext_ )
  3987. , firstDrawTimestamp( firstDrawTimestamp_ )
  3988. , swapBufferTimestamp( swapBufferTimestamp_ )
  3989. {
  3990. }
  3991. VULKAN_HPP_CONSTEXPR AmigoProfilingSubmitInfoSEC( AmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3992. AmigoProfilingSubmitInfoSEC( VkAmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT
  3993. : AmigoProfilingSubmitInfoSEC( *reinterpret_cast<AmigoProfilingSubmitInfoSEC const *>( &rhs ) )
  3994. {
  3995. }
  3996. AmigoProfilingSubmitInfoSEC & operator=( AmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  3997. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  3998. AmigoProfilingSubmitInfoSEC & operator=( VkAmigoProfilingSubmitInfoSEC const & rhs ) VULKAN_HPP_NOEXCEPT
  3999. {
  4000. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC const *>( &rhs );
  4001. return *this;
  4002. }
  4003. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4004. VULKAN_HPP_CONSTEXPR_14 AmigoProfilingSubmitInfoSEC & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  4005. {
  4006. pNext = pNext_;
  4007. return *this;
  4008. }
  4009. VULKAN_HPP_CONSTEXPR_14 AmigoProfilingSubmitInfoSEC & setFirstDrawTimestamp( uint64_t firstDrawTimestamp_ ) VULKAN_HPP_NOEXCEPT
  4010. {
  4011. firstDrawTimestamp = firstDrawTimestamp_;
  4012. return *this;
  4013. }
  4014. VULKAN_HPP_CONSTEXPR_14 AmigoProfilingSubmitInfoSEC & setSwapBufferTimestamp( uint64_t swapBufferTimestamp_ ) VULKAN_HPP_NOEXCEPT
  4015. {
  4016. swapBufferTimestamp = swapBufferTimestamp_;
  4017. return *this;
  4018. }
  4019. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4020. operator VkAmigoProfilingSubmitInfoSEC const &() const VULKAN_HPP_NOEXCEPT
  4021. {
  4022. return *reinterpret_cast<const VkAmigoProfilingSubmitInfoSEC *>( this );
  4023. }
  4024. operator VkAmigoProfilingSubmitInfoSEC &() VULKAN_HPP_NOEXCEPT
  4025. {
  4026. return *reinterpret_cast<VkAmigoProfilingSubmitInfoSEC *>( this );
  4027. }
  4028. #if defined( VULKAN_HPP_USE_REFLECT )
  4029. # if 14 <= VULKAN_HPP_CPP_VERSION
  4030. auto
  4031. # else
  4032. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, uint64_t const &>
  4033. # endif
  4034. reflect() const VULKAN_HPP_NOEXCEPT
  4035. {
  4036. return std::tie( sType, pNext, firstDrawTimestamp, swapBufferTimestamp );
  4037. }
  4038. #endif
  4039. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4040. auto operator<=>( AmigoProfilingSubmitInfoSEC const & ) const = default;
  4041. #else
  4042. bool operator==( AmigoProfilingSubmitInfoSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
  4043. {
  4044. # if defined( VULKAN_HPP_USE_REFLECT )
  4045. return this->reflect() == rhs.reflect();
  4046. # else
  4047. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( firstDrawTimestamp == rhs.firstDrawTimestamp ) &&
  4048. ( swapBufferTimestamp == rhs.swapBufferTimestamp );
  4049. # endif
  4050. }
  4051. bool operator!=( AmigoProfilingSubmitInfoSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
  4052. {
  4053. return !operator==( rhs );
  4054. }
  4055. #endif
  4056. public:
  4057. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAmigoProfilingSubmitInfoSEC;
  4058. const void * pNext = {};
  4059. uint64_t firstDrawTimestamp = {};
  4060. uint64_t swapBufferTimestamp = {};
  4061. };
  4062. template <>
  4063. struct CppType<StructureType, StructureType::eAmigoProfilingSubmitInfoSEC>
  4064. {
  4065. using Type = AmigoProfilingSubmitInfoSEC;
  4066. };
  4067. struct ComponentMapping
  4068. {
  4069. using NativeType = VkComponentMapping;
  4070. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4071. VULKAN_HPP_CONSTEXPR ComponentMapping( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity,
  4072. VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity,
  4073. VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity,
  4074. VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity ) VULKAN_HPP_NOEXCEPT
  4075. : r( r_ )
  4076. , g( g_ )
  4077. , b( b_ )
  4078. , a( a_ )
  4079. {
  4080. }
  4081. VULKAN_HPP_CONSTEXPR ComponentMapping( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4082. ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT : ComponentMapping( *reinterpret_cast<ComponentMapping const *>( &rhs ) ) {}
  4083. ComponentMapping & operator=( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4084. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4085. ComponentMapping & operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT
  4086. {
  4087. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComponentMapping const *>( &rhs );
  4088. return *this;
  4089. }
  4090. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4091. VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT
  4092. {
  4093. r = r_;
  4094. return *this;
  4095. }
  4096. VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT
  4097. {
  4098. g = g_;
  4099. return *this;
  4100. }
  4101. VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT
  4102. {
  4103. b = b_;
  4104. return *this;
  4105. }
  4106. VULKAN_HPP_CONSTEXPR_14 ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT
  4107. {
  4108. a = a_;
  4109. return *this;
  4110. }
  4111. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4112. operator VkComponentMapping const &() const VULKAN_HPP_NOEXCEPT
  4113. {
  4114. return *reinterpret_cast<const VkComponentMapping *>( this );
  4115. }
  4116. operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT
  4117. {
  4118. return *reinterpret_cast<VkComponentMapping *>( this );
  4119. }
  4120. #if defined( VULKAN_HPP_USE_REFLECT )
  4121. # if 14 <= VULKAN_HPP_CPP_VERSION
  4122. auto
  4123. # else
  4124. std::tuple<VULKAN_HPP_NAMESPACE::ComponentSwizzle const &,
  4125. VULKAN_HPP_NAMESPACE::ComponentSwizzle const &,
  4126. VULKAN_HPP_NAMESPACE::ComponentSwizzle const &,
  4127. VULKAN_HPP_NAMESPACE::ComponentSwizzle const &>
  4128. # endif
  4129. reflect() const VULKAN_HPP_NOEXCEPT
  4130. {
  4131. return std::tie( r, g, b, a );
  4132. }
  4133. #endif
  4134. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4135. auto operator<=>( ComponentMapping const & ) const = default;
  4136. #else
  4137. bool operator==( ComponentMapping const & rhs ) const VULKAN_HPP_NOEXCEPT
  4138. {
  4139. # if defined( VULKAN_HPP_USE_REFLECT )
  4140. return this->reflect() == rhs.reflect();
  4141. # else
  4142. return ( r == rhs.r ) && ( g == rhs.g ) && ( b == rhs.b ) && ( a == rhs.a );
  4143. # endif
  4144. }
  4145. bool operator!=( ComponentMapping const & rhs ) const VULKAN_HPP_NOEXCEPT
  4146. {
  4147. return !operator==( rhs );
  4148. }
  4149. #endif
  4150. public:
  4151. VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
  4152. VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
  4153. VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
  4154. VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity;
  4155. };
  4156. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  4157. struct AndroidHardwareBufferFormatProperties2ANDROID
  4158. {
  4159. using NativeType = VkAndroidHardwareBufferFormatProperties2ANDROID;
  4160. static const bool allowDuplicate = false;
  4161. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatProperties2ANDROID;
  4162. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4163. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatProperties2ANDROID(
  4164. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  4165. uint64_t externalFormat_ = {},
  4166. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 formatFeatures_ = {},
  4167. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {},
  4168. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
  4169. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
  4170. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  4171. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  4172. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4173. : pNext( pNext_ )
  4174. , format( format_ )
  4175. , externalFormat( externalFormat_ )
  4176. , formatFeatures( formatFeatures_ )
  4177. , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
  4178. , suggestedYcbcrModel( suggestedYcbcrModel_ )
  4179. , suggestedYcbcrRange( suggestedYcbcrRange_ )
  4180. , suggestedXChromaOffset( suggestedXChromaOffset_ )
  4181. , suggestedYChromaOffset( suggestedYChromaOffset_ )
  4182. {
  4183. }
  4184. VULKAN_HPP_CONSTEXPR
  4185. AndroidHardwareBufferFormatProperties2ANDROID( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4186. AndroidHardwareBufferFormatProperties2ANDROID( VkAndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  4187. : AndroidHardwareBufferFormatProperties2ANDROID( *reinterpret_cast<AndroidHardwareBufferFormatProperties2ANDROID const *>( &rhs ) )
  4188. {
  4189. }
  4190. AndroidHardwareBufferFormatProperties2ANDROID & operator=( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4191. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4192. AndroidHardwareBufferFormatProperties2ANDROID & operator=( VkAndroidHardwareBufferFormatProperties2ANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  4193. {
  4194. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID const *>( &rhs );
  4195. return *this;
  4196. }
  4197. operator VkAndroidHardwareBufferFormatProperties2ANDROID const &() const VULKAN_HPP_NOEXCEPT
  4198. {
  4199. return *reinterpret_cast<const VkAndroidHardwareBufferFormatProperties2ANDROID *>( this );
  4200. }
  4201. operator VkAndroidHardwareBufferFormatProperties2ANDROID &() VULKAN_HPP_NOEXCEPT
  4202. {
  4203. return *reinterpret_cast<VkAndroidHardwareBufferFormatProperties2ANDROID *>( this );
  4204. }
  4205. # if defined( VULKAN_HPP_USE_REFLECT )
  4206. # if 14 <= VULKAN_HPP_CPP_VERSION
  4207. auto
  4208. # else
  4209. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  4210. void * const &,
  4211. VULKAN_HPP_NAMESPACE::Format const &,
  4212. uint64_t const &,
  4213. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &,
  4214. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  4215. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &,
  4216. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &,
  4217. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  4218. VULKAN_HPP_NAMESPACE::ChromaLocation const &>
  4219. # endif
  4220. reflect() const VULKAN_HPP_NOEXCEPT
  4221. {
  4222. return std::tie( sType,
  4223. pNext,
  4224. format,
  4225. externalFormat,
  4226. formatFeatures,
  4227. samplerYcbcrConversionComponents,
  4228. suggestedYcbcrModel,
  4229. suggestedYcbcrRange,
  4230. suggestedXChromaOffset,
  4231. suggestedYChromaOffset );
  4232. }
  4233. # endif
  4234. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4235. auto operator<=>( AndroidHardwareBufferFormatProperties2ANDROID const & ) const = default;
  4236. # else
  4237. bool operator==( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  4238. {
  4239. # if defined( VULKAN_HPP_USE_REFLECT )
  4240. return this->reflect() == rhs.reflect();
  4241. # else
  4242. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( externalFormat == rhs.externalFormat ) &&
  4243. ( formatFeatures == rhs.formatFeatures ) && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) &&
  4244. ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) &&
  4245. ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
  4246. # endif
  4247. }
  4248. bool operator!=( AndroidHardwareBufferFormatProperties2ANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  4249. {
  4250. return !operator==( rhs );
  4251. }
  4252. # endif
  4253. public:
  4254. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatProperties2ANDROID;
  4255. void * pNext = {};
  4256. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  4257. uint64_t externalFormat = {};
  4258. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 formatFeatures = {};
  4259. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
  4260. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
  4261. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
  4262. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  4263. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  4264. };
  4265. template <>
  4266. struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatProperties2ANDROID>
  4267. {
  4268. using Type = AndroidHardwareBufferFormatProperties2ANDROID;
  4269. };
  4270. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  4271. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  4272. struct AndroidHardwareBufferFormatPropertiesANDROID
  4273. {
  4274. using NativeType = VkAndroidHardwareBufferFormatPropertiesANDROID;
  4275. static const bool allowDuplicate = false;
  4276. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
  4277. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4278. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID(
  4279. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  4280. uint64_t externalFormat_ = {},
  4281. VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {},
  4282. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {},
  4283. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
  4284. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
  4285. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  4286. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  4287. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4288. : pNext( pNext_ )
  4289. , format( format_ )
  4290. , externalFormat( externalFormat_ )
  4291. , formatFeatures( formatFeatures_ )
  4292. , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
  4293. , suggestedYcbcrModel( suggestedYcbcrModel_ )
  4294. , suggestedYcbcrRange( suggestedYcbcrRange_ )
  4295. , suggestedXChromaOffset( suggestedXChromaOffset_ )
  4296. , suggestedYChromaOffset( suggestedYChromaOffset_ )
  4297. {
  4298. }
  4299. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4300. AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  4301. : AndroidHardwareBufferFormatPropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferFormatPropertiesANDROID const *>( &rhs ) )
  4302. {
  4303. }
  4304. AndroidHardwareBufferFormatPropertiesANDROID & operator=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4305. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4306. AndroidHardwareBufferFormatPropertiesANDROID & operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  4307. {
  4308. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID const *>( &rhs );
  4309. return *this;
  4310. }
  4311. operator VkAndroidHardwareBufferFormatPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
  4312. {
  4313. return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID *>( this );
  4314. }
  4315. operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
  4316. {
  4317. return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID *>( this );
  4318. }
  4319. # if defined( VULKAN_HPP_USE_REFLECT )
  4320. # if 14 <= VULKAN_HPP_CPP_VERSION
  4321. auto
  4322. # else
  4323. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  4324. void * const &,
  4325. VULKAN_HPP_NAMESPACE::Format const &,
  4326. uint64_t const &,
  4327. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  4328. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  4329. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &,
  4330. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &,
  4331. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  4332. VULKAN_HPP_NAMESPACE::ChromaLocation const &>
  4333. # endif
  4334. reflect() const VULKAN_HPP_NOEXCEPT
  4335. {
  4336. return std::tie( sType,
  4337. pNext,
  4338. format,
  4339. externalFormat,
  4340. formatFeatures,
  4341. samplerYcbcrConversionComponents,
  4342. suggestedYcbcrModel,
  4343. suggestedYcbcrRange,
  4344. suggestedXChromaOffset,
  4345. suggestedYChromaOffset );
  4346. }
  4347. # endif
  4348. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4349. auto operator<=>( AndroidHardwareBufferFormatPropertiesANDROID const & ) const = default;
  4350. # else
  4351. bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  4352. {
  4353. # if defined( VULKAN_HPP_USE_REFLECT )
  4354. return this->reflect() == rhs.reflect();
  4355. # else
  4356. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( externalFormat == rhs.externalFormat ) &&
  4357. ( formatFeatures == rhs.formatFeatures ) && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) &&
  4358. ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) &&
  4359. ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
  4360. # endif
  4361. }
  4362. bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  4363. {
  4364. return !operator==( rhs );
  4365. }
  4366. # endif
  4367. public:
  4368. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
  4369. void * pNext = {};
  4370. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  4371. uint64_t externalFormat = {};
  4372. VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
  4373. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
  4374. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
  4375. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
  4376. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  4377. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  4378. };
  4379. template <>
  4380. struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatPropertiesANDROID>
  4381. {
  4382. using Type = AndroidHardwareBufferFormatPropertiesANDROID;
  4383. };
  4384. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  4385. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  4386. struct AndroidHardwareBufferFormatResolvePropertiesANDROID
  4387. {
  4388. using NativeType = VkAndroidHardwareBufferFormatResolvePropertiesANDROID;
  4389. static const bool allowDuplicate = false;
  4390. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID;
  4391. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4392. VULKAN_HPP_CONSTEXPR
  4393. AndroidHardwareBufferFormatResolvePropertiesANDROID( VULKAN_HPP_NAMESPACE::Format colorAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  4394. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4395. : pNext( pNext_ )
  4396. , colorAttachmentFormat( colorAttachmentFormat_ )
  4397. {
  4398. }
  4399. VULKAN_HPP_CONSTEXPR
  4400. AndroidHardwareBufferFormatResolvePropertiesANDROID( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4401. AndroidHardwareBufferFormatResolvePropertiesANDROID( VkAndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  4402. : AndroidHardwareBufferFormatResolvePropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferFormatResolvePropertiesANDROID const *>( &rhs ) )
  4403. {
  4404. }
  4405. AndroidHardwareBufferFormatResolvePropertiesANDROID &
  4406. operator=( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4407. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4408. AndroidHardwareBufferFormatResolvePropertiesANDROID & operator=( VkAndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  4409. {
  4410. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID const *>( &rhs );
  4411. return *this;
  4412. }
  4413. operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
  4414. {
  4415. return *reinterpret_cast<const VkAndroidHardwareBufferFormatResolvePropertiesANDROID *>( this );
  4416. }
  4417. operator VkAndroidHardwareBufferFormatResolvePropertiesANDROID &() VULKAN_HPP_NOEXCEPT
  4418. {
  4419. return *reinterpret_cast<VkAndroidHardwareBufferFormatResolvePropertiesANDROID *>( this );
  4420. }
  4421. # if defined( VULKAN_HPP_USE_REFLECT )
  4422. # if 14 <= VULKAN_HPP_CPP_VERSION
  4423. auto
  4424. # else
  4425. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Format const &>
  4426. # endif
  4427. reflect() const VULKAN_HPP_NOEXCEPT
  4428. {
  4429. return std::tie( sType, pNext, colorAttachmentFormat );
  4430. }
  4431. # endif
  4432. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4433. auto operator<=>( AndroidHardwareBufferFormatResolvePropertiesANDROID const & ) const = default;
  4434. # else
  4435. bool operator==( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  4436. {
  4437. # if defined( VULKAN_HPP_USE_REFLECT )
  4438. return this->reflect() == rhs.reflect();
  4439. # else
  4440. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( colorAttachmentFormat == rhs.colorAttachmentFormat );
  4441. # endif
  4442. }
  4443. bool operator!=( AndroidHardwareBufferFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  4444. {
  4445. return !operator==( rhs );
  4446. }
  4447. # endif
  4448. public:
  4449. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID;
  4450. void * pNext = {};
  4451. VULKAN_HPP_NAMESPACE::Format colorAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  4452. };
  4453. template <>
  4454. struct CppType<StructureType, StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID>
  4455. {
  4456. using Type = AndroidHardwareBufferFormatResolvePropertiesANDROID;
  4457. };
  4458. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  4459. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  4460. struct AndroidHardwareBufferPropertiesANDROID
  4461. {
  4462. using NativeType = VkAndroidHardwareBufferPropertiesANDROID;
  4463. static const bool allowDuplicate = false;
  4464. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
  4465. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4466. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {},
  4467. uint32_t memoryTypeBits_ = {},
  4468. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4469. : pNext( pNext_ )
  4470. , allocationSize( allocationSize_ )
  4471. , memoryTypeBits( memoryTypeBits_ )
  4472. {
  4473. }
  4474. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4475. AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  4476. : AndroidHardwareBufferPropertiesANDROID( *reinterpret_cast<AndroidHardwareBufferPropertiesANDROID const *>( &rhs ) )
  4477. {
  4478. }
  4479. AndroidHardwareBufferPropertiesANDROID & operator=( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4480. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4481. AndroidHardwareBufferPropertiesANDROID & operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  4482. {
  4483. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID const *>( &rhs );
  4484. return *this;
  4485. }
  4486. operator VkAndroidHardwareBufferPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
  4487. {
  4488. return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID *>( this );
  4489. }
  4490. operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT
  4491. {
  4492. return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( this );
  4493. }
  4494. # if defined( VULKAN_HPP_USE_REFLECT )
  4495. # if 14 <= VULKAN_HPP_CPP_VERSION
  4496. auto
  4497. # else
  4498. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
  4499. # endif
  4500. reflect() const VULKAN_HPP_NOEXCEPT
  4501. {
  4502. return std::tie( sType, pNext, allocationSize, memoryTypeBits );
  4503. }
  4504. # endif
  4505. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4506. auto operator<=>( AndroidHardwareBufferPropertiesANDROID const & ) const = default;
  4507. # else
  4508. bool operator==( AndroidHardwareBufferPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  4509. {
  4510. # if defined( VULKAN_HPP_USE_REFLECT )
  4511. return this->reflect() == rhs.reflect();
  4512. # else
  4513. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( allocationSize == rhs.allocationSize ) && ( memoryTypeBits == rhs.memoryTypeBits );
  4514. # endif
  4515. }
  4516. bool operator!=( AndroidHardwareBufferPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  4517. {
  4518. return !operator==( rhs );
  4519. }
  4520. # endif
  4521. public:
  4522. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
  4523. void * pNext = {};
  4524. VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
  4525. uint32_t memoryTypeBits = {};
  4526. };
  4527. template <>
  4528. struct CppType<StructureType, StructureType::eAndroidHardwareBufferPropertiesANDROID>
  4529. {
  4530. using Type = AndroidHardwareBufferPropertiesANDROID;
  4531. };
  4532. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  4533. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  4534. struct AndroidHardwareBufferUsageANDROID
  4535. {
  4536. using NativeType = VkAndroidHardwareBufferUsageANDROID;
  4537. static const bool allowDuplicate = false;
  4538. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferUsageANDROID;
  4539. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4540. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( uint64_t androidHardwareBufferUsage_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4541. : pNext( pNext_ )
  4542. , androidHardwareBufferUsage( androidHardwareBufferUsage_ )
  4543. {
  4544. }
  4545. VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4546. AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  4547. : AndroidHardwareBufferUsageANDROID( *reinterpret_cast<AndroidHardwareBufferUsageANDROID const *>( &rhs ) )
  4548. {
  4549. }
  4550. AndroidHardwareBufferUsageANDROID & operator=( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4551. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4552. AndroidHardwareBufferUsageANDROID & operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  4553. {
  4554. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID const *>( &rhs );
  4555. return *this;
  4556. }
  4557. operator VkAndroidHardwareBufferUsageANDROID const &() const VULKAN_HPP_NOEXCEPT
  4558. {
  4559. return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID *>( this );
  4560. }
  4561. operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT
  4562. {
  4563. return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID *>( this );
  4564. }
  4565. # if defined( VULKAN_HPP_USE_REFLECT )
  4566. # if 14 <= VULKAN_HPP_CPP_VERSION
  4567. auto
  4568. # else
  4569. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
  4570. # endif
  4571. reflect() const VULKAN_HPP_NOEXCEPT
  4572. {
  4573. return std::tie( sType, pNext, androidHardwareBufferUsage );
  4574. }
  4575. # endif
  4576. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4577. auto operator<=>( AndroidHardwareBufferUsageANDROID const & ) const = default;
  4578. # else
  4579. bool operator==( AndroidHardwareBufferUsageANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  4580. {
  4581. # if defined( VULKAN_HPP_USE_REFLECT )
  4582. return this->reflect() == rhs.reflect();
  4583. # else
  4584. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage );
  4585. # endif
  4586. }
  4587. bool operator!=( AndroidHardwareBufferUsageANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  4588. {
  4589. return !operator==( rhs );
  4590. }
  4591. # endif
  4592. public:
  4593. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID;
  4594. void * pNext = {};
  4595. uint64_t androidHardwareBufferUsage = {};
  4596. };
  4597. template <>
  4598. struct CppType<StructureType, StructureType::eAndroidHardwareBufferUsageANDROID>
  4599. {
  4600. using Type = AndroidHardwareBufferUsageANDROID;
  4601. };
  4602. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  4603. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  4604. struct AndroidSurfaceCreateInfoKHR
  4605. {
  4606. using NativeType = VkAndroidSurfaceCreateInfoKHR;
  4607. static const bool allowDuplicate = false;
  4608. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidSurfaceCreateInfoKHR;
  4609. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4610. VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {},
  4611. struct ANativeWindow * window_ = {},
  4612. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4613. : pNext( pNext_ )
  4614. , flags( flags_ )
  4615. , window( window_ )
  4616. {
  4617. }
  4618. VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4619. AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  4620. : AndroidSurfaceCreateInfoKHR( *reinterpret_cast<AndroidSurfaceCreateInfoKHR const *>( &rhs ) )
  4621. {
  4622. }
  4623. AndroidSurfaceCreateInfoKHR & operator=( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4624. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4625. AndroidSurfaceCreateInfoKHR & operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  4626. {
  4627. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const *>( &rhs );
  4628. return *this;
  4629. }
  4630. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4631. VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  4632. {
  4633. pNext = pNext_;
  4634. return *this;
  4635. }
  4636. VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  4637. {
  4638. flags = flags_;
  4639. return *this;
  4640. }
  4641. VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow * window_ ) VULKAN_HPP_NOEXCEPT
  4642. {
  4643. window = window_;
  4644. return *this;
  4645. }
  4646. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4647. operator VkAndroidSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  4648. {
  4649. return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( this );
  4650. }
  4651. operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  4652. {
  4653. return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR *>( this );
  4654. }
  4655. # if defined( VULKAN_HPP_USE_REFLECT )
  4656. # if 14 <= VULKAN_HPP_CPP_VERSION
  4657. auto
  4658. # else
  4659. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  4660. const void * const &,
  4661. VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR const &,
  4662. struct ANativeWindow * const &>
  4663. # endif
  4664. reflect() const VULKAN_HPP_NOEXCEPT
  4665. {
  4666. return std::tie( sType, pNext, flags, window );
  4667. }
  4668. # endif
  4669. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4670. auto operator<=>( AndroidSurfaceCreateInfoKHR const & ) const = default;
  4671. # else
  4672. bool operator==( AndroidSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  4673. {
  4674. # if defined( VULKAN_HPP_USE_REFLECT )
  4675. return this->reflect() == rhs.reflect();
  4676. # else
  4677. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( window == rhs.window );
  4678. # endif
  4679. }
  4680. bool operator!=( AndroidSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  4681. {
  4682. return !operator==( rhs );
  4683. }
  4684. # endif
  4685. public:
  4686. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR;
  4687. const void * pNext = {};
  4688. VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {};
  4689. struct ANativeWindow * window = {};
  4690. };
  4691. template <>
  4692. struct CppType<StructureType, StructureType::eAndroidSurfaceCreateInfoKHR>
  4693. {
  4694. using Type = AndroidSurfaceCreateInfoKHR;
  4695. };
  4696. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  4697. struct ApplicationInfo
  4698. {
  4699. using NativeType = VkApplicationInfo;
  4700. static const bool allowDuplicate = false;
  4701. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eApplicationInfo;
  4702. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4703. VULKAN_HPP_CONSTEXPR ApplicationInfo( const char * pApplicationName_ = {},
  4704. uint32_t applicationVersion_ = {},
  4705. const char * pEngineName_ = {},
  4706. uint32_t engineVersion_ = {},
  4707. uint32_t apiVersion_ = {},
  4708. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4709. : pNext( pNext_ )
  4710. , pApplicationName( pApplicationName_ )
  4711. , applicationVersion( applicationVersion_ )
  4712. , pEngineName( pEngineName_ )
  4713. , engineVersion( engineVersion_ )
  4714. , apiVersion( apiVersion_ )
  4715. {
  4716. }
  4717. VULKAN_HPP_CONSTEXPR ApplicationInfo( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4718. ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT : ApplicationInfo( *reinterpret_cast<ApplicationInfo const *>( &rhs ) ) {}
  4719. ApplicationInfo & operator=( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4720. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4721. ApplicationInfo & operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  4722. {
  4723. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ApplicationInfo const *>( &rhs );
  4724. return *this;
  4725. }
  4726. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4727. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  4728. {
  4729. pNext = pNext_;
  4730. return *this;
  4731. }
  4732. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setPApplicationName( const char * pApplicationName_ ) VULKAN_HPP_NOEXCEPT
  4733. {
  4734. pApplicationName = pApplicationName_;
  4735. return *this;
  4736. }
  4737. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT
  4738. {
  4739. applicationVersion = applicationVersion_;
  4740. return *this;
  4741. }
  4742. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setPEngineName( const char * pEngineName_ ) VULKAN_HPP_NOEXCEPT
  4743. {
  4744. pEngineName = pEngineName_;
  4745. return *this;
  4746. }
  4747. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT
  4748. {
  4749. engineVersion = engineVersion_;
  4750. return *this;
  4751. }
  4752. VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT
  4753. {
  4754. apiVersion = apiVersion_;
  4755. return *this;
  4756. }
  4757. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4758. operator VkApplicationInfo const &() const VULKAN_HPP_NOEXCEPT
  4759. {
  4760. return *reinterpret_cast<const VkApplicationInfo *>( this );
  4761. }
  4762. operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT
  4763. {
  4764. return *reinterpret_cast<VkApplicationInfo *>( this );
  4765. }
  4766. #if defined( VULKAN_HPP_USE_REFLECT )
  4767. # if 14 <= VULKAN_HPP_CPP_VERSION
  4768. auto
  4769. # else
  4770. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  4771. const void * const &,
  4772. const char * const &,
  4773. uint32_t const &,
  4774. const char * const &,
  4775. uint32_t const &,
  4776. uint32_t const &>
  4777. # endif
  4778. reflect() const VULKAN_HPP_NOEXCEPT
  4779. {
  4780. return std::tie( sType, pNext, pApplicationName, applicationVersion, pEngineName, engineVersion, apiVersion );
  4781. }
  4782. #endif
  4783. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4784. std::strong_ordering operator<=>( ApplicationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  4785. {
  4786. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  4787. return cmp;
  4788. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  4789. return cmp;
  4790. if ( pApplicationName != rhs.pApplicationName )
  4791. if ( auto cmp = strcmp( pApplicationName, rhs.pApplicationName ); cmp != 0 )
  4792. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  4793. if ( auto cmp = applicationVersion <=> rhs.applicationVersion; cmp != 0 )
  4794. return cmp;
  4795. if ( pEngineName != rhs.pEngineName )
  4796. if ( auto cmp = strcmp( pEngineName, rhs.pEngineName ); cmp != 0 )
  4797. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  4798. if ( auto cmp = engineVersion <=> rhs.engineVersion; cmp != 0 )
  4799. return cmp;
  4800. if ( auto cmp = apiVersion <=> rhs.apiVersion; cmp != 0 )
  4801. return cmp;
  4802. return std::strong_ordering::equivalent;
  4803. }
  4804. #endif
  4805. bool operator==( ApplicationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  4806. {
  4807. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  4808. ( ( pApplicationName == rhs.pApplicationName ) || ( strcmp( pApplicationName, rhs.pApplicationName ) == 0 ) ) &&
  4809. ( applicationVersion == rhs.applicationVersion ) && ( ( pEngineName == rhs.pEngineName ) || ( strcmp( pEngineName, rhs.pEngineName ) == 0 ) ) &&
  4810. ( engineVersion == rhs.engineVersion ) && ( apiVersion == rhs.apiVersion );
  4811. }
  4812. bool operator!=( ApplicationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  4813. {
  4814. return !operator==( rhs );
  4815. }
  4816. public:
  4817. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo;
  4818. const void * pNext = {};
  4819. const char * pApplicationName = {};
  4820. uint32_t applicationVersion = {};
  4821. const char * pEngineName = {};
  4822. uint32_t engineVersion = {};
  4823. uint32_t apiVersion = {};
  4824. };
  4825. template <>
  4826. struct CppType<StructureType, StructureType::eApplicationInfo>
  4827. {
  4828. using Type = ApplicationInfo;
  4829. };
  4830. struct AttachmentDescription
  4831. {
  4832. using NativeType = VkAttachmentDescription;
  4833. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4834. VULKAN_HPP_CONSTEXPR
  4835. AttachmentDescription( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {},
  4836. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  4837. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  4838. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
  4839. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
  4840. VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
  4841. VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
  4842. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  4843. VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
  4844. : flags( flags_ )
  4845. , format( format_ )
  4846. , samples( samples_ )
  4847. , loadOp( loadOp_ )
  4848. , storeOp( storeOp_ )
  4849. , stencilLoadOp( stencilLoadOp_ )
  4850. , stencilStoreOp( stencilStoreOp_ )
  4851. , initialLayout( initialLayout_ )
  4852. , finalLayout( finalLayout_ )
  4853. {
  4854. }
  4855. VULKAN_HPP_CONSTEXPR AttachmentDescription( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4856. AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  4857. : AttachmentDescription( *reinterpret_cast<AttachmentDescription const *>( &rhs ) )
  4858. {
  4859. }
  4860. AttachmentDescription & operator=( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4861. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  4862. AttachmentDescription & operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  4863. {
  4864. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription const *>( &rhs );
  4865. return *this;
  4866. }
  4867. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  4868. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
  4869. {
  4870. flags = flags_;
  4871. return *this;
  4872. }
  4873. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  4874. {
  4875. format = format_;
  4876. return *this;
  4877. }
  4878. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
  4879. {
  4880. samples = samples_;
  4881. return *this;
  4882. }
  4883. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
  4884. {
  4885. loadOp = loadOp_;
  4886. return *this;
  4887. }
  4888. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
  4889. {
  4890. storeOp = storeOp_;
  4891. return *this;
  4892. }
  4893. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
  4894. {
  4895. stencilLoadOp = stencilLoadOp_;
  4896. return *this;
  4897. }
  4898. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
  4899. {
  4900. stencilStoreOp = stencilStoreOp_;
  4901. return *this;
  4902. }
  4903. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
  4904. {
  4905. initialLayout = initialLayout_;
  4906. return *this;
  4907. }
  4908. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
  4909. {
  4910. finalLayout = finalLayout_;
  4911. return *this;
  4912. }
  4913. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  4914. operator VkAttachmentDescription const &() const VULKAN_HPP_NOEXCEPT
  4915. {
  4916. return *reinterpret_cast<const VkAttachmentDescription *>( this );
  4917. }
  4918. operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT
  4919. {
  4920. return *reinterpret_cast<VkAttachmentDescription *>( this );
  4921. }
  4922. #if defined( VULKAN_HPP_USE_REFLECT )
  4923. # if 14 <= VULKAN_HPP_CPP_VERSION
  4924. auto
  4925. # else
  4926. std::tuple<VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags const &,
  4927. VULKAN_HPP_NAMESPACE::Format const &,
  4928. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  4929. VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &,
  4930. VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &,
  4931. VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &,
  4932. VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &,
  4933. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  4934. VULKAN_HPP_NAMESPACE::ImageLayout const &>
  4935. # endif
  4936. reflect() const VULKAN_HPP_NOEXCEPT
  4937. {
  4938. return std::tie( flags, format, samples, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalLayout );
  4939. }
  4940. #endif
  4941. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  4942. auto operator<=>( AttachmentDescription const & ) const = default;
  4943. #else
  4944. bool operator==( AttachmentDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  4945. {
  4946. # if defined( VULKAN_HPP_USE_REFLECT )
  4947. return this->reflect() == rhs.reflect();
  4948. # else
  4949. return ( flags == rhs.flags ) && ( format == rhs.format ) && ( samples == rhs.samples ) && ( loadOp == rhs.loadOp ) && ( storeOp == rhs.storeOp ) &&
  4950. ( stencilLoadOp == rhs.stencilLoadOp ) && ( stencilStoreOp == rhs.stencilStoreOp ) && ( initialLayout == rhs.initialLayout ) &&
  4951. ( finalLayout == rhs.finalLayout );
  4952. # endif
  4953. }
  4954. bool operator!=( AttachmentDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  4955. {
  4956. return !operator==( rhs );
  4957. }
  4958. #endif
  4959. public:
  4960. VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
  4961. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  4962. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  4963. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
  4964. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
  4965. VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
  4966. VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
  4967. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  4968. VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  4969. };
  4970. struct AttachmentDescription2
  4971. {
  4972. using NativeType = VkAttachmentDescription2;
  4973. static const bool allowDuplicate = false;
  4974. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescription2;
  4975. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  4976. VULKAN_HPP_CONSTEXPR AttachmentDescription2( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {},
  4977. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  4978. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  4979. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
  4980. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
  4981. VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
  4982. VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
  4983. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  4984. VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  4985. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  4986. : pNext( pNext_ )
  4987. , flags( flags_ )
  4988. , format( format_ )
  4989. , samples( samples_ )
  4990. , loadOp( loadOp_ )
  4991. , storeOp( storeOp_ )
  4992. , stencilLoadOp( stencilLoadOp_ )
  4993. , stencilStoreOp( stencilStoreOp_ )
  4994. , initialLayout( initialLayout_ )
  4995. , finalLayout( finalLayout_ )
  4996. {
  4997. }
  4998. VULKAN_HPP_CONSTEXPR AttachmentDescription2( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  4999. AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
  5000. : AttachmentDescription2( *reinterpret_cast<AttachmentDescription2 const *>( &rhs ) )
  5001. {
  5002. }
  5003. AttachmentDescription2 & operator=( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5004. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5005. AttachmentDescription2 & operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
  5006. {
  5007. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescription2 const *>( &rhs );
  5008. return *this;
  5009. }
  5010. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5011. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  5012. {
  5013. pNext = pNext_;
  5014. return *this;
  5015. }
  5016. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
  5017. {
  5018. flags = flags_;
  5019. return *this;
  5020. }
  5021. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  5022. {
  5023. format = format_;
  5024. return *this;
  5025. }
  5026. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
  5027. {
  5028. samples = samples_;
  5029. return *this;
  5030. }
  5031. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
  5032. {
  5033. loadOp = loadOp_;
  5034. return *this;
  5035. }
  5036. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
  5037. {
  5038. storeOp = storeOp_;
  5039. return *this;
  5040. }
  5041. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT
  5042. {
  5043. stencilLoadOp = stencilLoadOp_;
  5044. return *this;
  5045. }
  5046. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT
  5047. {
  5048. stencilStoreOp = stencilStoreOp_;
  5049. return *this;
  5050. }
  5051. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
  5052. {
  5053. initialLayout = initialLayout_;
  5054. return *this;
  5055. }
  5056. VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT
  5057. {
  5058. finalLayout = finalLayout_;
  5059. return *this;
  5060. }
  5061. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5062. operator VkAttachmentDescription2 const &() const VULKAN_HPP_NOEXCEPT
  5063. {
  5064. return *reinterpret_cast<const VkAttachmentDescription2 *>( this );
  5065. }
  5066. operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT
  5067. {
  5068. return *reinterpret_cast<VkAttachmentDescription2 *>( this );
  5069. }
  5070. #if defined( VULKAN_HPP_USE_REFLECT )
  5071. # if 14 <= VULKAN_HPP_CPP_VERSION
  5072. auto
  5073. # else
  5074. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  5075. const void * const &,
  5076. VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags const &,
  5077. VULKAN_HPP_NAMESPACE::Format const &,
  5078. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  5079. VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &,
  5080. VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &,
  5081. VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &,
  5082. VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &,
  5083. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  5084. VULKAN_HPP_NAMESPACE::ImageLayout const &>
  5085. # endif
  5086. reflect() const VULKAN_HPP_NOEXCEPT
  5087. {
  5088. return std::tie( sType, pNext, flags, format, samples, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalLayout );
  5089. }
  5090. #endif
  5091. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5092. auto operator<=>( AttachmentDescription2 const & ) const = default;
  5093. #else
  5094. bool operator==( AttachmentDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  5095. {
  5096. # if defined( VULKAN_HPP_USE_REFLECT )
  5097. return this->reflect() == rhs.reflect();
  5098. # else
  5099. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( format == rhs.format ) && ( samples == rhs.samples ) &&
  5100. ( loadOp == rhs.loadOp ) && ( storeOp == rhs.storeOp ) && ( stencilLoadOp == rhs.stencilLoadOp ) && ( stencilStoreOp == rhs.stencilStoreOp ) &&
  5101. ( initialLayout == rhs.initialLayout ) && ( finalLayout == rhs.finalLayout );
  5102. # endif
  5103. }
  5104. bool operator!=( AttachmentDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  5105. {
  5106. return !operator==( rhs );
  5107. }
  5108. #endif
  5109. public:
  5110. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2;
  5111. const void * pNext = {};
  5112. VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {};
  5113. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  5114. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  5115. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
  5116. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
  5117. VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
  5118. VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
  5119. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  5120. VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  5121. };
  5122. template <>
  5123. struct CppType<StructureType, StructureType::eAttachmentDescription2>
  5124. {
  5125. using Type = AttachmentDescription2;
  5126. };
  5127. using AttachmentDescription2KHR = AttachmentDescription2;
  5128. struct AttachmentDescriptionStencilLayout
  5129. {
  5130. using NativeType = VkAttachmentDescriptionStencilLayout;
  5131. static const bool allowDuplicate = false;
  5132. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescriptionStencilLayout;
  5133. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5134. VULKAN_HPP_CONSTEXPR
  5135. AttachmentDescriptionStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  5136. VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  5137. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5138. : pNext( pNext_ )
  5139. , stencilInitialLayout( stencilInitialLayout_ )
  5140. , stencilFinalLayout( stencilFinalLayout_ )
  5141. {
  5142. }
  5143. VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5144. AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
  5145. : AttachmentDescriptionStencilLayout( *reinterpret_cast<AttachmentDescriptionStencilLayout const *>( &rhs ) )
  5146. {
  5147. }
  5148. AttachmentDescriptionStencilLayout & operator=( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5149. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5150. AttachmentDescriptionStencilLayout & operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
  5151. {
  5152. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout const *>( &rhs );
  5153. return *this;
  5154. }
  5155. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5156. VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  5157. {
  5158. pNext = pNext_;
  5159. return *this;
  5160. }
  5161. VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout &
  5162. setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT
  5163. {
  5164. stencilInitialLayout = stencilInitialLayout_;
  5165. return *this;
  5166. }
  5167. VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout &
  5168. setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT
  5169. {
  5170. stencilFinalLayout = stencilFinalLayout_;
  5171. return *this;
  5172. }
  5173. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5174. operator VkAttachmentDescriptionStencilLayout const &() const VULKAN_HPP_NOEXCEPT
  5175. {
  5176. return *reinterpret_cast<const VkAttachmentDescriptionStencilLayout *>( this );
  5177. }
  5178. operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT
  5179. {
  5180. return *reinterpret_cast<VkAttachmentDescriptionStencilLayout *>( this );
  5181. }
  5182. #if defined( VULKAN_HPP_USE_REFLECT )
  5183. # if 14 <= VULKAN_HPP_CPP_VERSION
  5184. auto
  5185. # else
  5186. std::
  5187. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageLayout const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
  5188. # endif
  5189. reflect() const VULKAN_HPP_NOEXCEPT
  5190. {
  5191. return std::tie( sType, pNext, stencilInitialLayout, stencilFinalLayout );
  5192. }
  5193. #endif
  5194. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5195. auto operator<=>( AttachmentDescriptionStencilLayout const & ) const = default;
  5196. #else
  5197. bool operator==( AttachmentDescriptionStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  5198. {
  5199. # if defined( VULKAN_HPP_USE_REFLECT )
  5200. return this->reflect() == rhs.reflect();
  5201. # else
  5202. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stencilInitialLayout == rhs.stencilInitialLayout ) &&
  5203. ( stencilFinalLayout == rhs.stencilFinalLayout );
  5204. # endif
  5205. }
  5206. bool operator!=( AttachmentDescriptionStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  5207. {
  5208. return !operator==( rhs );
  5209. }
  5210. #endif
  5211. public:
  5212. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout;
  5213. void * pNext = {};
  5214. VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  5215. VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  5216. };
  5217. template <>
  5218. struct CppType<StructureType, StructureType::eAttachmentDescriptionStencilLayout>
  5219. {
  5220. using Type = AttachmentDescriptionStencilLayout;
  5221. };
  5222. using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
  5223. struct AttachmentReference
  5224. {
  5225. using NativeType = VkAttachmentReference;
  5226. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5227. VULKAN_HPP_CONSTEXPR AttachmentReference( uint32_t attachment_ = {},
  5228. VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
  5229. : attachment( attachment_ )
  5230. , layout( layout_ )
  5231. {
  5232. }
  5233. VULKAN_HPP_CONSTEXPR AttachmentReference( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5234. AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT : AttachmentReference( *reinterpret_cast<AttachmentReference const *>( &rhs ) )
  5235. {
  5236. }
  5237. AttachmentReference & operator=( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5238. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5239. AttachmentReference & operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT
  5240. {
  5241. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference const *>( &rhs );
  5242. return *this;
  5243. }
  5244. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5245. VULKAN_HPP_CONSTEXPR_14 AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
  5246. {
  5247. attachment = attachment_;
  5248. return *this;
  5249. }
  5250. VULKAN_HPP_CONSTEXPR_14 AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
  5251. {
  5252. layout = layout_;
  5253. return *this;
  5254. }
  5255. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5256. operator VkAttachmentReference const &() const VULKAN_HPP_NOEXCEPT
  5257. {
  5258. return *reinterpret_cast<const VkAttachmentReference *>( this );
  5259. }
  5260. operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT
  5261. {
  5262. return *reinterpret_cast<VkAttachmentReference *>( this );
  5263. }
  5264. #if defined( VULKAN_HPP_USE_REFLECT )
  5265. # if 14 <= VULKAN_HPP_CPP_VERSION
  5266. auto
  5267. # else
  5268. std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
  5269. # endif
  5270. reflect() const VULKAN_HPP_NOEXCEPT
  5271. {
  5272. return std::tie( attachment, layout );
  5273. }
  5274. #endif
  5275. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5276. auto operator<=>( AttachmentReference const & ) const = default;
  5277. #else
  5278. bool operator==( AttachmentReference const & rhs ) const VULKAN_HPP_NOEXCEPT
  5279. {
  5280. # if defined( VULKAN_HPP_USE_REFLECT )
  5281. return this->reflect() == rhs.reflect();
  5282. # else
  5283. return ( attachment == rhs.attachment ) && ( layout == rhs.layout );
  5284. # endif
  5285. }
  5286. bool operator!=( AttachmentReference const & rhs ) const VULKAN_HPP_NOEXCEPT
  5287. {
  5288. return !operator==( rhs );
  5289. }
  5290. #endif
  5291. public:
  5292. uint32_t attachment = {};
  5293. VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  5294. };
  5295. struct AttachmentReference2
  5296. {
  5297. using NativeType = VkAttachmentReference2;
  5298. static const bool allowDuplicate = false;
  5299. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReference2;
  5300. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5301. VULKAN_HPP_CONSTEXPR AttachmentReference2( uint32_t attachment_ = {},
  5302. VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  5303. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
  5304. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5305. : pNext( pNext_ )
  5306. , attachment( attachment_ )
  5307. , layout( layout_ )
  5308. , aspectMask( aspectMask_ )
  5309. {
  5310. }
  5311. VULKAN_HPP_CONSTEXPR AttachmentReference2( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5312. AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
  5313. : AttachmentReference2( *reinterpret_cast<AttachmentReference2 const *>( &rhs ) )
  5314. {
  5315. }
  5316. AttachmentReference2 & operator=( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5317. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5318. AttachmentReference2 & operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT
  5319. {
  5320. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReference2 const *>( &rhs );
  5321. return *this;
  5322. }
  5323. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5324. VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  5325. {
  5326. pNext = pNext_;
  5327. return *this;
  5328. }
  5329. VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT
  5330. {
  5331. attachment = attachment_;
  5332. return *this;
  5333. }
  5334. VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT
  5335. {
  5336. layout = layout_;
  5337. return *this;
  5338. }
  5339. VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  5340. {
  5341. aspectMask = aspectMask_;
  5342. return *this;
  5343. }
  5344. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5345. operator VkAttachmentReference2 const &() const VULKAN_HPP_NOEXCEPT
  5346. {
  5347. return *reinterpret_cast<const VkAttachmentReference2 *>( this );
  5348. }
  5349. operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT
  5350. {
  5351. return *reinterpret_cast<VkAttachmentReference2 *>( this );
  5352. }
  5353. #if defined( VULKAN_HPP_USE_REFLECT )
  5354. # if 14 <= VULKAN_HPP_CPP_VERSION
  5355. auto
  5356. # else
  5357. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  5358. const void * const &,
  5359. uint32_t const &,
  5360. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  5361. VULKAN_HPP_NAMESPACE::ImageAspectFlags const &>
  5362. # endif
  5363. reflect() const VULKAN_HPP_NOEXCEPT
  5364. {
  5365. return std::tie( sType, pNext, attachment, layout, aspectMask );
  5366. }
  5367. #endif
  5368. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5369. auto operator<=>( AttachmentReference2 const & ) const = default;
  5370. #else
  5371. bool operator==( AttachmentReference2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  5372. {
  5373. # if defined( VULKAN_HPP_USE_REFLECT )
  5374. return this->reflect() == rhs.reflect();
  5375. # else
  5376. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachment == rhs.attachment ) && ( layout == rhs.layout ) &&
  5377. ( aspectMask == rhs.aspectMask );
  5378. # endif
  5379. }
  5380. bool operator!=( AttachmentReference2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  5381. {
  5382. return !operator==( rhs );
  5383. }
  5384. #endif
  5385. public:
  5386. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2;
  5387. const void * pNext = {};
  5388. uint32_t attachment = {};
  5389. VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  5390. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  5391. };
  5392. template <>
  5393. struct CppType<StructureType, StructureType::eAttachmentReference2>
  5394. {
  5395. using Type = AttachmentReference2;
  5396. };
  5397. using AttachmentReference2KHR = AttachmentReference2;
  5398. struct AttachmentReferenceStencilLayout
  5399. {
  5400. using NativeType = VkAttachmentReferenceStencilLayout;
  5401. static const bool allowDuplicate = false;
  5402. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReferenceStencilLayout;
  5403. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5404. VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  5405. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5406. : pNext( pNext_ )
  5407. , stencilLayout( stencilLayout_ )
  5408. {
  5409. }
  5410. VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5411. AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
  5412. : AttachmentReferenceStencilLayout( *reinterpret_cast<AttachmentReferenceStencilLayout const *>( &rhs ) )
  5413. {
  5414. }
  5415. AttachmentReferenceStencilLayout & operator=( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5416. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5417. AttachmentReferenceStencilLayout & operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT
  5418. {
  5419. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout const *>( &rhs );
  5420. return *this;
  5421. }
  5422. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5423. VULKAN_HPP_CONSTEXPR_14 AttachmentReferenceStencilLayout & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  5424. {
  5425. pNext = pNext_;
  5426. return *this;
  5427. }
  5428. VULKAN_HPP_CONSTEXPR_14 AttachmentReferenceStencilLayout & setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT
  5429. {
  5430. stencilLayout = stencilLayout_;
  5431. return *this;
  5432. }
  5433. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5434. operator VkAttachmentReferenceStencilLayout const &() const VULKAN_HPP_NOEXCEPT
  5435. {
  5436. return *reinterpret_cast<const VkAttachmentReferenceStencilLayout *>( this );
  5437. }
  5438. operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT
  5439. {
  5440. return *reinterpret_cast<VkAttachmentReferenceStencilLayout *>( this );
  5441. }
  5442. #if defined( VULKAN_HPP_USE_REFLECT )
  5443. # if 14 <= VULKAN_HPP_CPP_VERSION
  5444. auto
  5445. # else
  5446. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
  5447. # endif
  5448. reflect() const VULKAN_HPP_NOEXCEPT
  5449. {
  5450. return std::tie( sType, pNext, stencilLayout );
  5451. }
  5452. #endif
  5453. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5454. auto operator<=>( AttachmentReferenceStencilLayout const & ) const = default;
  5455. #else
  5456. bool operator==( AttachmentReferenceStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  5457. {
  5458. # if defined( VULKAN_HPP_USE_REFLECT )
  5459. return this->reflect() == rhs.reflect();
  5460. # else
  5461. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stencilLayout == rhs.stencilLayout );
  5462. # endif
  5463. }
  5464. bool operator!=( AttachmentReferenceStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  5465. {
  5466. return !operator==( rhs );
  5467. }
  5468. #endif
  5469. public:
  5470. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout;
  5471. void * pNext = {};
  5472. VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  5473. };
  5474. template <>
  5475. struct CppType<StructureType, StructureType::eAttachmentReferenceStencilLayout>
  5476. {
  5477. using Type = AttachmentReferenceStencilLayout;
  5478. };
  5479. using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
  5480. struct AttachmentSampleCountInfoAMD
  5481. {
  5482. using NativeType = VkAttachmentSampleCountInfoAMD;
  5483. static const bool allowDuplicate = false;
  5484. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentSampleCountInfoAMD;
  5485. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5486. VULKAN_HPP_CONSTEXPR
  5487. AttachmentSampleCountInfoAMD( uint32_t colorAttachmentCount_ = {},
  5488. const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples_ = {},
  5489. VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  5490. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5491. : pNext( pNext_ )
  5492. , colorAttachmentCount( colorAttachmentCount_ )
  5493. , pColorAttachmentSamples( pColorAttachmentSamples_ )
  5494. , depthStencilAttachmentSamples( depthStencilAttachmentSamples_ )
  5495. {
  5496. }
  5497. VULKAN_HPP_CONSTEXPR AttachmentSampleCountInfoAMD( AttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5498. AttachmentSampleCountInfoAMD( VkAttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  5499. : AttachmentSampleCountInfoAMD( *reinterpret_cast<AttachmentSampleCountInfoAMD const *>( &rhs ) )
  5500. {
  5501. }
  5502. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5503. AttachmentSampleCountInfoAMD(
  5504. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleCountFlagBits> const & colorAttachmentSamples_,
  5505. VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  5506. const void * pNext_ = nullptr )
  5507. : pNext( pNext_ )
  5508. , colorAttachmentCount( static_cast<uint32_t>( colorAttachmentSamples_.size() ) )
  5509. , pColorAttachmentSamples( colorAttachmentSamples_.data() )
  5510. , depthStencilAttachmentSamples( depthStencilAttachmentSamples_ )
  5511. {
  5512. }
  5513. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5514. AttachmentSampleCountInfoAMD & operator=( AttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5515. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5516. AttachmentSampleCountInfoAMD & operator=( VkAttachmentSampleCountInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  5517. {
  5518. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD const *>( &rhs );
  5519. return *this;
  5520. }
  5521. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5522. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  5523. {
  5524. pNext = pNext_;
  5525. return *this;
  5526. }
  5527. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  5528. {
  5529. colorAttachmentCount = colorAttachmentCount_;
  5530. return *this;
  5531. }
  5532. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD &
  5533. setPColorAttachmentSamples( const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
  5534. {
  5535. pColorAttachmentSamples = pColorAttachmentSamples_;
  5536. return *this;
  5537. }
  5538. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5539. AttachmentSampleCountInfoAMD & setColorAttachmentSamples(
  5540. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleCountFlagBits> const & colorAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
  5541. {
  5542. colorAttachmentCount = static_cast<uint32_t>( colorAttachmentSamples_.size() );
  5543. pColorAttachmentSamples = colorAttachmentSamples_.data();
  5544. return *this;
  5545. }
  5546. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5547. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleCountInfoAMD &
  5548. setDepthStencilAttachmentSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples_ ) VULKAN_HPP_NOEXCEPT
  5549. {
  5550. depthStencilAttachmentSamples = depthStencilAttachmentSamples_;
  5551. return *this;
  5552. }
  5553. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5554. operator VkAttachmentSampleCountInfoAMD const &() const VULKAN_HPP_NOEXCEPT
  5555. {
  5556. return *reinterpret_cast<const VkAttachmentSampleCountInfoAMD *>( this );
  5557. }
  5558. operator VkAttachmentSampleCountInfoAMD &() VULKAN_HPP_NOEXCEPT
  5559. {
  5560. return *reinterpret_cast<VkAttachmentSampleCountInfoAMD *>( this );
  5561. }
  5562. #if defined( VULKAN_HPP_USE_REFLECT )
  5563. # if 14 <= VULKAN_HPP_CPP_VERSION
  5564. auto
  5565. # else
  5566. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  5567. const void * const &,
  5568. uint32_t const &,
  5569. const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * const &,
  5570. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
  5571. # endif
  5572. reflect() const VULKAN_HPP_NOEXCEPT
  5573. {
  5574. return std::tie( sType, pNext, colorAttachmentCount, pColorAttachmentSamples, depthStencilAttachmentSamples );
  5575. }
  5576. #endif
  5577. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5578. auto operator<=>( AttachmentSampleCountInfoAMD const & ) const = default;
  5579. #else
  5580. bool operator==( AttachmentSampleCountInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  5581. {
  5582. # if defined( VULKAN_HPP_USE_REFLECT )
  5583. return this->reflect() == rhs.reflect();
  5584. # else
  5585. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( colorAttachmentCount == rhs.colorAttachmentCount ) &&
  5586. ( pColorAttachmentSamples == rhs.pColorAttachmentSamples ) && ( depthStencilAttachmentSamples == rhs.depthStencilAttachmentSamples );
  5587. # endif
  5588. }
  5589. bool operator!=( AttachmentSampleCountInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  5590. {
  5591. return !operator==( rhs );
  5592. }
  5593. #endif
  5594. public:
  5595. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentSampleCountInfoAMD;
  5596. const void * pNext = {};
  5597. uint32_t colorAttachmentCount = {};
  5598. const VULKAN_HPP_NAMESPACE::SampleCountFlagBits * pColorAttachmentSamples = {};
  5599. VULKAN_HPP_NAMESPACE::SampleCountFlagBits depthStencilAttachmentSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  5600. };
  5601. template <>
  5602. struct CppType<StructureType, StructureType::eAttachmentSampleCountInfoAMD>
  5603. {
  5604. using Type = AttachmentSampleCountInfoAMD;
  5605. };
  5606. using AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD;
  5607. struct Extent2D
  5608. {
  5609. using NativeType = VkExtent2D;
  5610. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5611. VULKAN_HPP_CONSTEXPR Extent2D( uint32_t width_ = {}, uint32_t height_ = {} ) VULKAN_HPP_NOEXCEPT
  5612. : width( width_ )
  5613. , height( height_ )
  5614. {
  5615. }
  5616. VULKAN_HPP_CONSTEXPR Extent2D( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5617. Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT : Extent2D( *reinterpret_cast<Extent2D const *>( &rhs ) ) {}
  5618. Extent2D & operator=( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5619. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5620. Extent2D & operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT
  5621. {
  5622. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent2D const *>( &rhs );
  5623. return *this;
  5624. }
  5625. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5626. VULKAN_HPP_CONSTEXPR_14 Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  5627. {
  5628. width = width_;
  5629. return *this;
  5630. }
  5631. VULKAN_HPP_CONSTEXPR_14 Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  5632. {
  5633. height = height_;
  5634. return *this;
  5635. }
  5636. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5637. operator VkExtent2D const &() const VULKAN_HPP_NOEXCEPT
  5638. {
  5639. return *reinterpret_cast<const VkExtent2D *>( this );
  5640. }
  5641. operator VkExtent2D &() VULKAN_HPP_NOEXCEPT
  5642. {
  5643. return *reinterpret_cast<VkExtent2D *>( this );
  5644. }
  5645. #if defined( VULKAN_HPP_USE_REFLECT )
  5646. # if 14 <= VULKAN_HPP_CPP_VERSION
  5647. auto
  5648. # else
  5649. std::tuple<uint32_t const &, uint32_t const &>
  5650. # endif
  5651. reflect() const VULKAN_HPP_NOEXCEPT
  5652. {
  5653. return std::tie( width, height );
  5654. }
  5655. #endif
  5656. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5657. auto operator<=>( Extent2D const & ) const = default;
  5658. #else
  5659. bool operator==( Extent2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  5660. {
  5661. # if defined( VULKAN_HPP_USE_REFLECT )
  5662. return this->reflect() == rhs.reflect();
  5663. # else
  5664. return ( width == rhs.width ) && ( height == rhs.height );
  5665. # endif
  5666. }
  5667. bool operator!=( Extent2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  5668. {
  5669. return !operator==( rhs );
  5670. }
  5671. #endif
  5672. public:
  5673. uint32_t width = {};
  5674. uint32_t height = {};
  5675. };
  5676. struct SampleLocationEXT
  5677. {
  5678. using NativeType = VkSampleLocationEXT;
  5679. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5680. VULKAN_HPP_CONSTEXPR SampleLocationEXT( float x_ = {}, float y_ = {} ) VULKAN_HPP_NOEXCEPT
  5681. : x( x_ )
  5682. , y( y_ )
  5683. {
  5684. }
  5685. VULKAN_HPP_CONSTEXPR SampleLocationEXT( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5686. SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT : SampleLocationEXT( *reinterpret_cast<SampleLocationEXT const *>( &rhs ) ) {}
  5687. SampleLocationEXT & operator=( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5688. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5689. SampleLocationEXT & operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  5690. {
  5691. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationEXT const *>( &rhs );
  5692. return *this;
  5693. }
  5694. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5695. VULKAN_HPP_CONSTEXPR_14 SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
  5696. {
  5697. x = x_;
  5698. return *this;
  5699. }
  5700. VULKAN_HPP_CONSTEXPR_14 SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
  5701. {
  5702. y = y_;
  5703. return *this;
  5704. }
  5705. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5706. operator VkSampleLocationEXT const &() const VULKAN_HPP_NOEXCEPT
  5707. {
  5708. return *reinterpret_cast<const VkSampleLocationEXT *>( this );
  5709. }
  5710. operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT
  5711. {
  5712. return *reinterpret_cast<VkSampleLocationEXT *>( this );
  5713. }
  5714. #if defined( VULKAN_HPP_USE_REFLECT )
  5715. # if 14 <= VULKAN_HPP_CPP_VERSION
  5716. auto
  5717. # else
  5718. std::tuple<float const &, float const &>
  5719. # endif
  5720. reflect() const VULKAN_HPP_NOEXCEPT
  5721. {
  5722. return std::tie( x, y );
  5723. }
  5724. #endif
  5725. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5726. auto operator<=>( SampleLocationEXT const & ) const = default;
  5727. #else
  5728. bool operator==( SampleLocationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  5729. {
  5730. # if defined( VULKAN_HPP_USE_REFLECT )
  5731. return this->reflect() == rhs.reflect();
  5732. # else
  5733. return ( x == rhs.x ) && ( y == rhs.y );
  5734. # endif
  5735. }
  5736. bool operator!=( SampleLocationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  5737. {
  5738. return !operator==( rhs );
  5739. }
  5740. #endif
  5741. public:
  5742. float x = {};
  5743. float y = {};
  5744. };
  5745. struct SampleLocationsInfoEXT
  5746. {
  5747. using NativeType = VkSampleLocationsInfoEXT;
  5748. static const bool allowDuplicate = false;
  5749. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSampleLocationsInfoEXT;
  5750. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5751. VULKAN_HPP_CONSTEXPR
  5752. SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  5753. VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_ = {},
  5754. uint32_t sampleLocationsCount_ = {},
  5755. const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations_ = {},
  5756. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5757. : pNext( pNext_ )
  5758. , sampleLocationsPerPixel( sampleLocationsPerPixel_ )
  5759. , sampleLocationGridSize( sampleLocationGridSize_ )
  5760. , sampleLocationsCount( sampleLocationsCount_ )
  5761. , pSampleLocations( pSampleLocations_ )
  5762. {
  5763. }
  5764. VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5765. SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  5766. : SampleLocationsInfoEXT( *reinterpret_cast<SampleLocationsInfoEXT const *>( &rhs ) )
  5767. {
  5768. }
  5769. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5770. SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_,
  5771. VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_,
  5772. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_,
  5773. const void * pNext_ = nullptr )
  5774. : pNext( pNext_ )
  5775. , sampleLocationsPerPixel( sampleLocationsPerPixel_ )
  5776. , sampleLocationGridSize( sampleLocationGridSize_ )
  5777. , sampleLocationsCount( static_cast<uint32_t>( sampleLocations_.size() ) )
  5778. , pSampleLocations( sampleLocations_.data() )
  5779. {
  5780. }
  5781. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5782. SampleLocationsInfoEXT & operator=( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5783. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5784. SampleLocationsInfoEXT & operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  5785. {
  5786. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const *>( &rhs );
  5787. return *this;
  5788. }
  5789. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5790. VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  5791. {
  5792. pNext = pNext_;
  5793. return *this;
  5794. }
  5795. VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT &
  5796. setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT
  5797. {
  5798. sampleLocationsPerPixel = sampleLocationsPerPixel_;
  5799. return *this;
  5800. }
  5801. VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT &
  5802. setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT
  5803. {
  5804. sampleLocationGridSize = sampleLocationGridSize_;
  5805. return *this;
  5806. }
  5807. VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
  5808. {
  5809. sampleLocationsCount = sampleLocationsCount_;
  5810. return *this;
  5811. }
  5812. VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT &
  5813. setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
  5814. {
  5815. pSampleLocations = pSampleLocations_;
  5816. return *this;
  5817. }
  5818. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5819. SampleLocationsInfoEXT & setSampleLocations(
  5820. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SampleLocationEXT> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
  5821. {
  5822. sampleLocationsCount = static_cast<uint32_t>( sampleLocations_.size() );
  5823. pSampleLocations = sampleLocations_.data();
  5824. return *this;
  5825. }
  5826. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  5827. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5828. operator VkSampleLocationsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  5829. {
  5830. return *reinterpret_cast<const VkSampleLocationsInfoEXT *>( this );
  5831. }
  5832. operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT
  5833. {
  5834. return *reinterpret_cast<VkSampleLocationsInfoEXT *>( this );
  5835. }
  5836. #if defined( VULKAN_HPP_USE_REFLECT )
  5837. # if 14 <= VULKAN_HPP_CPP_VERSION
  5838. auto
  5839. # else
  5840. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  5841. const void * const &,
  5842. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  5843. VULKAN_HPP_NAMESPACE::Extent2D const &,
  5844. uint32_t const &,
  5845. const VULKAN_HPP_NAMESPACE::SampleLocationEXT * const &>
  5846. # endif
  5847. reflect() const VULKAN_HPP_NOEXCEPT
  5848. {
  5849. return std::tie( sType, pNext, sampleLocationsPerPixel, sampleLocationGridSize, sampleLocationsCount, pSampleLocations );
  5850. }
  5851. #endif
  5852. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5853. auto operator<=>( SampleLocationsInfoEXT const & ) const = default;
  5854. #else
  5855. bool operator==( SampleLocationsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  5856. {
  5857. # if defined( VULKAN_HPP_USE_REFLECT )
  5858. return this->reflect() == rhs.reflect();
  5859. # else
  5860. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel ) &&
  5861. ( sampleLocationGridSize == rhs.sampleLocationGridSize ) && ( sampleLocationsCount == rhs.sampleLocationsCount ) &&
  5862. ( pSampleLocations == rhs.pSampleLocations );
  5863. # endif
  5864. }
  5865. bool operator!=( SampleLocationsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  5866. {
  5867. return !operator==( rhs );
  5868. }
  5869. #endif
  5870. public:
  5871. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT;
  5872. const void * pNext = {};
  5873. VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  5874. VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {};
  5875. uint32_t sampleLocationsCount = {};
  5876. const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations = {};
  5877. };
  5878. template <>
  5879. struct CppType<StructureType, StructureType::eSampleLocationsInfoEXT>
  5880. {
  5881. using Type = SampleLocationsInfoEXT;
  5882. };
  5883. struct AttachmentSampleLocationsEXT
  5884. {
  5885. using NativeType = VkAttachmentSampleLocationsEXT;
  5886. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5887. VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( uint32_t attachmentIndex_ = {},
  5888. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT
  5889. : attachmentIndex( attachmentIndex_ )
  5890. , sampleLocationsInfo( sampleLocationsInfo_ )
  5891. {
  5892. }
  5893. VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5894. AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  5895. : AttachmentSampleLocationsEXT( *reinterpret_cast<AttachmentSampleLocationsEXT const *>( &rhs ) )
  5896. {
  5897. }
  5898. AttachmentSampleLocationsEXT & operator=( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5899. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5900. AttachmentSampleLocationsEXT & operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  5901. {
  5902. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT const *>( &rhs );
  5903. return *this;
  5904. }
  5905. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5906. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT
  5907. {
  5908. attachmentIndex = attachmentIndex_;
  5909. return *this;
  5910. }
  5911. VULKAN_HPP_CONSTEXPR_14 AttachmentSampleLocationsEXT &
  5912. setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
  5913. {
  5914. sampleLocationsInfo = sampleLocationsInfo_;
  5915. return *this;
  5916. }
  5917. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5918. operator VkAttachmentSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
  5919. {
  5920. return *reinterpret_cast<const VkAttachmentSampleLocationsEXT *>( this );
  5921. }
  5922. operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
  5923. {
  5924. return *reinterpret_cast<VkAttachmentSampleLocationsEXT *>( this );
  5925. }
  5926. #if defined( VULKAN_HPP_USE_REFLECT )
  5927. # if 14 <= VULKAN_HPP_CPP_VERSION
  5928. auto
  5929. # else
  5930. std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const &>
  5931. # endif
  5932. reflect() const VULKAN_HPP_NOEXCEPT
  5933. {
  5934. return std::tie( attachmentIndex, sampleLocationsInfo );
  5935. }
  5936. #endif
  5937. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  5938. auto operator<=>( AttachmentSampleLocationsEXT const & ) const = default;
  5939. #else
  5940. bool operator==( AttachmentSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  5941. {
  5942. # if defined( VULKAN_HPP_USE_REFLECT )
  5943. return this->reflect() == rhs.reflect();
  5944. # else
  5945. return ( attachmentIndex == rhs.attachmentIndex ) && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
  5946. # endif
  5947. }
  5948. bool operator!=( AttachmentSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  5949. {
  5950. return !operator==( rhs );
  5951. }
  5952. #endif
  5953. public:
  5954. uint32_t attachmentIndex = {};
  5955. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
  5956. };
  5957. struct BaseInStructure
  5958. {
  5959. using NativeType = VkBaseInStructure;
  5960. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  5961. BaseInStructure( VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo,
  5962. const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  5963. : sType( sType_ )
  5964. , pNext( pNext_ )
  5965. {
  5966. }
  5967. BaseInStructure( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5968. BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT : BaseInStructure( *reinterpret_cast<BaseInStructure const *>( &rhs ) ) {}
  5969. BaseInStructure & operator=( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  5970. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  5971. BaseInStructure & operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT
  5972. {
  5973. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseInStructure const *>( &rhs );
  5974. return *this;
  5975. }
  5976. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  5977. VULKAN_HPP_CONSTEXPR_14 BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext_ ) VULKAN_HPP_NOEXCEPT
  5978. {
  5979. pNext = pNext_;
  5980. return *this;
  5981. }
  5982. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  5983. operator VkBaseInStructure const &() const VULKAN_HPP_NOEXCEPT
  5984. {
  5985. return *reinterpret_cast<const VkBaseInStructure *>( this );
  5986. }
  5987. operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT
  5988. {
  5989. return *reinterpret_cast<VkBaseInStructure *>( this );
  5990. }
  5991. #if defined( VULKAN_HPP_USE_REFLECT )
  5992. # if 14 <= VULKAN_HPP_CPP_VERSION
  5993. auto
  5994. # else
  5995. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const struct VULKAN_HPP_NAMESPACE::BaseInStructure * const &>
  5996. # endif
  5997. reflect() const VULKAN_HPP_NOEXCEPT
  5998. {
  5999. return std::tie( sType, pNext );
  6000. }
  6001. #endif
  6002. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6003. auto operator<=>( BaseInStructure const & ) const = default;
  6004. #else
  6005. bool operator==( BaseInStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
  6006. {
  6007. # if defined( VULKAN_HPP_USE_REFLECT )
  6008. return this->reflect() == rhs.reflect();
  6009. # else
  6010. return ( sType == rhs.sType ) && ( pNext == rhs.pNext );
  6011. # endif
  6012. }
  6013. bool operator!=( BaseInStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
  6014. {
  6015. return !operator==( rhs );
  6016. }
  6017. #endif
  6018. public:
  6019. VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
  6020. const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext = {};
  6021. };
  6022. struct BaseOutStructure
  6023. {
  6024. using NativeType = VkBaseOutStructure;
  6025. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6026. BaseOutStructure( VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo,
  6027. struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  6028. : sType( sType_ )
  6029. , pNext( pNext_ )
  6030. {
  6031. }
  6032. BaseOutStructure( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6033. BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT : BaseOutStructure( *reinterpret_cast<BaseOutStructure const *>( &rhs ) ) {}
  6034. BaseOutStructure & operator=( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6035. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6036. BaseOutStructure & operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT
  6037. {
  6038. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BaseOutStructure const *>( &rhs );
  6039. return *this;
  6040. }
  6041. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6042. VULKAN_HPP_CONSTEXPR_14 BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext_ ) VULKAN_HPP_NOEXCEPT
  6043. {
  6044. pNext = pNext_;
  6045. return *this;
  6046. }
  6047. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6048. operator VkBaseOutStructure const &() const VULKAN_HPP_NOEXCEPT
  6049. {
  6050. return *reinterpret_cast<const VkBaseOutStructure *>( this );
  6051. }
  6052. operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT
  6053. {
  6054. return *reinterpret_cast<VkBaseOutStructure *>( this );
  6055. }
  6056. #if defined( VULKAN_HPP_USE_REFLECT )
  6057. # if 14 <= VULKAN_HPP_CPP_VERSION
  6058. auto
  6059. # else
  6060. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, struct VULKAN_HPP_NAMESPACE::BaseOutStructure * const &>
  6061. # endif
  6062. reflect() const VULKAN_HPP_NOEXCEPT
  6063. {
  6064. return std::tie( sType, pNext );
  6065. }
  6066. #endif
  6067. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6068. auto operator<=>( BaseOutStructure const & ) const = default;
  6069. #else
  6070. bool operator==( BaseOutStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
  6071. {
  6072. # if defined( VULKAN_HPP_USE_REFLECT )
  6073. return this->reflect() == rhs.reflect();
  6074. # else
  6075. return ( sType == rhs.sType ) && ( pNext == rhs.pNext );
  6076. # endif
  6077. }
  6078. bool operator!=( BaseOutStructure const & rhs ) const VULKAN_HPP_NOEXCEPT
  6079. {
  6080. return !operator==( rhs );
  6081. }
  6082. #endif
  6083. public:
  6084. VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo;
  6085. struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext = {};
  6086. };
  6087. struct BindAccelerationStructureMemoryInfoNV
  6088. {
  6089. using NativeType = VkBindAccelerationStructureMemoryInfoNV;
  6090. static const bool allowDuplicate = false;
  6091. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindAccelerationStructureMemoryInfoNV;
  6092. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6093. VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {},
  6094. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  6095. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  6096. uint32_t deviceIndexCount_ = {},
  6097. const uint32_t * pDeviceIndices_ = {},
  6098. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  6099. : pNext( pNext_ )
  6100. , accelerationStructure( accelerationStructure_ )
  6101. , memory( memory_ )
  6102. , memoryOffset( memoryOffset_ )
  6103. , deviceIndexCount( deviceIndexCount_ )
  6104. , pDeviceIndices( pDeviceIndices_ )
  6105. {
  6106. }
  6107. VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6108. BindAccelerationStructureMemoryInfoNV( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  6109. : BindAccelerationStructureMemoryInfoNV( *reinterpret_cast<BindAccelerationStructureMemoryInfoNV const *>( &rhs ) )
  6110. {
  6111. }
  6112. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  6113. BindAccelerationStructureMemoryInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_,
  6114. VULKAN_HPP_NAMESPACE::DeviceMemory memory_,
  6115. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_,
  6116. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_,
  6117. const void * pNext_ = nullptr )
  6118. : pNext( pNext_ )
  6119. , accelerationStructure( accelerationStructure_ )
  6120. , memory( memory_ )
  6121. , memoryOffset( memoryOffset_ )
  6122. , deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) )
  6123. , pDeviceIndices( deviceIndices_.data() )
  6124. {
  6125. }
  6126. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  6127. BindAccelerationStructureMemoryInfoNV & operator=( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6128. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6129. BindAccelerationStructureMemoryInfoNV & operator=( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  6130. {
  6131. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV const *>( &rhs );
  6132. return *this;
  6133. }
  6134. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6135. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  6136. {
  6137. pNext = pNext_;
  6138. return *this;
  6139. }
  6140. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV &
  6141. setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  6142. {
  6143. accelerationStructure = accelerationStructure_;
  6144. return *this;
  6145. }
  6146. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  6147. {
  6148. memory = memory_;
  6149. return *this;
  6150. }
  6151. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  6152. {
  6153. memoryOffset = memoryOffset_;
  6154. return *this;
  6155. }
  6156. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
  6157. {
  6158. deviceIndexCount = deviceIndexCount_;
  6159. return *this;
  6160. }
  6161. VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  6162. {
  6163. pDeviceIndices = pDeviceIndices_;
  6164. return *this;
  6165. }
  6166. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  6167. BindAccelerationStructureMemoryInfoNV &
  6168. setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
  6169. {
  6170. deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
  6171. pDeviceIndices = deviceIndices_.data();
  6172. return *this;
  6173. }
  6174. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  6175. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6176. operator VkBindAccelerationStructureMemoryInfoNV const &() const VULKAN_HPP_NOEXCEPT
  6177. {
  6178. return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( this );
  6179. }
  6180. operator VkBindAccelerationStructureMemoryInfoNV &() VULKAN_HPP_NOEXCEPT
  6181. {
  6182. return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV *>( this );
  6183. }
  6184. #if defined( VULKAN_HPP_USE_REFLECT )
  6185. # if 14 <= VULKAN_HPP_CPP_VERSION
  6186. auto
  6187. # else
  6188. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  6189. const void * const &,
  6190. VULKAN_HPP_NAMESPACE::AccelerationStructureNV const &,
  6191. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  6192. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  6193. uint32_t const &,
  6194. const uint32_t * const &>
  6195. # endif
  6196. reflect() const VULKAN_HPP_NOEXCEPT
  6197. {
  6198. return std::tie( sType, pNext, accelerationStructure, memory, memoryOffset, deviceIndexCount, pDeviceIndices );
  6199. }
  6200. #endif
  6201. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6202. auto operator<=>( BindAccelerationStructureMemoryInfoNV const & ) const = default;
  6203. #else
  6204. bool operator==( BindAccelerationStructureMemoryInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  6205. {
  6206. # if defined( VULKAN_HPP_USE_REFLECT )
  6207. return this->reflect() == rhs.reflect();
  6208. # else
  6209. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructure == rhs.accelerationStructure ) && ( memory == rhs.memory ) &&
  6210. ( memoryOffset == rhs.memoryOffset ) && ( deviceIndexCount == rhs.deviceIndexCount ) && ( pDeviceIndices == rhs.pDeviceIndices );
  6211. # endif
  6212. }
  6213. bool operator!=( BindAccelerationStructureMemoryInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  6214. {
  6215. return !operator==( rhs );
  6216. }
  6217. #endif
  6218. public:
  6219. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoNV;
  6220. const void * pNext = {};
  6221. VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {};
  6222. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  6223. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  6224. uint32_t deviceIndexCount = {};
  6225. const uint32_t * pDeviceIndices = {};
  6226. };
  6227. template <>
  6228. struct CppType<StructureType, StructureType::eBindAccelerationStructureMemoryInfoNV>
  6229. {
  6230. using Type = BindAccelerationStructureMemoryInfoNV;
  6231. };
  6232. struct BindBufferMemoryDeviceGroupInfo
  6233. {
  6234. using NativeType = VkBindBufferMemoryDeviceGroupInfo;
  6235. static const bool allowDuplicate = false;
  6236. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryDeviceGroupInfo;
  6237. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6238. VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = {},
  6239. const uint32_t * pDeviceIndices_ = {},
  6240. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  6241. : pNext( pNext_ )
  6242. , deviceIndexCount( deviceIndexCount_ )
  6243. , pDeviceIndices( pDeviceIndices_ )
  6244. {
  6245. }
  6246. VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6247. BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6248. : BindBufferMemoryDeviceGroupInfo( *reinterpret_cast<BindBufferMemoryDeviceGroupInfo const *>( &rhs ) )
  6249. {
  6250. }
  6251. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  6252. BindBufferMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_, const void * pNext_ = nullptr )
  6253. : pNext( pNext_ ), deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() )
  6254. {
  6255. }
  6256. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  6257. BindBufferMemoryDeviceGroupInfo & operator=( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6258. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6259. BindBufferMemoryDeviceGroupInfo & operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6260. {
  6261. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo const *>( &rhs );
  6262. return *this;
  6263. }
  6264. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6265. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  6266. {
  6267. pNext = pNext_;
  6268. return *this;
  6269. }
  6270. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
  6271. {
  6272. deviceIndexCount = deviceIndexCount_;
  6273. return *this;
  6274. }
  6275. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  6276. {
  6277. pDeviceIndices = pDeviceIndices_;
  6278. return *this;
  6279. }
  6280. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  6281. BindBufferMemoryDeviceGroupInfo &
  6282. setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
  6283. {
  6284. deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
  6285. pDeviceIndices = deviceIndices_.data();
  6286. return *this;
  6287. }
  6288. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  6289. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6290. operator VkBindBufferMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
  6291. {
  6292. return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo *>( this );
  6293. }
  6294. operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
  6295. {
  6296. return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo *>( this );
  6297. }
  6298. #if defined( VULKAN_HPP_USE_REFLECT )
  6299. # if 14 <= VULKAN_HPP_CPP_VERSION
  6300. auto
  6301. # else
  6302. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint32_t * const &>
  6303. # endif
  6304. reflect() const VULKAN_HPP_NOEXCEPT
  6305. {
  6306. return std::tie( sType, pNext, deviceIndexCount, pDeviceIndices );
  6307. }
  6308. #endif
  6309. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6310. auto operator<=>( BindBufferMemoryDeviceGroupInfo const & ) const = default;
  6311. #else
  6312. bool operator==( BindBufferMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6313. {
  6314. # if defined( VULKAN_HPP_USE_REFLECT )
  6315. return this->reflect() == rhs.reflect();
  6316. # else
  6317. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceIndexCount == rhs.deviceIndexCount ) && ( pDeviceIndices == rhs.pDeviceIndices );
  6318. # endif
  6319. }
  6320. bool operator!=( BindBufferMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6321. {
  6322. return !operator==( rhs );
  6323. }
  6324. #endif
  6325. public:
  6326. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo;
  6327. const void * pNext = {};
  6328. uint32_t deviceIndexCount = {};
  6329. const uint32_t * pDeviceIndices = {};
  6330. };
  6331. template <>
  6332. struct CppType<StructureType, StructureType::eBindBufferMemoryDeviceGroupInfo>
  6333. {
  6334. using Type = BindBufferMemoryDeviceGroupInfo;
  6335. };
  6336. using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
  6337. struct BindBufferMemoryInfo
  6338. {
  6339. using NativeType = VkBindBufferMemoryInfo;
  6340. static const bool allowDuplicate = false;
  6341. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryInfo;
  6342. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6343. VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  6344. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  6345. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  6346. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  6347. : pNext( pNext_ )
  6348. , buffer( buffer_ )
  6349. , memory( memory_ )
  6350. , memoryOffset( memoryOffset_ )
  6351. {
  6352. }
  6353. VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6354. BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6355. : BindBufferMemoryInfo( *reinterpret_cast<BindBufferMemoryInfo const *>( &rhs ) )
  6356. {
  6357. }
  6358. BindBufferMemoryInfo & operator=( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6359. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6360. BindBufferMemoryInfo & operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6361. {
  6362. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo const *>( &rhs );
  6363. return *this;
  6364. }
  6365. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6366. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  6367. {
  6368. pNext = pNext_;
  6369. return *this;
  6370. }
  6371. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  6372. {
  6373. buffer = buffer_;
  6374. return *this;
  6375. }
  6376. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  6377. {
  6378. memory = memory_;
  6379. return *this;
  6380. }
  6381. VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  6382. {
  6383. memoryOffset = memoryOffset_;
  6384. return *this;
  6385. }
  6386. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6387. operator VkBindBufferMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
  6388. {
  6389. return *reinterpret_cast<const VkBindBufferMemoryInfo *>( this );
  6390. }
  6391. operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT
  6392. {
  6393. return *reinterpret_cast<VkBindBufferMemoryInfo *>( this );
  6394. }
  6395. #if defined( VULKAN_HPP_USE_REFLECT )
  6396. # if 14 <= VULKAN_HPP_CPP_VERSION
  6397. auto
  6398. # else
  6399. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  6400. const void * const &,
  6401. VULKAN_HPP_NAMESPACE::Buffer const &,
  6402. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  6403. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  6404. # endif
  6405. reflect() const VULKAN_HPP_NOEXCEPT
  6406. {
  6407. return std::tie( sType, pNext, buffer, memory, memoryOffset );
  6408. }
  6409. #endif
  6410. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6411. auto operator<=>( BindBufferMemoryInfo const & ) const = default;
  6412. #else
  6413. bool operator==( BindBufferMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6414. {
  6415. # if defined( VULKAN_HPP_USE_REFLECT )
  6416. return this->reflect() == rhs.reflect();
  6417. # else
  6418. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer ) && ( memory == rhs.memory ) && ( memoryOffset == rhs.memoryOffset );
  6419. # endif
  6420. }
  6421. bool operator!=( BindBufferMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6422. {
  6423. return !operator==( rhs );
  6424. }
  6425. #endif
  6426. public:
  6427. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo;
  6428. const void * pNext = {};
  6429. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  6430. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  6431. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  6432. };
  6433. template <>
  6434. struct CppType<StructureType, StructureType::eBindBufferMemoryInfo>
  6435. {
  6436. using Type = BindBufferMemoryInfo;
  6437. };
  6438. using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
  6439. struct Offset2D
  6440. {
  6441. using NativeType = VkOffset2D;
  6442. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6443. VULKAN_HPP_CONSTEXPR Offset2D( int32_t x_ = {}, int32_t y_ = {} ) VULKAN_HPP_NOEXCEPT
  6444. : x( x_ )
  6445. , y( y_ )
  6446. {
  6447. }
  6448. VULKAN_HPP_CONSTEXPR Offset2D( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6449. Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT : Offset2D( *reinterpret_cast<Offset2D const *>( &rhs ) ) {}
  6450. Offset2D & operator=( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6451. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6452. Offset2D & operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT
  6453. {
  6454. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset2D const *>( &rhs );
  6455. return *this;
  6456. }
  6457. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6458. VULKAN_HPP_CONSTEXPR_14 Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
  6459. {
  6460. x = x_;
  6461. return *this;
  6462. }
  6463. VULKAN_HPP_CONSTEXPR_14 Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
  6464. {
  6465. y = y_;
  6466. return *this;
  6467. }
  6468. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6469. operator VkOffset2D const &() const VULKAN_HPP_NOEXCEPT
  6470. {
  6471. return *reinterpret_cast<const VkOffset2D *>( this );
  6472. }
  6473. operator VkOffset2D &() VULKAN_HPP_NOEXCEPT
  6474. {
  6475. return *reinterpret_cast<VkOffset2D *>( this );
  6476. }
  6477. #if defined( VULKAN_HPP_USE_REFLECT )
  6478. # if 14 <= VULKAN_HPP_CPP_VERSION
  6479. auto
  6480. # else
  6481. std::tuple<int32_t const &, int32_t const &>
  6482. # endif
  6483. reflect() const VULKAN_HPP_NOEXCEPT
  6484. {
  6485. return std::tie( x, y );
  6486. }
  6487. #endif
  6488. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6489. auto operator<=>( Offset2D const & ) const = default;
  6490. #else
  6491. bool operator==( Offset2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  6492. {
  6493. # if defined( VULKAN_HPP_USE_REFLECT )
  6494. return this->reflect() == rhs.reflect();
  6495. # else
  6496. return ( x == rhs.x ) && ( y == rhs.y );
  6497. # endif
  6498. }
  6499. bool operator!=( Offset2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  6500. {
  6501. return !operator==( rhs );
  6502. }
  6503. #endif
  6504. public:
  6505. int32_t x = {};
  6506. int32_t y = {};
  6507. };
  6508. struct Rect2D
  6509. {
  6510. using NativeType = VkRect2D;
  6511. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6512. VULKAN_HPP_CONSTEXPR Rect2D( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {} ) VULKAN_HPP_NOEXCEPT
  6513. : offset( offset_ )
  6514. , extent( extent_ )
  6515. {
  6516. }
  6517. VULKAN_HPP_CONSTEXPR Rect2D( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6518. Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT : Rect2D( *reinterpret_cast<Rect2D const *>( &rhs ) ) {}
  6519. Rect2D & operator=( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6520. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6521. Rect2D & operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT
  6522. {
  6523. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Rect2D const *>( &rhs );
  6524. return *this;
  6525. }
  6526. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6527. VULKAN_HPP_CONSTEXPR_14 Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
  6528. {
  6529. offset = offset_;
  6530. return *this;
  6531. }
  6532. VULKAN_HPP_CONSTEXPR_14 Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
  6533. {
  6534. extent = extent_;
  6535. return *this;
  6536. }
  6537. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6538. operator VkRect2D const &() const VULKAN_HPP_NOEXCEPT
  6539. {
  6540. return *reinterpret_cast<const VkRect2D *>( this );
  6541. }
  6542. operator VkRect2D &() VULKAN_HPP_NOEXCEPT
  6543. {
  6544. return *reinterpret_cast<VkRect2D *>( this );
  6545. }
  6546. #if defined( VULKAN_HPP_USE_REFLECT )
  6547. # if 14 <= VULKAN_HPP_CPP_VERSION
  6548. auto
  6549. # else
  6550. std::tuple<VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
  6551. # endif
  6552. reflect() const VULKAN_HPP_NOEXCEPT
  6553. {
  6554. return std::tie( offset, extent );
  6555. }
  6556. #endif
  6557. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6558. auto operator<=>( Rect2D const & ) const = default;
  6559. #else
  6560. bool operator==( Rect2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  6561. {
  6562. # if defined( VULKAN_HPP_USE_REFLECT )
  6563. return this->reflect() == rhs.reflect();
  6564. # else
  6565. return ( offset == rhs.offset ) && ( extent == rhs.extent );
  6566. # endif
  6567. }
  6568. bool operator!=( Rect2D const & rhs ) const VULKAN_HPP_NOEXCEPT
  6569. {
  6570. return !operator==( rhs );
  6571. }
  6572. #endif
  6573. public:
  6574. VULKAN_HPP_NAMESPACE::Offset2D offset = {};
  6575. VULKAN_HPP_NAMESPACE::Extent2D extent = {};
  6576. };
  6577. struct BindImageMemoryDeviceGroupInfo
  6578. {
  6579. using NativeType = VkBindImageMemoryDeviceGroupInfo;
  6580. static const bool allowDuplicate = false;
  6581. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryDeviceGroupInfo;
  6582. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6583. VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = {},
  6584. const uint32_t * pDeviceIndices_ = {},
  6585. uint32_t splitInstanceBindRegionCount_ = {},
  6586. const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions_ = {},
  6587. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  6588. : pNext( pNext_ )
  6589. , deviceIndexCount( deviceIndexCount_ )
  6590. , pDeviceIndices( pDeviceIndices_ )
  6591. , splitInstanceBindRegionCount( splitInstanceBindRegionCount_ )
  6592. , pSplitInstanceBindRegions( pSplitInstanceBindRegions_ )
  6593. {
  6594. }
  6595. VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6596. BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6597. : BindImageMemoryDeviceGroupInfo( *reinterpret_cast<BindImageMemoryDeviceGroupInfo const *>( &rhs ) )
  6598. {
  6599. }
  6600. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  6601. BindImageMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_,
  6602. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ = {},
  6603. const void * pNext_ = nullptr )
  6604. : pNext( pNext_ )
  6605. , deviceIndexCount( static_cast<uint32_t>( deviceIndices_.size() ) )
  6606. , pDeviceIndices( deviceIndices_.data() )
  6607. , splitInstanceBindRegionCount( static_cast<uint32_t>( splitInstanceBindRegions_.size() ) )
  6608. , pSplitInstanceBindRegions( splitInstanceBindRegions_.data() )
  6609. {
  6610. }
  6611. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  6612. BindImageMemoryDeviceGroupInfo & operator=( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6613. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6614. BindImageMemoryDeviceGroupInfo & operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6615. {
  6616. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo const *>( &rhs );
  6617. return *this;
  6618. }
  6619. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6620. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  6621. {
  6622. pNext = pNext_;
  6623. return *this;
  6624. }
  6625. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT
  6626. {
  6627. deviceIndexCount = deviceIndexCount_;
  6628. return *this;
  6629. }
  6630. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  6631. {
  6632. pDeviceIndices = pDeviceIndices_;
  6633. return *this;
  6634. }
  6635. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  6636. BindImageMemoryDeviceGroupInfo &
  6637. setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT
  6638. {
  6639. deviceIndexCount = static_cast<uint32_t>( deviceIndices_.size() );
  6640. pDeviceIndices = deviceIndices_.data();
  6641. return *this;
  6642. }
  6643. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  6644. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT
  6645. {
  6646. splitInstanceBindRegionCount = splitInstanceBindRegionCount_;
  6647. return *this;
  6648. }
  6649. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo &
  6650. setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
  6651. {
  6652. pSplitInstanceBindRegions = pSplitInstanceBindRegions_;
  6653. return *this;
  6654. }
  6655. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  6656. BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions(
  6657. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & splitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT
  6658. {
  6659. splitInstanceBindRegionCount = static_cast<uint32_t>( splitInstanceBindRegions_.size() );
  6660. pSplitInstanceBindRegions = splitInstanceBindRegions_.data();
  6661. return *this;
  6662. }
  6663. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  6664. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6665. operator VkBindImageMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT
  6666. {
  6667. return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo *>( this );
  6668. }
  6669. operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT
  6670. {
  6671. return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo *>( this );
  6672. }
  6673. #if defined( VULKAN_HPP_USE_REFLECT )
  6674. # if 14 <= VULKAN_HPP_CPP_VERSION
  6675. auto
  6676. # else
  6677. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  6678. const void * const &,
  6679. uint32_t const &,
  6680. const uint32_t * const &,
  6681. uint32_t const &,
  6682. const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  6683. # endif
  6684. reflect() const VULKAN_HPP_NOEXCEPT
  6685. {
  6686. return std::tie( sType, pNext, deviceIndexCount, pDeviceIndices, splitInstanceBindRegionCount, pSplitInstanceBindRegions );
  6687. }
  6688. #endif
  6689. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6690. auto operator<=>( BindImageMemoryDeviceGroupInfo const & ) const = default;
  6691. #else
  6692. bool operator==( BindImageMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6693. {
  6694. # if defined( VULKAN_HPP_USE_REFLECT )
  6695. return this->reflect() == rhs.reflect();
  6696. # else
  6697. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceIndexCount == rhs.deviceIndexCount ) && ( pDeviceIndices == rhs.pDeviceIndices ) &&
  6698. ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount ) && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions );
  6699. # endif
  6700. }
  6701. bool operator!=( BindImageMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6702. {
  6703. return !operator==( rhs );
  6704. }
  6705. #endif
  6706. public:
  6707. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo;
  6708. const void * pNext = {};
  6709. uint32_t deviceIndexCount = {};
  6710. const uint32_t * pDeviceIndices = {};
  6711. uint32_t splitInstanceBindRegionCount = {};
  6712. const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions = {};
  6713. };
  6714. template <>
  6715. struct CppType<StructureType, StructureType::eBindImageMemoryDeviceGroupInfo>
  6716. {
  6717. using Type = BindImageMemoryDeviceGroupInfo;
  6718. };
  6719. using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
  6720. struct BindImageMemoryInfo
  6721. {
  6722. using NativeType = VkBindImageMemoryInfo;
  6723. static const bool allowDuplicate = false;
  6724. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryInfo;
  6725. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6726. VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
  6727. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  6728. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  6729. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  6730. : pNext( pNext_ )
  6731. , image( image_ )
  6732. , memory( memory_ )
  6733. , memoryOffset( memoryOffset_ )
  6734. {
  6735. }
  6736. VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6737. BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT : BindImageMemoryInfo( *reinterpret_cast<BindImageMemoryInfo const *>( &rhs ) )
  6738. {
  6739. }
  6740. BindImageMemoryInfo & operator=( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6741. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6742. BindImageMemoryInfo & operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6743. {
  6744. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemoryInfo const *>( &rhs );
  6745. return *this;
  6746. }
  6747. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6748. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  6749. {
  6750. pNext = pNext_;
  6751. return *this;
  6752. }
  6753. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  6754. {
  6755. image = image_;
  6756. return *this;
  6757. }
  6758. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  6759. {
  6760. memory = memory_;
  6761. return *this;
  6762. }
  6763. VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  6764. {
  6765. memoryOffset = memoryOffset_;
  6766. return *this;
  6767. }
  6768. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6769. operator VkBindImageMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
  6770. {
  6771. return *reinterpret_cast<const VkBindImageMemoryInfo *>( this );
  6772. }
  6773. operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT
  6774. {
  6775. return *reinterpret_cast<VkBindImageMemoryInfo *>( this );
  6776. }
  6777. #if defined( VULKAN_HPP_USE_REFLECT )
  6778. # if 14 <= VULKAN_HPP_CPP_VERSION
  6779. auto
  6780. # else
  6781. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  6782. const void * const &,
  6783. VULKAN_HPP_NAMESPACE::Image const &,
  6784. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  6785. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  6786. # endif
  6787. reflect() const VULKAN_HPP_NOEXCEPT
  6788. {
  6789. return std::tie( sType, pNext, image, memory, memoryOffset );
  6790. }
  6791. #endif
  6792. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6793. auto operator<=>( BindImageMemoryInfo const & ) const = default;
  6794. #else
  6795. bool operator==( BindImageMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6796. {
  6797. # if defined( VULKAN_HPP_USE_REFLECT )
  6798. return this->reflect() == rhs.reflect();
  6799. # else
  6800. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( memory == rhs.memory ) && ( memoryOffset == rhs.memoryOffset );
  6801. # endif
  6802. }
  6803. bool operator!=( BindImageMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6804. {
  6805. return !operator==( rhs );
  6806. }
  6807. #endif
  6808. public:
  6809. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo;
  6810. const void * pNext = {};
  6811. VULKAN_HPP_NAMESPACE::Image image = {};
  6812. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  6813. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  6814. };
  6815. template <>
  6816. struct CppType<StructureType, StructureType::eBindImageMemoryInfo>
  6817. {
  6818. using Type = BindImageMemoryInfo;
  6819. };
  6820. using BindImageMemoryInfoKHR = BindImageMemoryInfo;
  6821. struct BindImageMemorySwapchainInfoKHR
  6822. {
  6823. using NativeType = VkBindImageMemorySwapchainInfoKHR;
  6824. static const bool allowDuplicate = false;
  6825. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemorySwapchainInfoKHR;
  6826. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6827. VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {},
  6828. uint32_t imageIndex_ = {},
  6829. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  6830. : pNext( pNext_ )
  6831. , swapchain( swapchain_ )
  6832. , imageIndex( imageIndex_ )
  6833. {
  6834. }
  6835. VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6836. BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  6837. : BindImageMemorySwapchainInfoKHR( *reinterpret_cast<BindImageMemorySwapchainInfoKHR const *>( &rhs ) )
  6838. {
  6839. }
  6840. BindImageMemorySwapchainInfoKHR & operator=( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6841. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6842. BindImageMemorySwapchainInfoKHR & operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  6843. {
  6844. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR const *>( &rhs );
  6845. return *this;
  6846. }
  6847. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6848. VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  6849. {
  6850. pNext = pNext_;
  6851. return *this;
  6852. }
  6853. VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
  6854. {
  6855. swapchain = swapchain_;
  6856. return *this;
  6857. }
  6858. VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT
  6859. {
  6860. imageIndex = imageIndex_;
  6861. return *this;
  6862. }
  6863. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6864. operator VkBindImageMemorySwapchainInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  6865. {
  6866. return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR *>( this );
  6867. }
  6868. operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT
  6869. {
  6870. return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR *>( this );
  6871. }
  6872. #if defined( VULKAN_HPP_USE_REFLECT )
  6873. # if 14 <= VULKAN_HPP_CPP_VERSION
  6874. auto
  6875. # else
  6876. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SwapchainKHR const &, uint32_t const &>
  6877. # endif
  6878. reflect() const VULKAN_HPP_NOEXCEPT
  6879. {
  6880. return std::tie( sType, pNext, swapchain, imageIndex );
  6881. }
  6882. #endif
  6883. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6884. auto operator<=>( BindImageMemorySwapchainInfoKHR const & ) const = default;
  6885. #else
  6886. bool operator==( BindImageMemorySwapchainInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  6887. {
  6888. # if defined( VULKAN_HPP_USE_REFLECT )
  6889. return this->reflect() == rhs.reflect();
  6890. # else
  6891. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchain == rhs.swapchain ) && ( imageIndex == rhs.imageIndex );
  6892. # endif
  6893. }
  6894. bool operator!=( BindImageMemorySwapchainInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  6895. {
  6896. return !operator==( rhs );
  6897. }
  6898. #endif
  6899. public:
  6900. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR;
  6901. const void * pNext = {};
  6902. VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
  6903. uint32_t imageIndex = {};
  6904. };
  6905. template <>
  6906. struct CppType<StructureType, StructureType::eBindImageMemorySwapchainInfoKHR>
  6907. {
  6908. using Type = BindImageMemorySwapchainInfoKHR;
  6909. };
  6910. struct BindImagePlaneMemoryInfo
  6911. {
  6912. using NativeType = VkBindImagePlaneMemoryInfo;
  6913. static const bool allowDuplicate = false;
  6914. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImagePlaneMemoryInfo;
  6915. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6916. VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
  6917. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  6918. : pNext( pNext_ )
  6919. , planeAspect( planeAspect_ )
  6920. {
  6921. }
  6922. VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6923. BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6924. : BindImagePlaneMemoryInfo( *reinterpret_cast<BindImagePlaneMemoryInfo const *>( &rhs ) )
  6925. {
  6926. }
  6927. BindImagePlaneMemoryInfo & operator=( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  6928. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  6929. BindImagePlaneMemoryInfo & operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  6930. {
  6931. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo const *>( &rhs );
  6932. return *this;
  6933. }
  6934. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  6935. VULKAN_HPP_CONSTEXPR_14 BindImagePlaneMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  6936. {
  6937. pNext = pNext_;
  6938. return *this;
  6939. }
  6940. VULKAN_HPP_CONSTEXPR_14 BindImagePlaneMemoryInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
  6941. {
  6942. planeAspect = planeAspect_;
  6943. return *this;
  6944. }
  6945. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  6946. operator VkBindImagePlaneMemoryInfo const &() const VULKAN_HPP_NOEXCEPT
  6947. {
  6948. return *reinterpret_cast<const VkBindImagePlaneMemoryInfo *>( this );
  6949. }
  6950. operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT
  6951. {
  6952. return *reinterpret_cast<VkBindImagePlaneMemoryInfo *>( this );
  6953. }
  6954. #if defined( VULKAN_HPP_USE_REFLECT )
  6955. # if 14 <= VULKAN_HPP_CPP_VERSION
  6956. auto
  6957. # else
  6958. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &>
  6959. # endif
  6960. reflect() const VULKAN_HPP_NOEXCEPT
  6961. {
  6962. return std::tie( sType, pNext, planeAspect );
  6963. }
  6964. #endif
  6965. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  6966. auto operator<=>( BindImagePlaneMemoryInfo const & ) const = default;
  6967. #else
  6968. bool operator==( BindImagePlaneMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6969. {
  6970. # if defined( VULKAN_HPP_USE_REFLECT )
  6971. return this->reflect() == rhs.reflect();
  6972. # else
  6973. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( planeAspect == rhs.planeAspect );
  6974. # endif
  6975. }
  6976. bool operator!=( BindImagePlaneMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  6977. {
  6978. return !operator==( rhs );
  6979. }
  6980. #endif
  6981. public:
  6982. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo;
  6983. const void * pNext = {};
  6984. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
  6985. };
  6986. template <>
  6987. struct CppType<StructureType, StructureType::eBindImagePlaneMemoryInfo>
  6988. {
  6989. using Type = BindImagePlaneMemoryInfo;
  6990. };
  6991. using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
  6992. struct BindIndexBufferIndirectCommandNV
  6993. {
  6994. using NativeType = VkBindIndexBufferIndirectCommandNV;
  6995. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  6996. VULKAN_HPP_CONSTEXPR
  6997. BindIndexBufferIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {},
  6998. uint32_t size_ = {},
  6999. VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16 ) VULKAN_HPP_NOEXCEPT
  7000. : bufferAddress( bufferAddress_ )
  7001. , size( size_ )
  7002. , indexType( indexType_ )
  7003. {
  7004. }
  7005. VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7006. BindIndexBufferIndirectCommandNV( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  7007. : BindIndexBufferIndirectCommandNV( *reinterpret_cast<BindIndexBufferIndirectCommandNV const *>( &rhs ) )
  7008. {
  7009. }
  7010. BindIndexBufferIndirectCommandNV & operator=( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7011. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7012. BindIndexBufferIndirectCommandNV & operator=( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  7013. {
  7014. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV const *>( &rhs );
  7015. return *this;
  7016. }
  7017. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7018. VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
  7019. {
  7020. bufferAddress = bufferAddress_;
  7021. return *this;
  7022. }
  7023. VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
  7024. {
  7025. size = size_;
  7026. return *this;
  7027. }
  7028. VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
  7029. {
  7030. indexType = indexType_;
  7031. return *this;
  7032. }
  7033. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7034. operator VkBindIndexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  7035. {
  7036. return *reinterpret_cast<const VkBindIndexBufferIndirectCommandNV *>( this );
  7037. }
  7038. operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  7039. {
  7040. return *reinterpret_cast<VkBindIndexBufferIndirectCommandNV *>( this );
  7041. }
  7042. #if defined( VULKAN_HPP_USE_REFLECT )
  7043. # if 14 <= VULKAN_HPP_CPP_VERSION
  7044. auto
  7045. # else
  7046. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, uint32_t const &, VULKAN_HPP_NAMESPACE::IndexType const &>
  7047. # endif
  7048. reflect() const VULKAN_HPP_NOEXCEPT
  7049. {
  7050. return std::tie( bufferAddress, size, indexType );
  7051. }
  7052. #endif
  7053. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7054. auto operator<=>( BindIndexBufferIndirectCommandNV const & ) const = default;
  7055. #else
  7056. bool operator==( BindIndexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  7057. {
  7058. # if defined( VULKAN_HPP_USE_REFLECT )
  7059. return this->reflect() == rhs.reflect();
  7060. # else
  7061. return ( bufferAddress == rhs.bufferAddress ) && ( size == rhs.size ) && ( indexType == rhs.indexType );
  7062. # endif
  7063. }
  7064. bool operator!=( BindIndexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  7065. {
  7066. return !operator==( rhs );
  7067. }
  7068. #endif
  7069. public:
  7070. VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
  7071. uint32_t size = {};
  7072. VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
  7073. };
  7074. struct BindPipelineIndirectCommandNV
  7075. {
  7076. using NativeType = VkBindPipelineIndirectCommandNV;
  7077. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7078. VULKAN_HPP_CONSTEXPR BindPipelineIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress pipelineAddress_ = {} ) VULKAN_HPP_NOEXCEPT
  7079. : pipelineAddress( pipelineAddress_ )
  7080. {
  7081. }
  7082. VULKAN_HPP_CONSTEXPR BindPipelineIndirectCommandNV( BindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7083. BindPipelineIndirectCommandNV( VkBindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  7084. : BindPipelineIndirectCommandNV( *reinterpret_cast<BindPipelineIndirectCommandNV const *>( &rhs ) )
  7085. {
  7086. }
  7087. BindPipelineIndirectCommandNV & operator=( BindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7088. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7089. BindPipelineIndirectCommandNV & operator=( VkBindPipelineIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  7090. {
  7091. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV const *>( &rhs );
  7092. return *this;
  7093. }
  7094. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7095. VULKAN_HPP_CONSTEXPR_14 BindPipelineIndirectCommandNV & setPipelineAddress( VULKAN_HPP_NAMESPACE::DeviceAddress pipelineAddress_ ) VULKAN_HPP_NOEXCEPT
  7096. {
  7097. pipelineAddress = pipelineAddress_;
  7098. return *this;
  7099. }
  7100. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7101. operator VkBindPipelineIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  7102. {
  7103. return *reinterpret_cast<const VkBindPipelineIndirectCommandNV *>( this );
  7104. }
  7105. operator VkBindPipelineIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  7106. {
  7107. return *reinterpret_cast<VkBindPipelineIndirectCommandNV *>( this );
  7108. }
  7109. #if defined( VULKAN_HPP_USE_REFLECT )
  7110. # if 14 <= VULKAN_HPP_CPP_VERSION
  7111. auto
  7112. # else
  7113. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &>
  7114. # endif
  7115. reflect() const VULKAN_HPP_NOEXCEPT
  7116. {
  7117. return std::tie( pipelineAddress );
  7118. }
  7119. #endif
  7120. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7121. auto operator<=>( BindPipelineIndirectCommandNV const & ) const = default;
  7122. #else
  7123. bool operator==( BindPipelineIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  7124. {
  7125. # if defined( VULKAN_HPP_USE_REFLECT )
  7126. return this->reflect() == rhs.reflect();
  7127. # else
  7128. return ( pipelineAddress == rhs.pipelineAddress );
  7129. # endif
  7130. }
  7131. bool operator!=( BindPipelineIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  7132. {
  7133. return !operator==( rhs );
  7134. }
  7135. #endif
  7136. public:
  7137. VULKAN_HPP_NAMESPACE::DeviceAddress pipelineAddress = {};
  7138. };
  7139. struct BindShaderGroupIndirectCommandNV
  7140. {
  7141. using NativeType = VkBindShaderGroupIndirectCommandNV;
  7142. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7143. VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( uint32_t groupIndex_ = {} ) VULKAN_HPP_NOEXCEPT : groupIndex( groupIndex_ ) {}
  7144. VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7145. BindShaderGroupIndirectCommandNV( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  7146. : BindShaderGroupIndirectCommandNV( *reinterpret_cast<BindShaderGroupIndirectCommandNV const *>( &rhs ) )
  7147. {
  7148. }
  7149. BindShaderGroupIndirectCommandNV & operator=( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7150. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7151. BindShaderGroupIndirectCommandNV & operator=( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  7152. {
  7153. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV const *>( &rhs );
  7154. return *this;
  7155. }
  7156. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7157. VULKAN_HPP_CONSTEXPR_14 BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT
  7158. {
  7159. groupIndex = groupIndex_;
  7160. return *this;
  7161. }
  7162. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7163. operator VkBindShaderGroupIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  7164. {
  7165. return *reinterpret_cast<const VkBindShaderGroupIndirectCommandNV *>( this );
  7166. }
  7167. operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  7168. {
  7169. return *reinterpret_cast<VkBindShaderGroupIndirectCommandNV *>( this );
  7170. }
  7171. #if defined( VULKAN_HPP_USE_REFLECT )
  7172. # if 14 <= VULKAN_HPP_CPP_VERSION
  7173. auto
  7174. # else
  7175. std::tuple<uint32_t const &>
  7176. # endif
  7177. reflect() const VULKAN_HPP_NOEXCEPT
  7178. {
  7179. return std::tie( groupIndex );
  7180. }
  7181. #endif
  7182. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7183. auto operator<=>( BindShaderGroupIndirectCommandNV const & ) const = default;
  7184. #else
  7185. bool operator==( BindShaderGroupIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  7186. {
  7187. # if defined( VULKAN_HPP_USE_REFLECT )
  7188. return this->reflect() == rhs.reflect();
  7189. # else
  7190. return ( groupIndex == rhs.groupIndex );
  7191. # endif
  7192. }
  7193. bool operator!=( BindShaderGroupIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  7194. {
  7195. return !operator==( rhs );
  7196. }
  7197. #endif
  7198. public:
  7199. uint32_t groupIndex = {};
  7200. };
  7201. struct SparseMemoryBind
  7202. {
  7203. using NativeType = VkSparseMemoryBind;
  7204. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7205. VULKAN_HPP_CONSTEXPR SparseMemoryBind( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ = {},
  7206. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  7207. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  7208. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  7209. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
  7210. : resourceOffset( resourceOffset_ )
  7211. , size( size_ )
  7212. , memory( memory_ )
  7213. , memoryOffset( memoryOffset_ )
  7214. , flags( flags_ )
  7215. {
  7216. }
  7217. VULKAN_HPP_CONSTEXPR SparseMemoryBind( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7218. SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT : SparseMemoryBind( *reinterpret_cast<SparseMemoryBind const *>( &rhs ) ) {}
  7219. SparseMemoryBind & operator=( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7220. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7221. SparseMemoryBind & operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
  7222. {
  7223. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseMemoryBind const *>( &rhs );
  7224. return *this;
  7225. }
  7226. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7227. VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT
  7228. {
  7229. resourceOffset = resourceOffset_;
  7230. return *this;
  7231. }
  7232. VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  7233. {
  7234. size = size_;
  7235. return *this;
  7236. }
  7237. VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  7238. {
  7239. memory = memory_;
  7240. return *this;
  7241. }
  7242. VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  7243. {
  7244. memoryOffset = memoryOffset_;
  7245. return *this;
  7246. }
  7247. VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
  7248. {
  7249. flags = flags_;
  7250. return *this;
  7251. }
  7252. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7253. operator VkSparseMemoryBind const &() const VULKAN_HPP_NOEXCEPT
  7254. {
  7255. return *reinterpret_cast<const VkSparseMemoryBind *>( this );
  7256. }
  7257. operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT
  7258. {
  7259. return *reinterpret_cast<VkSparseMemoryBind *>( this );
  7260. }
  7261. #if defined( VULKAN_HPP_USE_REFLECT )
  7262. # if 14 <= VULKAN_HPP_CPP_VERSION
  7263. auto
  7264. # else
  7265. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &,
  7266. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  7267. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  7268. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  7269. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags const &>
  7270. # endif
  7271. reflect() const VULKAN_HPP_NOEXCEPT
  7272. {
  7273. return std::tie( resourceOffset, size, memory, memoryOffset, flags );
  7274. }
  7275. #endif
  7276. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7277. auto operator<=>( SparseMemoryBind const & ) const = default;
  7278. #else
  7279. bool operator==( SparseMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
  7280. {
  7281. # if defined( VULKAN_HPP_USE_REFLECT )
  7282. return this->reflect() == rhs.reflect();
  7283. # else
  7284. return ( resourceOffset == rhs.resourceOffset ) && ( size == rhs.size ) && ( memory == rhs.memory ) && ( memoryOffset == rhs.memoryOffset ) &&
  7285. ( flags == rhs.flags );
  7286. # endif
  7287. }
  7288. bool operator!=( SparseMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
  7289. {
  7290. return !operator==( rhs );
  7291. }
  7292. #endif
  7293. public:
  7294. VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {};
  7295. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  7296. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  7297. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  7298. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
  7299. };
  7300. struct SparseBufferMemoryBindInfo
  7301. {
  7302. using NativeType = VkSparseBufferMemoryBindInfo;
  7303. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7304. VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  7305. uint32_t bindCount_ = {},
  7306. const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
  7307. : buffer( buffer_ )
  7308. , bindCount( bindCount_ )
  7309. , pBinds( pBinds_ )
  7310. {
  7311. }
  7312. VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7313. SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  7314. : SparseBufferMemoryBindInfo( *reinterpret_cast<SparseBufferMemoryBindInfo const *>( &rhs ) )
  7315. {
  7316. }
  7317. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7318. SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_,
  7319. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
  7320. : buffer( buffer_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
  7321. {
  7322. }
  7323. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7324. SparseBufferMemoryBindInfo & operator=( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7325. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7326. SparseBufferMemoryBindInfo & operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  7327. {
  7328. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo const *>( &rhs );
  7329. return *this;
  7330. }
  7331. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7332. VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  7333. {
  7334. buffer = buffer_;
  7335. return *this;
  7336. }
  7337. VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
  7338. {
  7339. bindCount = bindCount_;
  7340. return *this;
  7341. }
  7342. VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT
  7343. {
  7344. pBinds = pBinds_;
  7345. return *this;
  7346. }
  7347. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7348. SparseBufferMemoryBindInfo &
  7349. setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
  7350. {
  7351. bindCount = static_cast<uint32_t>( binds_.size() );
  7352. pBinds = binds_.data();
  7353. return *this;
  7354. }
  7355. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7356. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7357. operator VkSparseBufferMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
  7358. {
  7359. return *reinterpret_cast<const VkSparseBufferMemoryBindInfo *>( this );
  7360. }
  7361. operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
  7362. {
  7363. return *reinterpret_cast<VkSparseBufferMemoryBindInfo *>( this );
  7364. }
  7365. #if defined( VULKAN_HPP_USE_REFLECT )
  7366. # if 14 <= VULKAN_HPP_CPP_VERSION
  7367. auto
  7368. # else
  7369. std::tuple<VULKAN_HPP_NAMESPACE::Buffer const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseMemoryBind * const &>
  7370. # endif
  7371. reflect() const VULKAN_HPP_NOEXCEPT
  7372. {
  7373. return std::tie( buffer, bindCount, pBinds );
  7374. }
  7375. #endif
  7376. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7377. auto operator<=>( SparseBufferMemoryBindInfo const & ) const = default;
  7378. #else
  7379. bool operator==( SparseBufferMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  7380. {
  7381. # if defined( VULKAN_HPP_USE_REFLECT )
  7382. return this->reflect() == rhs.reflect();
  7383. # else
  7384. return ( buffer == rhs.buffer ) && ( bindCount == rhs.bindCount ) && ( pBinds == rhs.pBinds );
  7385. # endif
  7386. }
  7387. bool operator!=( SparseBufferMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  7388. {
  7389. return !operator==( rhs );
  7390. }
  7391. #endif
  7392. public:
  7393. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  7394. uint32_t bindCount = {};
  7395. const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds = {};
  7396. };
  7397. struct SparseImageOpaqueMemoryBindInfo
  7398. {
  7399. using NativeType = VkSparseImageOpaqueMemoryBindInfo;
  7400. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7401. VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
  7402. uint32_t bindCount_ = {},
  7403. const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
  7404. : image( image_ )
  7405. , bindCount( bindCount_ )
  7406. , pBinds( pBinds_ )
  7407. {
  7408. }
  7409. VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7410. SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  7411. : SparseImageOpaqueMemoryBindInfo( *reinterpret_cast<SparseImageOpaqueMemoryBindInfo const *>( &rhs ) )
  7412. {
  7413. }
  7414. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7415. SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_,
  7416. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ )
  7417. : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
  7418. {
  7419. }
  7420. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7421. SparseImageOpaqueMemoryBindInfo & operator=( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7422. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7423. SparseImageOpaqueMemoryBindInfo & operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  7424. {
  7425. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo const *>( &rhs );
  7426. return *this;
  7427. }
  7428. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7429. VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  7430. {
  7431. image = image_;
  7432. return *this;
  7433. }
  7434. VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
  7435. {
  7436. bindCount = bindCount_;
  7437. return *this;
  7438. }
  7439. VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT
  7440. {
  7441. pBinds = pBinds_;
  7442. return *this;
  7443. }
  7444. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7445. SparseImageOpaqueMemoryBindInfo &
  7446. setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
  7447. {
  7448. bindCount = static_cast<uint32_t>( binds_.size() );
  7449. pBinds = binds_.data();
  7450. return *this;
  7451. }
  7452. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7453. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7454. operator VkSparseImageOpaqueMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
  7455. {
  7456. return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo *>( this );
  7457. }
  7458. operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
  7459. {
  7460. return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo *>( this );
  7461. }
  7462. #if defined( VULKAN_HPP_USE_REFLECT )
  7463. # if 14 <= VULKAN_HPP_CPP_VERSION
  7464. auto
  7465. # else
  7466. std::tuple<VULKAN_HPP_NAMESPACE::Image const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseMemoryBind * const &>
  7467. # endif
  7468. reflect() const VULKAN_HPP_NOEXCEPT
  7469. {
  7470. return std::tie( image, bindCount, pBinds );
  7471. }
  7472. #endif
  7473. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7474. auto operator<=>( SparseImageOpaqueMemoryBindInfo const & ) const = default;
  7475. #else
  7476. bool operator==( SparseImageOpaqueMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  7477. {
  7478. # if defined( VULKAN_HPP_USE_REFLECT )
  7479. return this->reflect() == rhs.reflect();
  7480. # else
  7481. return ( image == rhs.image ) && ( bindCount == rhs.bindCount ) && ( pBinds == rhs.pBinds );
  7482. # endif
  7483. }
  7484. bool operator!=( SparseImageOpaqueMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  7485. {
  7486. return !operator==( rhs );
  7487. }
  7488. #endif
  7489. public:
  7490. VULKAN_HPP_NAMESPACE::Image image = {};
  7491. uint32_t bindCount = {};
  7492. const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds = {};
  7493. };
  7494. struct ImageSubresource
  7495. {
  7496. using NativeType = VkImageSubresource;
  7497. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7498. VULKAN_HPP_CONSTEXPR
  7499. ImageSubresource( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t arrayLayer_ = {} ) VULKAN_HPP_NOEXCEPT
  7500. : aspectMask( aspectMask_ )
  7501. , mipLevel( mipLevel_ )
  7502. , arrayLayer( arrayLayer_ )
  7503. {
  7504. }
  7505. VULKAN_HPP_CONSTEXPR ImageSubresource( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7506. ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT : ImageSubresource( *reinterpret_cast<ImageSubresource const *>( &rhs ) ) {}
  7507. ImageSubresource & operator=( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7508. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7509. ImageSubresource & operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT
  7510. {
  7511. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource const *>( &rhs );
  7512. return *this;
  7513. }
  7514. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7515. VULKAN_HPP_CONSTEXPR_14 ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  7516. {
  7517. aspectMask = aspectMask_;
  7518. return *this;
  7519. }
  7520. VULKAN_HPP_CONSTEXPR_14 ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
  7521. {
  7522. mipLevel = mipLevel_;
  7523. return *this;
  7524. }
  7525. VULKAN_HPP_CONSTEXPR_14 ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT
  7526. {
  7527. arrayLayer = arrayLayer_;
  7528. return *this;
  7529. }
  7530. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7531. operator VkImageSubresource const &() const VULKAN_HPP_NOEXCEPT
  7532. {
  7533. return *reinterpret_cast<const VkImageSubresource *>( this );
  7534. }
  7535. operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT
  7536. {
  7537. return *reinterpret_cast<VkImageSubresource *>( this );
  7538. }
  7539. #if defined( VULKAN_HPP_USE_REFLECT )
  7540. # if 14 <= VULKAN_HPP_CPP_VERSION
  7541. auto
  7542. # else
  7543. std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, uint32_t const &>
  7544. # endif
  7545. reflect() const VULKAN_HPP_NOEXCEPT
  7546. {
  7547. return std::tie( aspectMask, mipLevel, arrayLayer );
  7548. }
  7549. #endif
  7550. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7551. auto operator<=>( ImageSubresource const & ) const = default;
  7552. #else
  7553. bool operator==( ImageSubresource const & rhs ) const VULKAN_HPP_NOEXCEPT
  7554. {
  7555. # if defined( VULKAN_HPP_USE_REFLECT )
  7556. return this->reflect() == rhs.reflect();
  7557. # else
  7558. return ( aspectMask == rhs.aspectMask ) && ( mipLevel == rhs.mipLevel ) && ( arrayLayer == rhs.arrayLayer );
  7559. # endif
  7560. }
  7561. bool operator!=( ImageSubresource const & rhs ) const VULKAN_HPP_NOEXCEPT
  7562. {
  7563. return !operator==( rhs );
  7564. }
  7565. #endif
  7566. public:
  7567. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  7568. uint32_t mipLevel = {};
  7569. uint32_t arrayLayer = {};
  7570. };
  7571. struct Offset3D
  7572. {
  7573. using NativeType = VkOffset3D;
  7574. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7575. VULKAN_HPP_CONSTEXPR Offset3D( int32_t x_ = {}, int32_t y_ = {}, int32_t z_ = {} ) VULKAN_HPP_NOEXCEPT
  7576. : x( x_ )
  7577. , y( y_ )
  7578. , z( z_ )
  7579. {
  7580. }
  7581. VULKAN_HPP_CONSTEXPR Offset3D( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7582. Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT : Offset3D( *reinterpret_cast<Offset3D const *>( &rhs ) ) {}
  7583. explicit Offset3D( Offset2D const & offset2D, int32_t z_ = {} ) : x( offset2D.x ), y( offset2D.y ), z( z_ ) {}
  7584. Offset3D & operator=( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7585. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7586. Offset3D & operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT
  7587. {
  7588. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Offset3D const *>( &rhs );
  7589. return *this;
  7590. }
  7591. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7592. VULKAN_HPP_CONSTEXPR_14 Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT
  7593. {
  7594. x = x_;
  7595. return *this;
  7596. }
  7597. VULKAN_HPP_CONSTEXPR_14 Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT
  7598. {
  7599. y = y_;
  7600. return *this;
  7601. }
  7602. VULKAN_HPP_CONSTEXPR_14 Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT
  7603. {
  7604. z = z_;
  7605. return *this;
  7606. }
  7607. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7608. operator VkOffset3D const &() const VULKAN_HPP_NOEXCEPT
  7609. {
  7610. return *reinterpret_cast<const VkOffset3D *>( this );
  7611. }
  7612. operator VkOffset3D &() VULKAN_HPP_NOEXCEPT
  7613. {
  7614. return *reinterpret_cast<VkOffset3D *>( this );
  7615. }
  7616. #if defined( VULKAN_HPP_USE_REFLECT )
  7617. # if 14 <= VULKAN_HPP_CPP_VERSION
  7618. auto
  7619. # else
  7620. std::tuple<int32_t const &, int32_t const &, int32_t const &>
  7621. # endif
  7622. reflect() const VULKAN_HPP_NOEXCEPT
  7623. {
  7624. return std::tie( x, y, z );
  7625. }
  7626. #endif
  7627. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7628. auto operator<=>( Offset3D const & ) const = default;
  7629. #else
  7630. bool operator==( Offset3D const & rhs ) const VULKAN_HPP_NOEXCEPT
  7631. {
  7632. # if defined( VULKAN_HPP_USE_REFLECT )
  7633. return this->reflect() == rhs.reflect();
  7634. # else
  7635. return ( x == rhs.x ) && ( y == rhs.y ) && ( z == rhs.z );
  7636. # endif
  7637. }
  7638. bool operator!=( Offset3D const & rhs ) const VULKAN_HPP_NOEXCEPT
  7639. {
  7640. return !operator==( rhs );
  7641. }
  7642. #endif
  7643. public:
  7644. int32_t x = {};
  7645. int32_t y = {};
  7646. int32_t z = {};
  7647. };
  7648. struct Extent3D
  7649. {
  7650. using NativeType = VkExtent3D;
  7651. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7652. VULKAN_HPP_CONSTEXPR Extent3D( uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT
  7653. : width( width_ )
  7654. , height( height_ )
  7655. , depth( depth_ )
  7656. {
  7657. }
  7658. VULKAN_HPP_CONSTEXPR Extent3D( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7659. Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT : Extent3D( *reinterpret_cast<Extent3D const *>( &rhs ) ) {}
  7660. explicit Extent3D( Extent2D const & extent2D, uint32_t depth_ = {} ) : width( extent2D.width ), height( extent2D.height ), depth( depth_ ) {}
  7661. Extent3D & operator=( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7662. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7663. Extent3D & operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT
  7664. {
  7665. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Extent3D const *>( &rhs );
  7666. return *this;
  7667. }
  7668. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7669. VULKAN_HPP_CONSTEXPR_14 Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  7670. {
  7671. width = width_;
  7672. return *this;
  7673. }
  7674. VULKAN_HPP_CONSTEXPR_14 Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  7675. {
  7676. height = height_;
  7677. return *this;
  7678. }
  7679. VULKAN_HPP_CONSTEXPR_14 Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
  7680. {
  7681. depth = depth_;
  7682. return *this;
  7683. }
  7684. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7685. operator VkExtent3D const &() const VULKAN_HPP_NOEXCEPT
  7686. {
  7687. return *reinterpret_cast<const VkExtent3D *>( this );
  7688. }
  7689. operator VkExtent3D &() VULKAN_HPP_NOEXCEPT
  7690. {
  7691. return *reinterpret_cast<VkExtent3D *>( this );
  7692. }
  7693. #if defined( VULKAN_HPP_USE_REFLECT )
  7694. # if 14 <= VULKAN_HPP_CPP_VERSION
  7695. auto
  7696. # else
  7697. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  7698. # endif
  7699. reflect() const VULKAN_HPP_NOEXCEPT
  7700. {
  7701. return std::tie( width, height, depth );
  7702. }
  7703. #endif
  7704. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7705. auto operator<=>( Extent3D const & ) const = default;
  7706. #else
  7707. bool operator==( Extent3D const & rhs ) const VULKAN_HPP_NOEXCEPT
  7708. {
  7709. # if defined( VULKAN_HPP_USE_REFLECT )
  7710. return this->reflect() == rhs.reflect();
  7711. # else
  7712. return ( width == rhs.width ) && ( height == rhs.height ) && ( depth == rhs.depth );
  7713. # endif
  7714. }
  7715. bool operator!=( Extent3D const & rhs ) const VULKAN_HPP_NOEXCEPT
  7716. {
  7717. return !operator==( rhs );
  7718. }
  7719. #endif
  7720. public:
  7721. uint32_t width = {};
  7722. uint32_t height = {};
  7723. uint32_t depth = {};
  7724. };
  7725. struct SparseImageMemoryBind
  7726. {
  7727. using NativeType = VkSparseImageMemoryBind;
  7728. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7729. VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( VULKAN_HPP_NAMESPACE::ImageSubresource subresource_ = {},
  7730. VULKAN_HPP_NAMESPACE::Offset3D offset_ = {},
  7731. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
  7732. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  7733. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  7734. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
  7735. : subresource( subresource_ )
  7736. , offset( offset_ )
  7737. , extent( extent_ )
  7738. , memory( memory_ )
  7739. , memoryOffset( memoryOffset_ )
  7740. , flags( flags_ )
  7741. {
  7742. }
  7743. VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7744. SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
  7745. : SparseImageMemoryBind( *reinterpret_cast<SparseImageMemoryBind const *>( &rhs ) )
  7746. {
  7747. }
  7748. SparseImageMemoryBind & operator=( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7749. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7750. SparseImageMemoryBind & operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT
  7751. {
  7752. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBind const *>( &rhs );
  7753. return *this;
  7754. }
  7755. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7756. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT
  7757. {
  7758. subresource = subresource_;
  7759. return *this;
  7760. }
  7761. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D const & offset_ ) VULKAN_HPP_NOEXCEPT
  7762. {
  7763. offset = offset_;
  7764. return *this;
  7765. }
  7766. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  7767. {
  7768. extent = extent_;
  7769. return *this;
  7770. }
  7771. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  7772. {
  7773. memory = memory_;
  7774. return *this;
  7775. }
  7776. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  7777. {
  7778. memoryOffset = memoryOffset_;
  7779. return *this;
  7780. }
  7781. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT
  7782. {
  7783. flags = flags_;
  7784. return *this;
  7785. }
  7786. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7787. operator VkSparseImageMemoryBind const &() const VULKAN_HPP_NOEXCEPT
  7788. {
  7789. return *reinterpret_cast<const VkSparseImageMemoryBind *>( this );
  7790. }
  7791. operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT
  7792. {
  7793. return *reinterpret_cast<VkSparseImageMemoryBind *>( this );
  7794. }
  7795. #if defined( VULKAN_HPP_USE_REFLECT )
  7796. # if 14 <= VULKAN_HPP_CPP_VERSION
  7797. auto
  7798. # else
  7799. std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresource const &,
  7800. VULKAN_HPP_NAMESPACE::Offset3D const &,
  7801. VULKAN_HPP_NAMESPACE::Extent3D const &,
  7802. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  7803. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  7804. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags const &>
  7805. # endif
  7806. reflect() const VULKAN_HPP_NOEXCEPT
  7807. {
  7808. return std::tie( subresource, offset, extent, memory, memoryOffset, flags );
  7809. }
  7810. #endif
  7811. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7812. auto operator<=>( SparseImageMemoryBind const & ) const = default;
  7813. #else
  7814. bool operator==( SparseImageMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
  7815. {
  7816. # if defined( VULKAN_HPP_USE_REFLECT )
  7817. return this->reflect() == rhs.reflect();
  7818. # else
  7819. return ( subresource == rhs.subresource ) && ( offset == rhs.offset ) && ( extent == rhs.extent ) && ( memory == rhs.memory ) &&
  7820. ( memoryOffset == rhs.memoryOffset ) && ( flags == rhs.flags );
  7821. # endif
  7822. }
  7823. bool operator!=( SparseImageMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT
  7824. {
  7825. return !operator==( rhs );
  7826. }
  7827. #endif
  7828. public:
  7829. VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {};
  7830. VULKAN_HPP_NAMESPACE::Offset3D offset = {};
  7831. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  7832. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  7833. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  7834. VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {};
  7835. };
  7836. struct SparseImageMemoryBindInfo
  7837. {
  7838. using NativeType = VkSparseImageMemoryBindInfo;
  7839. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7840. VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
  7841. uint32_t bindCount_ = {},
  7842. const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT
  7843. : image( image_ )
  7844. , bindCount( bindCount_ )
  7845. , pBinds( pBinds_ )
  7846. {
  7847. }
  7848. VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7849. SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  7850. : SparseImageMemoryBindInfo( *reinterpret_cast<SparseImageMemoryBindInfo const *>( &rhs ) )
  7851. {
  7852. }
  7853. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7854. SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_,
  7855. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ )
  7856. : image( image_ ), bindCount( static_cast<uint32_t>( binds_.size() ) ), pBinds( binds_.data() )
  7857. {
  7858. }
  7859. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7860. SparseImageMemoryBindInfo & operator=( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7861. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7862. SparseImageMemoryBindInfo & operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  7863. {
  7864. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo const *>( &rhs );
  7865. return *this;
  7866. }
  7867. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7868. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  7869. {
  7870. image = image_;
  7871. return *this;
  7872. }
  7873. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT
  7874. {
  7875. bindCount = bindCount_;
  7876. return *this;
  7877. }
  7878. VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT
  7879. {
  7880. pBinds = pBinds_;
  7881. return *this;
  7882. }
  7883. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7884. SparseImageMemoryBindInfo &
  7885. setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind> const & binds_ ) VULKAN_HPP_NOEXCEPT
  7886. {
  7887. bindCount = static_cast<uint32_t>( binds_.size() );
  7888. pBinds = binds_.data();
  7889. return *this;
  7890. }
  7891. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7892. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  7893. operator VkSparseImageMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT
  7894. {
  7895. return *reinterpret_cast<const VkSparseImageMemoryBindInfo *>( this );
  7896. }
  7897. operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT
  7898. {
  7899. return *reinterpret_cast<VkSparseImageMemoryBindInfo *>( this );
  7900. }
  7901. #if defined( VULKAN_HPP_USE_REFLECT )
  7902. # if 14 <= VULKAN_HPP_CPP_VERSION
  7903. auto
  7904. # else
  7905. std::tuple<VULKAN_HPP_NAMESPACE::Image const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * const &>
  7906. # endif
  7907. reflect() const VULKAN_HPP_NOEXCEPT
  7908. {
  7909. return std::tie( image, bindCount, pBinds );
  7910. }
  7911. #endif
  7912. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  7913. auto operator<=>( SparseImageMemoryBindInfo const & ) const = default;
  7914. #else
  7915. bool operator==( SparseImageMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  7916. {
  7917. # if defined( VULKAN_HPP_USE_REFLECT )
  7918. return this->reflect() == rhs.reflect();
  7919. # else
  7920. return ( image == rhs.image ) && ( bindCount == rhs.bindCount ) && ( pBinds == rhs.pBinds );
  7921. # endif
  7922. }
  7923. bool operator!=( SparseImageMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  7924. {
  7925. return !operator==( rhs );
  7926. }
  7927. #endif
  7928. public:
  7929. VULKAN_HPP_NAMESPACE::Image image = {};
  7930. uint32_t bindCount = {};
  7931. const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds = {};
  7932. };
  7933. struct BindSparseInfo
  7934. {
  7935. using NativeType = VkBindSparseInfo;
  7936. static const bool allowDuplicate = false;
  7937. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindSparseInfo;
  7938. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  7939. VULKAN_HPP_CONSTEXPR BindSparseInfo( uint32_t waitSemaphoreCount_ = {},
  7940. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {},
  7941. uint32_t bufferBindCount_ = {},
  7942. const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds_ = {},
  7943. uint32_t imageOpaqueBindCount_ = {},
  7944. const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds_ = {},
  7945. uint32_t imageBindCount_ = {},
  7946. const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds_ = {},
  7947. uint32_t signalSemaphoreCount_ = {},
  7948. const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ = {},
  7949. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  7950. : pNext( pNext_ )
  7951. , waitSemaphoreCount( waitSemaphoreCount_ )
  7952. , pWaitSemaphores( pWaitSemaphores_ )
  7953. , bufferBindCount( bufferBindCount_ )
  7954. , pBufferBinds( pBufferBinds_ )
  7955. , imageOpaqueBindCount( imageOpaqueBindCount_ )
  7956. , pImageOpaqueBinds( pImageOpaqueBinds_ )
  7957. , imageBindCount( imageBindCount_ )
  7958. , pImageBinds( pImageBinds_ )
  7959. , signalSemaphoreCount( signalSemaphoreCount_ )
  7960. , pSignalSemaphores( pSignalSemaphores_ )
  7961. {
  7962. }
  7963. VULKAN_HPP_CONSTEXPR BindSparseInfo( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7964. BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT : BindSparseInfo( *reinterpret_cast<BindSparseInfo const *>( &rhs ) ) {}
  7965. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  7966. BindSparseInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_,
  7967. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const & bufferBinds_ = {},
  7968. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const & imageOpaqueBinds_ = {},
  7969. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const & imageBinds_ = {},
  7970. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ = {},
  7971. const void * pNext_ = nullptr )
  7972. : pNext( pNext_ )
  7973. , waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) )
  7974. , pWaitSemaphores( waitSemaphores_.data() )
  7975. , bufferBindCount( static_cast<uint32_t>( bufferBinds_.size() ) )
  7976. , pBufferBinds( bufferBinds_.data() )
  7977. , imageOpaqueBindCount( static_cast<uint32_t>( imageOpaqueBinds_.size() ) )
  7978. , pImageOpaqueBinds( imageOpaqueBinds_.data() )
  7979. , imageBindCount( static_cast<uint32_t>( imageBinds_.size() ) )
  7980. , pImageBinds( imageBinds_.data() )
  7981. , signalSemaphoreCount( static_cast<uint32_t>( signalSemaphores_.size() ) )
  7982. , pSignalSemaphores( signalSemaphores_.data() )
  7983. {
  7984. }
  7985. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  7986. BindSparseInfo & operator=( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  7987. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  7988. BindSparseInfo & operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  7989. {
  7990. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindSparseInfo const *>( &rhs );
  7991. return *this;
  7992. }
  7993. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  7994. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  7995. {
  7996. pNext = pNext_;
  7997. return *this;
  7998. }
  7999. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  8000. {
  8001. waitSemaphoreCount = waitSemaphoreCount_;
  8002. return *this;
  8003. }
  8004. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  8005. {
  8006. pWaitSemaphores = pWaitSemaphores_;
  8007. return *this;
  8008. }
  8009. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  8010. BindSparseInfo &
  8011. setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  8012. {
  8013. waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
  8014. pWaitSemaphores = waitSemaphores_.data();
  8015. return *this;
  8016. }
  8017. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  8018. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT
  8019. {
  8020. bufferBindCount = bufferBindCount_;
  8021. return *this;
  8022. }
  8023. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds_ ) VULKAN_HPP_NOEXCEPT
  8024. {
  8025. pBufferBinds = pBufferBinds_;
  8026. return *this;
  8027. }
  8028. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  8029. BindSparseInfo & setBufferBinds(
  8030. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo> const & bufferBinds_ ) VULKAN_HPP_NOEXCEPT
  8031. {
  8032. bufferBindCount = static_cast<uint32_t>( bufferBinds_.size() );
  8033. pBufferBinds = bufferBinds_.data();
  8034. return *this;
  8035. }
  8036. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  8037. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT
  8038. {
  8039. imageOpaqueBindCount = imageOpaqueBindCount_;
  8040. return *this;
  8041. }
  8042. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo &
  8043. setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
  8044. {
  8045. pImageOpaqueBinds = pImageOpaqueBinds_;
  8046. return *this;
  8047. }
  8048. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  8049. BindSparseInfo & setImageOpaqueBinds(
  8050. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo> const & imageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT
  8051. {
  8052. imageOpaqueBindCount = static_cast<uint32_t>( imageOpaqueBinds_.size() );
  8053. pImageOpaqueBinds = imageOpaqueBinds_.data();
  8054. return *this;
  8055. }
  8056. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  8057. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT
  8058. {
  8059. imageBindCount = imageBindCount_;
  8060. return *this;
  8061. }
  8062. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds_ ) VULKAN_HPP_NOEXCEPT
  8063. {
  8064. pImageBinds = pImageBinds_;
  8065. return *this;
  8066. }
  8067. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  8068. BindSparseInfo & setImageBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo> const & imageBinds_ )
  8069. VULKAN_HPP_NOEXCEPT
  8070. {
  8071. imageBindCount = static_cast<uint32_t>( imageBinds_.size() );
  8072. pImageBinds = imageBinds_.data();
  8073. return *this;
  8074. }
  8075. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  8076. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  8077. {
  8078. signalSemaphoreCount = signalSemaphoreCount_;
  8079. return *this;
  8080. }
  8081. VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
  8082. {
  8083. pSignalSemaphores = pSignalSemaphores_;
  8084. return *this;
  8085. }
  8086. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  8087. BindSparseInfo &
  8088. setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
  8089. {
  8090. signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
  8091. pSignalSemaphores = signalSemaphores_.data();
  8092. return *this;
  8093. }
  8094. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  8095. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8096. operator VkBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
  8097. {
  8098. return *reinterpret_cast<const VkBindSparseInfo *>( this );
  8099. }
  8100. operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT
  8101. {
  8102. return *reinterpret_cast<VkBindSparseInfo *>( this );
  8103. }
  8104. #if defined( VULKAN_HPP_USE_REFLECT )
  8105. # if 14 <= VULKAN_HPP_CPP_VERSION
  8106. auto
  8107. # else
  8108. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  8109. const void * const &,
  8110. uint32_t const &,
  8111. const VULKAN_HPP_NAMESPACE::Semaphore * const &,
  8112. uint32_t const &,
  8113. const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * const &,
  8114. uint32_t const &,
  8115. const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * const &,
  8116. uint32_t const &,
  8117. const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * const &,
  8118. uint32_t const &,
  8119. const VULKAN_HPP_NAMESPACE::Semaphore * const &>
  8120. # endif
  8121. reflect() const VULKAN_HPP_NOEXCEPT
  8122. {
  8123. return std::tie( sType,
  8124. pNext,
  8125. waitSemaphoreCount,
  8126. pWaitSemaphores,
  8127. bufferBindCount,
  8128. pBufferBinds,
  8129. imageOpaqueBindCount,
  8130. pImageOpaqueBinds,
  8131. imageBindCount,
  8132. pImageBinds,
  8133. signalSemaphoreCount,
  8134. pSignalSemaphores );
  8135. }
  8136. #endif
  8137. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8138. auto operator<=>( BindSparseInfo const & ) const = default;
  8139. #else
  8140. bool operator==( BindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  8141. {
  8142. # if defined( VULKAN_HPP_USE_REFLECT )
  8143. return this->reflect() == rhs.reflect();
  8144. # else
  8145. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) &&
  8146. ( pWaitSemaphores == rhs.pWaitSemaphores ) && ( bufferBindCount == rhs.bufferBindCount ) && ( pBufferBinds == rhs.pBufferBinds ) &&
  8147. ( imageOpaqueBindCount == rhs.imageOpaqueBindCount ) && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds ) &&
  8148. ( imageBindCount == rhs.imageBindCount ) && ( pImageBinds == rhs.pImageBinds ) && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) &&
  8149. ( pSignalSemaphores == rhs.pSignalSemaphores );
  8150. # endif
  8151. }
  8152. bool operator!=( BindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  8153. {
  8154. return !operator==( rhs );
  8155. }
  8156. #endif
  8157. public:
  8158. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo;
  8159. const void * pNext = {};
  8160. uint32_t waitSemaphoreCount = {};
  8161. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {};
  8162. uint32_t bufferBindCount = {};
  8163. const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds = {};
  8164. uint32_t imageOpaqueBindCount = {};
  8165. const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds = {};
  8166. uint32_t imageBindCount = {};
  8167. const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds = {};
  8168. uint32_t signalSemaphoreCount = {};
  8169. const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores = {};
  8170. };
  8171. template <>
  8172. struct CppType<StructureType, StructureType::eBindSparseInfo>
  8173. {
  8174. using Type = BindSparseInfo;
  8175. };
  8176. struct BindVertexBufferIndirectCommandNV
  8177. {
  8178. using NativeType = VkBindVertexBufferIndirectCommandNV;
  8179. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8180. VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {},
  8181. uint32_t size_ = {},
  8182. uint32_t stride_ = {} ) VULKAN_HPP_NOEXCEPT
  8183. : bufferAddress( bufferAddress_ )
  8184. , size( size_ )
  8185. , stride( stride_ )
  8186. {
  8187. }
  8188. VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8189. BindVertexBufferIndirectCommandNV( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  8190. : BindVertexBufferIndirectCommandNV( *reinterpret_cast<BindVertexBufferIndirectCommandNV const *>( &rhs ) )
  8191. {
  8192. }
  8193. BindVertexBufferIndirectCommandNV & operator=( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8194. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8195. BindVertexBufferIndirectCommandNV & operator=( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  8196. {
  8197. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV const *>( &rhs );
  8198. return *this;
  8199. }
  8200. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8201. VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
  8202. {
  8203. bufferAddress = bufferAddress_;
  8204. return *this;
  8205. }
  8206. VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
  8207. {
  8208. size = size_;
  8209. return *this;
  8210. }
  8211. VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
  8212. {
  8213. stride = stride_;
  8214. return *this;
  8215. }
  8216. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8217. operator VkBindVertexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  8218. {
  8219. return *reinterpret_cast<const VkBindVertexBufferIndirectCommandNV *>( this );
  8220. }
  8221. operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  8222. {
  8223. return *reinterpret_cast<VkBindVertexBufferIndirectCommandNV *>( this );
  8224. }
  8225. #if defined( VULKAN_HPP_USE_REFLECT )
  8226. # if 14 <= VULKAN_HPP_CPP_VERSION
  8227. auto
  8228. # else
  8229. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, uint32_t const &, uint32_t const &>
  8230. # endif
  8231. reflect() const VULKAN_HPP_NOEXCEPT
  8232. {
  8233. return std::tie( bufferAddress, size, stride );
  8234. }
  8235. #endif
  8236. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8237. auto operator<=>( BindVertexBufferIndirectCommandNV const & ) const = default;
  8238. #else
  8239. bool operator==( BindVertexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  8240. {
  8241. # if defined( VULKAN_HPP_USE_REFLECT )
  8242. return this->reflect() == rhs.reflect();
  8243. # else
  8244. return ( bufferAddress == rhs.bufferAddress ) && ( size == rhs.size ) && ( stride == rhs.stride );
  8245. # endif
  8246. }
  8247. bool operator!=( BindVertexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  8248. {
  8249. return !operator==( rhs );
  8250. }
  8251. #endif
  8252. public:
  8253. VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
  8254. uint32_t size = {};
  8255. uint32_t stride = {};
  8256. };
  8257. struct BindVideoSessionMemoryInfoKHR
  8258. {
  8259. using NativeType = VkBindVideoSessionMemoryInfoKHR;
  8260. static const bool allowDuplicate = false;
  8261. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindVideoSessionMemoryInfoKHR;
  8262. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8263. VULKAN_HPP_CONSTEXPR BindVideoSessionMemoryInfoKHR( uint32_t memoryBindIndex_ = {},
  8264. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  8265. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {},
  8266. VULKAN_HPP_NAMESPACE::DeviceSize memorySize_ = {},
  8267. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8268. : pNext( pNext_ )
  8269. , memoryBindIndex( memoryBindIndex_ )
  8270. , memory( memory_ )
  8271. , memoryOffset( memoryOffset_ )
  8272. , memorySize( memorySize_ )
  8273. {
  8274. }
  8275. VULKAN_HPP_CONSTEXPR BindVideoSessionMemoryInfoKHR( BindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8276. BindVideoSessionMemoryInfoKHR( VkBindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  8277. : BindVideoSessionMemoryInfoKHR( *reinterpret_cast<BindVideoSessionMemoryInfoKHR const *>( &rhs ) )
  8278. {
  8279. }
  8280. BindVideoSessionMemoryInfoKHR & operator=( BindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8281. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8282. BindVideoSessionMemoryInfoKHR & operator=( VkBindVideoSessionMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  8283. {
  8284. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR const *>( &rhs );
  8285. return *this;
  8286. }
  8287. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8288. VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8289. {
  8290. pNext = pNext_;
  8291. return *this;
  8292. }
  8293. VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemoryBindIndex( uint32_t memoryBindIndex_ ) VULKAN_HPP_NOEXCEPT
  8294. {
  8295. memoryBindIndex = memoryBindIndex_;
  8296. return *this;
  8297. }
  8298. VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  8299. {
  8300. memory = memory_;
  8301. return *this;
  8302. }
  8303. VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT
  8304. {
  8305. memoryOffset = memoryOffset_;
  8306. return *this;
  8307. }
  8308. VULKAN_HPP_CONSTEXPR_14 BindVideoSessionMemoryInfoKHR & setMemorySize( VULKAN_HPP_NAMESPACE::DeviceSize memorySize_ ) VULKAN_HPP_NOEXCEPT
  8309. {
  8310. memorySize = memorySize_;
  8311. return *this;
  8312. }
  8313. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8314. operator VkBindVideoSessionMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  8315. {
  8316. return *reinterpret_cast<const VkBindVideoSessionMemoryInfoKHR *>( this );
  8317. }
  8318. operator VkBindVideoSessionMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
  8319. {
  8320. return *reinterpret_cast<VkBindVideoSessionMemoryInfoKHR *>( this );
  8321. }
  8322. #if defined( VULKAN_HPP_USE_REFLECT )
  8323. # if 14 <= VULKAN_HPP_CPP_VERSION
  8324. auto
  8325. # else
  8326. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  8327. const void * const &,
  8328. uint32_t const &,
  8329. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  8330. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  8331. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  8332. # endif
  8333. reflect() const VULKAN_HPP_NOEXCEPT
  8334. {
  8335. return std::tie( sType, pNext, memoryBindIndex, memory, memoryOffset, memorySize );
  8336. }
  8337. #endif
  8338. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8339. auto operator<=>( BindVideoSessionMemoryInfoKHR const & ) const = default;
  8340. #else
  8341. bool operator==( BindVideoSessionMemoryInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  8342. {
  8343. # if defined( VULKAN_HPP_USE_REFLECT )
  8344. return this->reflect() == rhs.reflect();
  8345. # else
  8346. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryBindIndex == rhs.memoryBindIndex ) && ( memory == rhs.memory ) &&
  8347. ( memoryOffset == rhs.memoryOffset ) && ( memorySize == rhs.memorySize );
  8348. # endif
  8349. }
  8350. bool operator!=( BindVideoSessionMemoryInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  8351. {
  8352. return !operator==( rhs );
  8353. }
  8354. #endif
  8355. public:
  8356. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindVideoSessionMemoryInfoKHR;
  8357. const void * pNext = {};
  8358. uint32_t memoryBindIndex = {};
  8359. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  8360. VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {};
  8361. VULKAN_HPP_NAMESPACE::DeviceSize memorySize = {};
  8362. };
  8363. template <>
  8364. struct CppType<StructureType, StructureType::eBindVideoSessionMemoryInfoKHR>
  8365. {
  8366. using Type = BindVideoSessionMemoryInfoKHR;
  8367. };
  8368. struct BlitImageCubicWeightsInfoQCOM
  8369. {
  8370. using NativeType = VkBlitImageCubicWeightsInfoQCOM;
  8371. static const bool allowDuplicate = false;
  8372. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageCubicWeightsInfoQCOM;
  8373. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8374. VULKAN_HPP_CONSTEXPR
  8375. BlitImageCubicWeightsInfoQCOM( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom,
  8376. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8377. : pNext( pNext_ )
  8378. , cubicWeights( cubicWeights_ )
  8379. {
  8380. }
  8381. VULKAN_HPP_CONSTEXPR BlitImageCubicWeightsInfoQCOM( BlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8382. BlitImageCubicWeightsInfoQCOM( VkBlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  8383. : BlitImageCubicWeightsInfoQCOM( *reinterpret_cast<BlitImageCubicWeightsInfoQCOM const *>( &rhs ) )
  8384. {
  8385. }
  8386. BlitImageCubicWeightsInfoQCOM & operator=( BlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8387. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8388. BlitImageCubicWeightsInfoQCOM & operator=( VkBlitImageCubicWeightsInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  8389. {
  8390. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM const *>( &rhs );
  8391. return *this;
  8392. }
  8393. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8394. VULKAN_HPP_CONSTEXPR_14 BlitImageCubicWeightsInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8395. {
  8396. pNext = pNext_;
  8397. return *this;
  8398. }
  8399. VULKAN_HPP_CONSTEXPR_14 BlitImageCubicWeightsInfoQCOM & setCubicWeights( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ ) VULKAN_HPP_NOEXCEPT
  8400. {
  8401. cubicWeights = cubicWeights_;
  8402. return *this;
  8403. }
  8404. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8405. operator VkBlitImageCubicWeightsInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  8406. {
  8407. return *reinterpret_cast<const VkBlitImageCubicWeightsInfoQCOM *>( this );
  8408. }
  8409. operator VkBlitImageCubicWeightsInfoQCOM &() VULKAN_HPP_NOEXCEPT
  8410. {
  8411. return *reinterpret_cast<VkBlitImageCubicWeightsInfoQCOM *>( this );
  8412. }
  8413. #if defined( VULKAN_HPP_USE_REFLECT )
  8414. # if 14 <= VULKAN_HPP_CPP_VERSION
  8415. auto
  8416. # else
  8417. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM const &>
  8418. # endif
  8419. reflect() const VULKAN_HPP_NOEXCEPT
  8420. {
  8421. return std::tie( sType, pNext, cubicWeights );
  8422. }
  8423. #endif
  8424. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8425. auto operator<=>( BlitImageCubicWeightsInfoQCOM const & ) const = default;
  8426. #else
  8427. bool operator==( BlitImageCubicWeightsInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  8428. {
  8429. # if defined( VULKAN_HPP_USE_REFLECT )
  8430. return this->reflect() == rhs.reflect();
  8431. # else
  8432. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cubicWeights == rhs.cubicWeights );
  8433. # endif
  8434. }
  8435. bool operator!=( BlitImageCubicWeightsInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  8436. {
  8437. return !operator==( rhs );
  8438. }
  8439. #endif
  8440. public:
  8441. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageCubicWeightsInfoQCOM;
  8442. const void * pNext = {};
  8443. VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom;
  8444. };
  8445. template <>
  8446. struct CppType<StructureType, StructureType::eBlitImageCubicWeightsInfoQCOM>
  8447. {
  8448. using Type = BlitImageCubicWeightsInfoQCOM;
  8449. };
  8450. struct ImageSubresourceLayers
  8451. {
  8452. using NativeType = VkImageSubresourceLayers;
  8453. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8454. VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
  8455. uint32_t mipLevel_ = {},
  8456. uint32_t baseArrayLayer_ = {},
  8457. uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
  8458. : aspectMask( aspectMask_ )
  8459. , mipLevel( mipLevel_ )
  8460. , baseArrayLayer( baseArrayLayer_ )
  8461. , layerCount( layerCount_ )
  8462. {
  8463. }
  8464. VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8465. ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
  8466. : ImageSubresourceLayers( *reinterpret_cast<ImageSubresourceLayers const *>( &rhs ) )
  8467. {
  8468. }
  8469. ImageSubresourceLayers & operator=( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8470. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8471. ImageSubresourceLayers & operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT
  8472. {
  8473. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const *>( &rhs );
  8474. return *this;
  8475. }
  8476. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8477. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  8478. {
  8479. aspectMask = aspectMask_;
  8480. return *this;
  8481. }
  8482. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT
  8483. {
  8484. mipLevel = mipLevel_;
  8485. return *this;
  8486. }
  8487. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
  8488. {
  8489. baseArrayLayer = baseArrayLayer_;
  8490. return *this;
  8491. }
  8492. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  8493. {
  8494. layerCount = layerCount_;
  8495. return *this;
  8496. }
  8497. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8498. operator VkImageSubresourceLayers const &() const VULKAN_HPP_NOEXCEPT
  8499. {
  8500. return *reinterpret_cast<const VkImageSubresourceLayers *>( this );
  8501. }
  8502. operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT
  8503. {
  8504. return *reinterpret_cast<VkImageSubresourceLayers *>( this );
  8505. }
  8506. #if defined( VULKAN_HPP_USE_REFLECT )
  8507. # if 14 <= VULKAN_HPP_CPP_VERSION
  8508. auto
  8509. # else
  8510. std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, uint32_t const &, uint32_t const &>
  8511. # endif
  8512. reflect() const VULKAN_HPP_NOEXCEPT
  8513. {
  8514. return std::tie( aspectMask, mipLevel, baseArrayLayer, layerCount );
  8515. }
  8516. #endif
  8517. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8518. auto operator<=>( ImageSubresourceLayers const & ) const = default;
  8519. #else
  8520. bool operator==( ImageSubresourceLayers const & rhs ) const VULKAN_HPP_NOEXCEPT
  8521. {
  8522. # if defined( VULKAN_HPP_USE_REFLECT )
  8523. return this->reflect() == rhs.reflect();
  8524. # else
  8525. return ( aspectMask == rhs.aspectMask ) && ( mipLevel == rhs.mipLevel ) && ( baseArrayLayer == rhs.baseArrayLayer ) && ( layerCount == rhs.layerCount );
  8526. # endif
  8527. }
  8528. bool operator!=( ImageSubresourceLayers const & rhs ) const VULKAN_HPP_NOEXCEPT
  8529. {
  8530. return !operator==( rhs );
  8531. }
  8532. #endif
  8533. public:
  8534. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  8535. uint32_t mipLevel = {};
  8536. uint32_t baseArrayLayer = {};
  8537. uint32_t layerCount = {};
  8538. };
  8539. struct ImageBlit2
  8540. {
  8541. using NativeType = VkImageBlit2;
  8542. static const bool allowDuplicate = false;
  8543. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageBlit2;
  8544. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8545. VULKAN_HPP_CONSTEXPR_14 ImageBlit2( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  8546. std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & srcOffsets_ = {},
  8547. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  8548. std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & dstOffsets_ = {},
  8549. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8550. : pNext( pNext_ )
  8551. , srcSubresource( srcSubresource_ )
  8552. , srcOffsets( srcOffsets_ )
  8553. , dstSubresource( dstSubresource_ )
  8554. , dstOffsets( dstOffsets_ )
  8555. {
  8556. }
  8557. VULKAN_HPP_CONSTEXPR_14 ImageBlit2( ImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8558. ImageBlit2( VkImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT : ImageBlit2( *reinterpret_cast<ImageBlit2 const *>( &rhs ) ) {}
  8559. ImageBlit2 & operator=( ImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8560. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8561. ImageBlit2 & operator=( VkImageBlit2 const & rhs ) VULKAN_HPP_NOEXCEPT
  8562. {
  8563. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit2 const *>( &rhs );
  8564. return *this;
  8565. }
  8566. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8567. VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8568. {
  8569. pNext = pNext_;
  8570. return *this;
  8571. }
  8572. VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  8573. {
  8574. srcSubresource = srcSubresource_;
  8575. return *this;
  8576. }
  8577. VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
  8578. {
  8579. srcOffsets = srcOffsets_;
  8580. return *this;
  8581. }
  8582. VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  8583. {
  8584. dstSubresource = dstSubresource_;
  8585. return *this;
  8586. }
  8587. VULKAN_HPP_CONSTEXPR_14 ImageBlit2 & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
  8588. {
  8589. dstOffsets = dstOffsets_;
  8590. return *this;
  8591. }
  8592. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8593. operator VkImageBlit2 const &() const VULKAN_HPP_NOEXCEPT
  8594. {
  8595. return *reinterpret_cast<const VkImageBlit2 *>( this );
  8596. }
  8597. operator VkImageBlit2 &() VULKAN_HPP_NOEXCEPT
  8598. {
  8599. return *reinterpret_cast<VkImageBlit2 *>( this );
  8600. }
  8601. #if defined( VULKAN_HPP_USE_REFLECT )
  8602. # if 14 <= VULKAN_HPP_CPP_VERSION
  8603. auto
  8604. # else
  8605. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  8606. const void * const &,
  8607. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  8608. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &,
  8609. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  8610. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &>
  8611. # endif
  8612. reflect() const VULKAN_HPP_NOEXCEPT
  8613. {
  8614. return std::tie( sType, pNext, srcSubresource, srcOffsets, dstSubresource, dstOffsets );
  8615. }
  8616. #endif
  8617. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8618. auto operator<=>( ImageBlit2 const & ) const = default;
  8619. #else
  8620. bool operator==( ImageBlit2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  8621. {
  8622. # if defined( VULKAN_HPP_USE_REFLECT )
  8623. return this->reflect() == rhs.reflect();
  8624. # else
  8625. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubresource == rhs.srcSubresource ) && ( srcOffsets == rhs.srcOffsets ) &&
  8626. ( dstSubresource == rhs.dstSubresource ) && ( dstOffsets == rhs.dstOffsets );
  8627. # endif
  8628. }
  8629. bool operator!=( ImageBlit2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  8630. {
  8631. return !operator==( rhs );
  8632. }
  8633. #endif
  8634. public:
  8635. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageBlit2;
  8636. const void * pNext = {};
  8637. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  8638. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
  8639. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  8640. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
  8641. };
  8642. template <>
  8643. struct CppType<StructureType, StructureType::eImageBlit2>
  8644. {
  8645. using Type = ImageBlit2;
  8646. };
  8647. using ImageBlit2KHR = ImageBlit2;
  8648. struct BlitImageInfo2
  8649. {
  8650. using NativeType = VkBlitImageInfo2;
  8651. static const bool allowDuplicate = false;
  8652. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageInfo2;
  8653. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8654. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_ = {},
  8655. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  8656. VULKAN_HPP_NAMESPACE::Image dstImage_ = {},
  8657. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  8658. uint32_t regionCount_ = {},
  8659. const VULKAN_HPP_NAMESPACE::ImageBlit2 * pRegions_ = {},
  8660. VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
  8661. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8662. : pNext( pNext_ )
  8663. , srcImage( srcImage_ )
  8664. , srcImageLayout( srcImageLayout_ )
  8665. , dstImage( dstImage_ )
  8666. , dstImageLayout( dstImageLayout_ )
  8667. , regionCount( regionCount_ )
  8668. , pRegions( pRegions_ )
  8669. , filter( filter_ )
  8670. {
  8671. }
  8672. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2( BlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8673. BlitImageInfo2( VkBlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : BlitImageInfo2( *reinterpret_cast<BlitImageInfo2 const *>( &rhs ) ) {}
  8674. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  8675. BlitImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_,
  8676. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_,
  8677. VULKAN_HPP_NAMESPACE::Image dstImage_,
  8678. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_,
  8679. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2> const & regions_,
  8680. VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
  8681. const void * pNext_ = nullptr )
  8682. : pNext( pNext_ )
  8683. , srcImage( srcImage_ )
  8684. , srcImageLayout( srcImageLayout_ )
  8685. , dstImage( dstImage_ )
  8686. , dstImageLayout( dstImageLayout_ )
  8687. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  8688. , pRegions( regions_.data() )
  8689. , filter( filter_ )
  8690. {
  8691. }
  8692. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  8693. BlitImageInfo2 & operator=( BlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8694. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8695. BlitImageInfo2 & operator=( VkBlitImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  8696. {
  8697. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BlitImageInfo2 const *>( &rhs );
  8698. return *this;
  8699. }
  8700. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8701. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8702. {
  8703. pNext = pNext_;
  8704. return *this;
  8705. }
  8706. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
  8707. {
  8708. srcImage = srcImage_;
  8709. return *this;
  8710. }
  8711. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
  8712. {
  8713. srcImageLayout = srcImageLayout_;
  8714. return *this;
  8715. }
  8716. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
  8717. {
  8718. dstImage = dstImage_;
  8719. return *this;
  8720. }
  8721. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
  8722. {
  8723. dstImageLayout = dstImageLayout_;
  8724. return *this;
  8725. }
  8726. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  8727. {
  8728. regionCount = regionCount_;
  8729. return *this;
  8730. }
  8731. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::ImageBlit2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  8732. {
  8733. pRegions = pRegions_;
  8734. return *this;
  8735. }
  8736. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  8737. BlitImageInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageBlit2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  8738. {
  8739. regionCount = static_cast<uint32_t>( regions_.size() );
  8740. pRegions = regions_.data();
  8741. return *this;
  8742. }
  8743. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  8744. VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2 & setFilter( VULKAN_HPP_NAMESPACE::Filter filter_ ) VULKAN_HPP_NOEXCEPT
  8745. {
  8746. filter = filter_;
  8747. return *this;
  8748. }
  8749. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8750. operator VkBlitImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
  8751. {
  8752. return *reinterpret_cast<const VkBlitImageInfo2 *>( this );
  8753. }
  8754. operator VkBlitImageInfo2 &() VULKAN_HPP_NOEXCEPT
  8755. {
  8756. return *reinterpret_cast<VkBlitImageInfo2 *>( this );
  8757. }
  8758. #if defined( VULKAN_HPP_USE_REFLECT )
  8759. # if 14 <= VULKAN_HPP_CPP_VERSION
  8760. auto
  8761. # else
  8762. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  8763. const void * const &,
  8764. VULKAN_HPP_NAMESPACE::Image const &,
  8765. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  8766. VULKAN_HPP_NAMESPACE::Image const &,
  8767. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  8768. uint32_t const &,
  8769. const VULKAN_HPP_NAMESPACE::ImageBlit2 * const &,
  8770. VULKAN_HPP_NAMESPACE::Filter const &>
  8771. # endif
  8772. reflect() const VULKAN_HPP_NOEXCEPT
  8773. {
  8774. return std::tie( sType, pNext, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
  8775. }
  8776. #endif
  8777. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8778. auto operator<=>( BlitImageInfo2 const & ) const = default;
  8779. #else
  8780. bool operator==( BlitImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  8781. {
  8782. # if defined( VULKAN_HPP_USE_REFLECT )
  8783. return this->reflect() == rhs.reflect();
  8784. # else
  8785. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && ( srcImageLayout == rhs.srcImageLayout ) &&
  8786. ( dstImage == rhs.dstImage ) && ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions ) &&
  8787. ( filter == rhs.filter );
  8788. # endif
  8789. }
  8790. bool operator!=( BlitImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  8791. {
  8792. return !operator==( rhs );
  8793. }
  8794. #endif
  8795. public:
  8796. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageInfo2;
  8797. const void * pNext = {};
  8798. VULKAN_HPP_NAMESPACE::Image srcImage = {};
  8799. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  8800. VULKAN_HPP_NAMESPACE::Image dstImage = {};
  8801. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  8802. uint32_t regionCount = {};
  8803. const VULKAN_HPP_NAMESPACE::ImageBlit2 * pRegions = {};
  8804. VULKAN_HPP_NAMESPACE::Filter filter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
  8805. };
  8806. template <>
  8807. struct CppType<StructureType, StructureType::eBlitImageInfo2>
  8808. {
  8809. using Type = BlitImageInfo2;
  8810. };
  8811. using BlitImageInfo2KHR = BlitImageInfo2;
  8812. struct BufferCaptureDescriptorDataInfoEXT
  8813. {
  8814. using NativeType = VkBufferCaptureDescriptorDataInfoEXT;
  8815. static const bool allowDuplicate = false;
  8816. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCaptureDescriptorDataInfoEXT;
  8817. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8818. VULKAN_HPP_CONSTEXPR BufferCaptureDescriptorDataInfoEXT( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8819. : pNext( pNext_ )
  8820. , buffer( buffer_ )
  8821. {
  8822. }
  8823. VULKAN_HPP_CONSTEXPR BufferCaptureDescriptorDataInfoEXT( BufferCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8824. BufferCaptureDescriptorDataInfoEXT( VkBufferCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  8825. : BufferCaptureDescriptorDataInfoEXT( *reinterpret_cast<BufferCaptureDescriptorDataInfoEXT const *>( &rhs ) )
  8826. {
  8827. }
  8828. BufferCaptureDescriptorDataInfoEXT & operator=( BufferCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8829. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8830. BufferCaptureDescriptorDataInfoEXT & operator=( VkBufferCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  8831. {
  8832. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT const *>( &rhs );
  8833. return *this;
  8834. }
  8835. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8836. VULKAN_HPP_CONSTEXPR_14 BufferCaptureDescriptorDataInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8837. {
  8838. pNext = pNext_;
  8839. return *this;
  8840. }
  8841. VULKAN_HPP_CONSTEXPR_14 BufferCaptureDescriptorDataInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  8842. {
  8843. buffer = buffer_;
  8844. return *this;
  8845. }
  8846. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8847. operator VkBufferCaptureDescriptorDataInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  8848. {
  8849. return *reinterpret_cast<const VkBufferCaptureDescriptorDataInfoEXT *>( this );
  8850. }
  8851. operator VkBufferCaptureDescriptorDataInfoEXT &() VULKAN_HPP_NOEXCEPT
  8852. {
  8853. return *reinterpret_cast<VkBufferCaptureDescriptorDataInfoEXT *>( this );
  8854. }
  8855. #if defined( VULKAN_HPP_USE_REFLECT )
  8856. # if 14 <= VULKAN_HPP_CPP_VERSION
  8857. auto
  8858. # else
  8859. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &>
  8860. # endif
  8861. reflect() const VULKAN_HPP_NOEXCEPT
  8862. {
  8863. return std::tie( sType, pNext, buffer );
  8864. }
  8865. #endif
  8866. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8867. auto operator<=>( BufferCaptureDescriptorDataInfoEXT const & ) const = default;
  8868. #else
  8869. bool operator==( BufferCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  8870. {
  8871. # if defined( VULKAN_HPP_USE_REFLECT )
  8872. return this->reflect() == rhs.reflect();
  8873. # else
  8874. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer );
  8875. # endif
  8876. }
  8877. bool operator!=( BufferCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  8878. {
  8879. return !operator==( rhs );
  8880. }
  8881. #endif
  8882. public:
  8883. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCaptureDescriptorDataInfoEXT;
  8884. const void * pNext = {};
  8885. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  8886. };
  8887. template <>
  8888. struct CppType<StructureType, StructureType::eBufferCaptureDescriptorDataInfoEXT>
  8889. {
  8890. using Type = BufferCaptureDescriptorDataInfoEXT;
  8891. };
  8892. #if defined( VK_USE_PLATFORM_FUCHSIA )
  8893. struct BufferCollectionBufferCreateInfoFUCHSIA
  8894. {
  8895. using NativeType = VkBufferCollectionBufferCreateInfoFUCHSIA;
  8896. static const bool allowDuplicate = false;
  8897. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionBufferCreateInfoFUCHSIA;
  8898. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8899. VULKAN_HPP_CONSTEXPR BufferCollectionBufferCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {},
  8900. uint32_t index_ = {},
  8901. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8902. : pNext( pNext_ )
  8903. , collection( collection_ )
  8904. , index( index_ )
  8905. {
  8906. }
  8907. VULKAN_HPP_CONSTEXPR BufferCollectionBufferCreateInfoFUCHSIA( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8908. BufferCollectionBufferCreateInfoFUCHSIA( VkBufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8909. : BufferCollectionBufferCreateInfoFUCHSIA( *reinterpret_cast<BufferCollectionBufferCreateInfoFUCHSIA const *>( &rhs ) )
  8910. {
  8911. }
  8912. BufferCollectionBufferCreateInfoFUCHSIA & operator=( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  8913. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  8914. BufferCollectionBufferCreateInfoFUCHSIA & operator=( VkBufferCollectionBufferCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  8915. {
  8916. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA const *>( &rhs );
  8917. return *this;
  8918. }
  8919. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  8920. VULKAN_HPP_CONSTEXPR_14 BufferCollectionBufferCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  8921. {
  8922. pNext = pNext_;
  8923. return *this;
  8924. }
  8925. VULKAN_HPP_CONSTEXPR_14 BufferCollectionBufferCreateInfoFUCHSIA &
  8926. setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
  8927. {
  8928. collection = collection_;
  8929. return *this;
  8930. }
  8931. VULKAN_HPP_CONSTEXPR_14 BufferCollectionBufferCreateInfoFUCHSIA & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
  8932. {
  8933. index = index_;
  8934. return *this;
  8935. }
  8936. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  8937. operator VkBufferCollectionBufferCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  8938. {
  8939. return *reinterpret_cast<const VkBufferCollectionBufferCreateInfoFUCHSIA *>( this );
  8940. }
  8941. operator VkBufferCollectionBufferCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  8942. {
  8943. return *reinterpret_cast<VkBufferCollectionBufferCreateInfoFUCHSIA *>( this );
  8944. }
  8945. # if defined( VULKAN_HPP_USE_REFLECT )
  8946. # if 14 <= VULKAN_HPP_CPP_VERSION
  8947. auto
  8948. # else
  8949. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const &, uint32_t const &>
  8950. # endif
  8951. reflect() const VULKAN_HPP_NOEXCEPT
  8952. {
  8953. return std::tie( sType, pNext, collection, index );
  8954. }
  8955. # endif
  8956. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  8957. auto operator<=>( BufferCollectionBufferCreateInfoFUCHSIA const & ) const = default;
  8958. # else
  8959. bool operator==( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8960. {
  8961. # if defined( VULKAN_HPP_USE_REFLECT )
  8962. return this->reflect() == rhs.reflect();
  8963. # else
  8964. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( collection == rhs.collection ) && ( index == rhs.index );
  8965. # endif
  8966. }
  8967. bool operator!=( BufferCollectionBufferCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  8968. {
  8969. return !operator==( rhs );
  8970. }
  8971. # endif
  8972. public:
  8973. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionBufferCreateInfoFUCHSIA;
  8974. const void * pNext = {};
  8975. VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection = {};
  8976. uint32_t index = {};
  8977. };
  8978. template <>
  8979. struct CppType<StructureType, StructureType::eBufferCollectionBufferCreateInfoFUCHSIA>
  8980. {
  8981. using Type = BufferCollectionBufferCreateInfoFUCHSIA;
  8982. };
  8983. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  8984. #if defined( VK_USE_PLATFORM_FUCHSIA )
  8985. struct BufferCollectionConstraintsInfoFUCHSIA
  8986. {
  8987. using NativeType = VkBufferCollectionConstraintsInfoFUCHSIA;
  8988. static const bool allowDuplicate = false;
  8989. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionConstraintsInfoFUCHSIA;
  8990. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  8991. VULKAN_HPP_CONSTEXPR BufferCollectionConstraintsInfoFUCHSIA( uint32_t minBufferCount_ = {},
  8992. uint32_t maxBufferCount_ = {},
  8993. uint32_t minBufferCountForCamping_ = {},
  8994. uint32_t minBufferCountForDedicatedSlack_ = {},
  8995. uint32_t minBufferCountForSharedSlack_ = {},
  8996. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  8997. : pNext( pNext_ )
  8998. , minBufferCount( minBufferCount_ )
  8999. , maxBufferCount( maxBufferCount_ )
  9000. , minBufferCountForCamping( minBufferCountForCamping_ )
  9001. , minBufferCountForDedicatedSlack( minBufferCountForDedicatedSlack_ )
  9002. , minBufferCountForSharedSlack( minBufferCountForSharedSlack_ )
  9003. {
  9004. }
  9005. VULKAN_HPP_CONSTEXPR BufferCollectionConstraintsInfoFUCHSIA( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9006. BufferCollectionConstraintsInfoFUCHSIA( VkBufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9007. : BufferCollectionConstraintsInfoFUCHSIA( *reinterpret_cast<BufferCollectionConstraintsInfoFUCHSIA const *>( &rhs ) )
  9008. {
  9009. }
  9010. BufferCollectionConstraintsInfoFUCHSIA & operator=( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9011. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9012. BufferCollectionConstraintsInfoFUCHSIA & operator=( VkBufferCollectionConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9013. {
  9014. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const *>( &rhs );
  9015. return *this;
  9016. }
  9017. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9018. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9019. {
  9020. pNext = pNext_;
  9021. return *this;
  9022. }
  9023. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setMinBufferCount( uint32_t minBufferCount_ ) VULKAN_HPP_NOEXCEPT
  9024. {
  9025. minBufferCount = minBufferCount_;
  9026. return *this;
  9027. }
  9028. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setMaxBufferCount( uint32_t maxBufferCount_ ) VULKAN_HPP_NOEXCEPT
  9029. {
  9030. maxBufferCount = maxBufferCount_;
  9031. return *this;
  9032. }
  9033. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA & setMinBufferCountForCamping( uint32_t minBufferCountForCamping_ ) VULKAN_HPP_NOEXCEPT
  9034. {
  9035. minBufferCountForCamping = minBufferCountForCamping_;
  9036. return *this;
  9037. }
  9038. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA &
  9039. setMinBufferCountForDedicatedSlack( uint32_t minBufferCountForDedicatedSlack_ ) VULKAN_HPP_NOEXCEPT
  9040. {
  9041. minBufferCountForDedicatedSlack = minBufferCountForDedicatedSlack_;
  9042. return *this;
  9043. }
  9044. VULKAN_HPP_CONSTEXPR_14 BufferCollectionConstraintsInfoFUCHSIA &
  9045. setMinBufferCountForSharedSlack( uint32_t minBufferCountForSharedSlack_ ) VULKAN_HPP_NOEXCEPT
  9046. {
  9047. minBufferCountForSharedSlack = minBufferCountForSharedSlack_;
  9048. return *this;
  9049. }
  9050. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9051. operator VkBufferCollectionConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  9052. {
  9053. return *reinterpret_cast<const VkBufferCollectionConstraintsInfoFUCHSIA *>( this );
  9054. }
  9055. operator VkBufferCollectionConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  9056. {
  9057. return *reinterpret_cast<VkBufferCollectionConstraintsInfoFUCHSIA *>( this );
  9058. }
  9059. # if defined( VULKAN_HPP_USE_REFLECT )
  9060. # if 14 <= VULKAN_HPP_CPP_VERSION
  9061. auto
  9062. # else
  9063. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  9064. const void * const &,
  9065. uint32_t const &,
  9066. uint32_t const &,
  9067. uint32_t const &,
  9068. uint32_t const &,
  9069. uint32_t const &>
  9070. # endif
  9071. reflect() const VULKAN_HPP_NOEXCEPT
  9072. {
  9073. return std::tie( sType, pNext, minBufferCount, maxBufferCount, minBufferCountForCamping, minBufferCountForDedicatedSlack, minBufferCountForSharedSlack );
  9074. }
  9075. # endif
  9076. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9077. auto operator<=>( BufferCollectionConstraintsInfoFUCHSIA const & ) const = default;
  9078. # else
  9079. bool operator==( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9080. {
  9081. # if defined( VULKAN_HPP_USE_REFLECT )
  9082. return this->reflect() == rhs.reflect();
  9083. # else
  9084. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minBufferCount == rhs.minBufferCount ) && ( maxBufferCount == rhs.maxBufferCount ) &&
  9085. ( minBufferCountForCamping == rhs.minBufferCountForCamping ) && ( minBufferCountForDedicatedSlack == rhs.minBufferCountForDedicatedSlack ) &&
  9086. ( minBufferCountForSharedSlack == rhs.minBufferCountForSharedSlack );
  9087. # endif
  9088. }
  9089. bool operator!=( BufferCollectionConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9090. {
  9091. return !operator==( rhs );
  9092. }
  9093. # endif
  9094. public:
  9095. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionConstraintsInfoFUCHSIA;
  9096. const void * pNext = {};
  9097. uint32_t minBufferCount = {};
  9098. uint32_t maxBufferCount = {};
  9099. uint32_t minBufferCountForCamping = {};
  9100. uint32_t minBufferCountForDedicatedSlack = {};
  9101. uint32_t minBufferCountForSharedSlack = {};
  9102. };
  9103. template <>
  9104. struct CppType<StructureType, StructureType::eBufferCollectionConstraintsInfoFUCHSIA>
  9105. {
  9106. using Type = BufferCollectionConstraintsInfoFUCHSIA;
  9107. };
  9108. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  9109. #if defined( VK_USE_PLATFORM_FUCHSIA )
  9110. struct BufferCollectionCreateInfoFUCHSIA
  9111. {
  9112. using NativeType = VkBufferCollectionCreateInfoFUCHSIA;
  9113. static const bool allowDuplicate = false;
  9114. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionCreateInfoFUCHSIA;
  9115. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9116. VULKAN_HPP_CONSTEXPR BufferCollectionCreateInfoFUCHSIA( zx_handle_t collectionToken_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9117. : pNext( pNext_ )
  9118. , collectionToken( collectionToken_ )
  9119. {
  9120. }
  9121. VULKAN_HPP_CONSTEXPR BufferCollectionCreateInfoFUCHSIA( BufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9122. BufferCollectionCreateInfoFUCHSIA( VkBufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9123. : BufferCollectionCreateInfoFUCHSIA( *reinterpret_cast<BufferCollectionCreateInfoFUCHSIA const *>( &rhs ) )
  9124. {
  9125. }
  9126. BufferCollectionCreateInfoFUCHSIA & operator=( BufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9127. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9128. BufferCollectionCreateInfoFUCHSIA & operator=( VkBufferCollectionCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9129. {
  9130. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const *>( &rhs );
  9131. return *this;
  9132. }
  9133. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9134. VULKAN_HPP_CONSTEXPR_14 BufferCollectionCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9135. {
  9136. pNext = pNext_;
  9137. return *this;
  9138. }
  9139. VULKAN_HPP_CONSTEXPR_14 BufferCollectionCreateInfoFUCHSIA & setCollectionToken( zx_handle_t collectionToken_ ) VULKAN_HPP_NOEXCEPT
  9140. {
  9141. collectionToken = collectionToken_;
  9142. return *this;
  9143. }
  9144. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9145. operator VkBufferCollectionCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  9146. {
  9147. return *reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( this );
  9148. }
  9149. operator VkBufferCollectionCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  9150. {
  9151. return *reinterpret_cast<VkBufferCollectionCreateInfoFUCHSIA *>( this );
  9152. }
  9153. # if defined( VULKAN_HPP_USE_REFLECT )
  9154. # if 14 <= VULKAN_HPP_CPP_VERSION
  9155. auto
  9156. # else
  9157. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, zx_handle_t const &>
  9158. # endif
  9159. reflect() const VULKAN_HPP_NOEXCEPT
  9160. {
  9161. return std::tie( sType, pNext, collectionToken );
  9162. }
  9163. # endif
  9164. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9165. std::strong_ordering operator<=>( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9166. {
  9167. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  9168. return cmp;
  9169. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  9170. return cmp;
  9171. if ( auto cmp = memcmp( &collectionToken, &rhs.collectionToken, sizeof( zx_handle_t ) ); cmp != 0 )
  9172. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  9173. return std::strong_ordering::equivalent;
  9174. }
  9175. # endif
  9176. bool operator==( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9177. {
  9178. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &collectionToken, &rhs.collectionToken, sizeof( zx_handle_t ) ) == 0 );
  9179. }
  9180. bool operator!=( BufferCollectionCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9181. {
  9182. return !operator==( rhs );
  9183. }
  9184. public:
  9185. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionCreateInfoFUCHSIA;
  9186. const void * pNext = {};
  9187. zx_handle_t collectionToken = {};
  9188. };
  9189. template <>
  9190. struct CppType<StructureType, StructureType::eBufferCollectionCreateInfoFUCHSIA>
  9191. {
  9192. using Type = BufferCollectionCreateInfoFUCHSIA;
  9193. };
  9194. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  9195. #if defined( VK_USE_PLATFORM_FUCHSIA )
  9196. struct BufferCollectionImageCreateInfoFUCHSIA
  9197. {
  9198. using NativeType = VkBufferCollectionImageCreateInfoFUCHSIA;
  9199. static const bool allowDuplicate = false;
  9200. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionImageCreateInfoFUCHSIA;
  9201. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9202. VULKAN_HPP_CONSTEXPR BufferCollectionImageCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {},
  9203. uint32_t index_ = {},
  9204. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9205. : pNext( pNext_ )
  9206. , collection( collection_ )
  9207. , index( index_ )
  9208. {
  9209. }
  9210. VULKAN_HPP_CONSTEXPR BufferCollectionImageCreateInfoFUCHSIA( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9211. BufferCollectionImageCreateInfoFUCHSIA( VkBufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9212. : BufferCollectionImageCreateInfoFUCHSIA( *reinterpret_cast<BufferCollectionImageCreateInfoFUCHSIA const *>( &rhs ) )
  9213. {
  9214. }
  9215. BufferCollectionImageCreateInfoFUCHSIA & operator=( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9216. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9217. BufferCollectionImageCreateInfoFUCHSIA & operator=( VkBufferCollectionImageCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9218. {
  9219. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA const *>( &rhs );
  9220. return *this;
  9221. }
  9222. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9223. VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9224. {
  9225. pNext = pNext_;
  9226. return *this;
  9227. }
  9228. VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA &
  9229. setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
  9230. {
  9231. collection = collection_;
  9232. return *this;
  9233. }
  9234. VULKAN_HPP_CONSTEXPR_14 BufferCollectionImageCreateInfoFUCHSIA & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
  9235. {
  9236. index = index_;
  9237. return *this;
  9238. }
  9239. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9240. operator VkBufferCollectionImageCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  9241. {
  9242. return *reinterpret_cast<const VkBufferCollectionImageCreateInfoFUCHSIA *>( this );
  9243. }
  9244. operator VkBufferCollectionImageCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  9245. {
  9246. return *reinterpret_cast<VkBufferCollectionImageCreateInfoFUCHSIA *>( this );
  9247. }
  9248. # if defined( VULKAN_HPP_USE_REFLECT )
  9249. # if 14 <= VULKAN_HPP_CPP_VERSION
  9250. auto
  9251. # else
  9252. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const &, uint32_t const &>
  9253. # endif
  9254. reflect() const VULKAN_HPP_NOEXCEPT
  9255. {
  9256. return std::tie( sType, pNext, collection, index );
  9257. }
  9258. # endif
  9259. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9260. auto operator<=>( BufferCollectionImageCreateInfoFUCHSIA const & ) const = default;
  9261. # else
  9262. bool operator==( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9263. {
  9264. # if defined( VULKAN_HPP_USE_REFLECT )
  9265. return this->reflect() == rhs.reflect();
  9266. # else
  9267. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( collection == rhs.collection ) && ( index == rhs.index );
  9268. # endif
  9269. }
  9270. bool operator!=( BufferCollectionImageCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9271. {
  9272. return !operator==( rhs );
  9273. }
  9274. # endif
  9275. public:
  9276. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionImageCreateInfoFUCHSIA;
  9277. const void * pNext = {};
  9278. VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection = {};
  9279. uint32_t index = {};
  9280. };
  9281. template <>
  9282. struct CppType<StructureType, StructureType::eBufferCollectionImageCreateInfoFUCHSIA>
  9283. {
  9284. using Type = BufferCollectionImageCreateInfoFUCHSIA;
  9285. };
  9286. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  9287. #if defined( VK_USE_PLATFORM_FUCHSIA )
  9288. struct SysmemColorSpaceFUCHSIA
  9289. {
  9290. using NativeType = VkSysmemColorSpaceFUCHSIA;
  9291. static const bool allowDuplicate = false;
  9292. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSysmemColorSpaceFUCHSIA;
  9293. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9294. VULKAN_HPP_CONSTEXPR SysmemColorSpaceFUCHSIA( uint32_t colorSpace_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9295. : pNext( pNext_ )
  9296. , colorSpace( colorSpace_ )
  9297. {
  9298. }
  9299. VULKAN_HPP_CONSTEXPR SysmemColorSpaceFUCHSIA( SysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9300. SysmemColorSpaceFUCHSIA( VkSysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9301. : SysmemColorSpaceFUCHSIA( *reinterpret_cast<SysmemColorSpaceFUCHSIA const *>( &rhs ) )
  9302. {
  9303. }
  9304. SysmemColorSpaceFUCHSIA & operator=( SysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9305. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9306. SysmemColorSpaceFUCHSIA & operator=( VkSysmemColorSpaceFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9307. {
  9308. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const *>( &rhs );
  9309. return *this;
  9310. }
  9311. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9312. VULKAN_HPP_CONSTEXPR_14 SysmemColorSpaceFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9313. {
  9314. pNext = pNext_;
  9315. return *this;
  9316. }
  9317. VULKAN_HPP_CONSTEXPR_14 SysmemColorSpaceFUCHSIA & setColorSpace( uint32_t colorSpace_ ) VULKAN_HPP_NOEXCEPT
  9318. {
  9319. colorSpace = colorSpace_;
  9320. return *this;
  9321. }
  9322. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9323. operator VkSysmemColorSpaceFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  9324. {
  9325. return *reinterpret_cast<const VkSysmemColorSpaceFUCHSIA *>( this );
  9326. }
  9327. operator VkSysmemColorSpaceFUCHSIA &() VULKAN_HPP_NOEXCEPT
  9328. {
  9329. return *reinterpret_cast<VkSysmemColorSpaceFUCHSIA *>( this );
  9330. }
  9331. # if defined( VULKAN_HPP_USE_REFLECT )
  9332. # if 14 <= VULKAN_HPP_CPP_VERSION
  9333. auto
  9334. # else
  9335. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  9336. # endif
  9337. reflect() const VULKAN_HPP_NOEXCEPT
  9338. {
  9339. return std::tie( sType, pNext, colorSpace );
  9340. }
  9341. # endif
  9342. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9343. auto operator<=>( SysmemColorSpaceFUCHSIA const & ) const = default;
  9344. # else
  9345. bool operator==( SysmemColorSpaceFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9346. {
  9347. # if defined( VULKAN_HPP_USE_REFLECT )
  9348. return this->reflect() == rhs.reflect();
  9349. # else
  9350. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( colorSpace == rhs.colorSpace );
  9351. # endif
  9352. }
  9353. bool operator!=( SysmemColorSpaceFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9354. {
  9355. return !operator==( rhs );
  9356. }
  9357. # endif
  9358. public:
  9359. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSysmemColorSpaceFUCHSIA;
  9360. const void * pNext = {};
  9361. uint32_t colorSpace = {};
  9362. };
  9363. template <>
  9364. struct CppType<StructureType, StructureType::eSysmemColorSpaceFUCHSIA>
  9365. {
  9366. using Type = SysmemColorSpaceFUCHSIA;
  9367. };
  9368. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  9369. #if defined( VK_USE_PLATFORM_FUCHSIA )
  9370. struct BufferCollectionPropertiesFUCHSIA
  9371. {
  9372. using NativeType = VkBufferCollectionPropertiesFUCHSIA;
  9373. static const bool allowDuplicate = false;
  9374. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCollectionPropertiesFUCHSIA;
  9375. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9376. VULKAN_HPP_CONSTEXPR BufferCollectionPropertiesFUCHSIA(
  9377. uint32_t memoryTypeBits_ = {},
  9378. uint32_t bufferCount_ = {},
  9379. uint32_t createInfoIndex_ = {},
  9380. uint64_t sysmemPixelFormat_ = {},
  9381. VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {},
  9382. VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA sysmemColorSpaceIndex_ = {},
  9383. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {},
  9384. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
  9385. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
  9386. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  9387. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  9388. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9389. : pNext( pNext_ )
  9390. , memoryTypeBits( memoryTypeBits_ )
  9391. , bufferCount( bufferCount_ )
  9392. , createInfoIndex( createInfoIndex_ )
  9393. , sysmemPixelFormat( sysmemPixelFormat_ )
  9394. , formatFeatures( formatFeatures_ )
  9395. , sysmemColorSpaceIndex( sysmemColorSpaceIndex_ )
  9396. , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
  9397. , suggestedYcbcrModel( suggestedYcbcrModel_ )
  9398. , suggestedYcbcrRange( suggestedYcbcrRange_ )
  9399. , suggestedXChromaOffset( suggestedXChromaOffset_ )
  9400. , suggestedYChromaOffset( suggestedYChromaOffset_ )
  9401. {
  9402. }
  9403. VULKAN_HPP_CONSTEXPR BufferCollectionPropertiesFUCHSIA( BufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9404. BufferCollectionPropertiesFUCHSIA( VkBufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9405. : BufferCollectionPropertiesFUCHSIA( *reinterpret_cast<BufferCollectionPropertiesFUCHSIA const *>( &rhs ) )
  9406. {
  9407. }
  9408. BufferCollectionPropertiesFUCHSIA & operator=( BufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9409. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9410. BufferCollectionPropertiesFUCHSIA & operator=( VkBufferCollectionPropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9411. {
  9412. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA const *>( &rhs );
  9413. return *this;
  9414. }
  9415. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9416. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9417. {
  9418. pNext = pNext_;
  9419. return *this;
  9420. }
  9421. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setMemoryTypeBits( uint32_t memoryTypeBits_ ) VULKAN_HPP_NOEXCEPT
  9422. {
  9423. memoryTypeBits = memoryTypeBits_;
  9424. return *this;
  9425. }
  9426. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setBufferCount( uint32_t bufferCount_ ) VULKAN_HPP_NOEXCEPT
  9427. {
  9428. bufferCount = bufferCount_;
  9429. return *this;
  9430. }
  9431. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setCreateInfoIndex( uint32_t createInfoIndex_ ) VULKAN_HPP_NOEXCEPT
  9432. {
  9433. createInfoIndex = createInfoIndex_;
  9434. return *this;
  9435. }
  9436. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA & setSysmemPixelFormat( uint64_t sysmemPixelFormat_ ) VULKAN_HPP_NOEXCEPT
  9437. {
  9438. sysmemPixelFormat = sysmemPixelFormat_;
  9439. return *this;
  9440. }
  9441. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  9442. setFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ ) VULKAN_HPP_NOEXCEPT
  9443. {
  9444. formatFeatures = formatFeatures_;
  9445. return *this;
  9446. }
  9447. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  9448. setSysmemColorSpaceIndex( VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const & sysmemColorSpaceIndex_ ) VULKAN_HPP_NOEXCEPT
  9449. {
  9450. sysmemColorSpaceIndex = sysmemColorSpaceIndex_;
  9451. return *this;
  9452. }
  9453. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  9454. setSamplerYcbcrConversionComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & samplerYcbcrConversionComponents_ ) VULKAN_HPP_NOEXCEPT
  9455. {
  9456. samplerYcbcrConversionComponents = samplerYcbcrConversionComponents_;
  9457. return *this;
  9458. }
  9459. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  9460. setSuggestedYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ ) VULKAN_HPP_NOEXCEPT
  9461. {
  9462. suggestedYcbcrModel = suggestedYcbcrModel_;
  9463. return *this;
  9464. }
  9465. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  9466. setSuggestedYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ ) VULKAN_HPP_NOEXCEPT
  9467. {
  9468. suggestedYcbcrRange = suggestedYcbcrRange_;
  9469. return *this;
  9470. }
  9471. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  9472. setSuggestedXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ ) VULKAN_HPP_NOEXCEPT
  9473. {
  9474. suggestedXChromaOffset = suggestedXChromaOffset_;
  9475. return *this;
  9476. }
  9477. VULKAN_HPP_CONSTEXPR_14 BufferCollectionPropertiesFUCHSIA &
  9478. setSuggestedYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ ) VULKAN_HPP_NOEXCEPT
  9479. {
  9480. suggestedYChromaOffset = suggestedYChromaOffset_;
  9481. return *this;
  9482. }
  9483. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9484. operator VkBufferCollectionPropertiesFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  9485. {
  9486. return *reinterpret_cast<const VkBufferCollectionPropertiesFUCHSIA *>( this );
  9487. }
  9488. operator VkBufferCollectionPropertiesFUCHSIA &() VULKAN_HPP_NOEXCEPT
  9489. {
  9490. return *reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( this );
  9491. }
  9492. # if defined( VULKAN_HPP_USE_REFLECT )
  9493. # if 14 <= VULKAN_HPP_CPP_VERSION
  9494. auto
  9495. # else
  9496. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  9497. void * const &,
  9498. uint32_t const &,
  9499. uint32_t const &,
  9500. uint32_t const &,
  9501. uint64_t const &,
  9502. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  9503. VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const &,
  9504. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  9505. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &,
  9506. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &,
  9507. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  9508. VULKAN_HPP_NAMESPACE::ChromaLocation const &>
  9509. # endif
  9510. reflect() const VULKAN_HPP_NOEXCEPT
  9511. {
  9512. return std::tie( sType,
  9513. pNext,
  9514. memoryTypeBits,
  9515. bufferCount,
  9516. createInfoIndex,
  9517. sysmemPixelFormat,
  9518. formatFeatures,
  9519. sysmemColorSpaceIndex,
  9520. samplerYcbcrConversionComponents,
  9521. suggestedYcbcrModel,
  9522. suggestedYcbcrRange,
  9523. suggestedXChromaOffset,
  9524. suggestedYChromaOffset );
  9525. }
  9526. # endif
  9527. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9528. auto operator<=>( BufferCollectionPropertiesFUCHSIA const & ) const = default;
  9529. # else
  9530. bool operator==( BufferCollectionPropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9531. {
  9532. # if defined( VULKAN_HPP_USE_REFLECT )
  9533. return this->reflect() == rhs.reflect();
  9534. # else
  9535. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits ) && ( bufferCount == rhs.bufferCount ) &&
  9536. ( createInfoIndex == rhs.createInfoIndex ) && ( sysmemPixelFormat == rhs.sysmemPixelFormat ) && ( formatFeatures == rhs.formatFeatures ) &&
  9537. ( sysmemColorSpaceIndex == rhs.sysmemColorSpaceIndex ) && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) &&
  9538. ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) &&
  9539. ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
  9540. # endif
  9541. }
  9542. bool operator!=( BufferCollectionPropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9543. {
  9544. return !operator==( rhs );
  9545. }
  9546. # endif
  9547. public:
  9548. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCollectionPropertiesFUCHSIA;
  9549. void * pNext = {};
  9550. uint32_t memoryTypeBits = {};
  9551. uint32_t bufferCount = {};
  9552. uint32_t createInfoIndex = {};
  9553. uint64_t sysmemPixelFormat = {};
  9554. VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
  9555. VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA sysmemColorSpaceIndex = {};
  9556. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
  9557. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
  9558. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
  9559. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  9560. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  9561. };
  9562. template <>
  9563. struct CppType<StructureType, StructureType::eBufferCollectionPropertiesFUCHSIA>
  9564. {
  9565. using Type = BufferCollectionPropertiesFUCHSIA;
  9566. };
  9567. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  9568. struct BufferCreateInfo
  9569. {
  9570. using NativeType = VkBufferCreateInfo;
  9571. static const bool allowDuplicate = false;
  9572. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCreateInfo;
  9573. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9574. VULKAN_HPP_CONSTEXPR BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {},
  9575. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  9576. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {},
  9577. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
  9578. uint32_t queueFamilyIndexCount_ = {},
  9579. const uint32_t * pQueueFamilyIndices_ = {},
  9580. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9581. : pNext( pNext_ )
  9582. , flags( flags_ )
  9583. , size( size_ )
  9584. , usage( usage_ )
  9585. , sharingMode( sharingMode_ )
  9586. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  9587. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  9588. {
  9589. }
  9590. VULKAN_HPP_CONSTEXPR BufferCreateInfo( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9591. BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : BufferCreateInfo( *reinterpret_cast<BufferCreateInfo const *>( &rhs ) ) {}
  9592. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  9593. BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_,
  9594. VULKAN_HPP_NAMESPACE::DeviceSize size_,
  9595. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_,
  9596. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_,
  9597. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_,
  9598. const void * pNext_ = nullptr )
  9599. : pNext( pNext_ )
  9600. , flags( flags_ )
  9601. , size( size_ )
  9602. , usage( usage_ )
  9603. , sharingMode( sharingMode_ )
  9604. , queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) )
  9605. , pQueueFamilyIndices( queueFamilyIndices_.data() )
  9606. {
  9607. }
  9608. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  9609. BufferCreateInfo & operator=( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9610. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9611. BufferCreateInfo & operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  9612. {
  9613. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCreateInfo const *>( &rhs );
  9614. return *this;
  9615. }
  9616. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9617. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9618. {
  9619. pNext = pNext_;
  9620. return *this;
  9621. }
  9622. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  9623. {
  9624. flags = flags_;
  9625. return *this;
  9626. }
  9627. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  9628. {
  9629. size = size_;
  9630. return *this;
  9631. }
  9632. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  9633. {
  9634. usage = usage_;
  9635. return *this;
  9636. }
  9637. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
  9638. {
  9639. sharingMode = sharingMode_;
  9640. return *this;
  9641. }
  9642. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
  9643. {
  9644. queueFamilyIndexCount = queueFamilyIndexCount_;
  9645. return *this;
  9646. }
  9647. VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  9648. {
  9649. pQueueFamilyIndices = pQueueFamilyIndices_;
  9650. return *this;
  9651. }
  9652. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  9653. BufferCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  9654. {
  9655. queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
  9656. pQueueFamilyIndices = queueFamilyIndices_.data();
  9657. return *this;
  9658. }
  9659. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  9660. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9661. operator VkBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  9662. {
  9663. return *reinterpret_cast<const VkBufferCreateInfo *>( this );
  9664. }
  9665. operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
  9666. {
  9667. return *reinterpret_cast<VkBufferCreateInfo *>( this );
  9668. }
  9669. #if defined( VULKAN_HPP_USE_REFLECT )
  9670. # if 14 <= VULKAN_HPP_CPP_VERSION
  9671. auto
  9672. # else
  9673. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  9674. const void * const &,
  9675. VULKAN_HPP_NAMESPACE::BufferCreateFlags const &,
  9676. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  9677. VULKAN_HPP_NAMESPACE::BufferUsageFlags const &,
  9678. VULKAN_HPP_NAMESPACE::SharingMode const &,
  9679. uint32_t const &,
  9680. const uint32_t * const &>
  9681. # endif
  9682. reflect() const VULKAN_HPP_NOEXCEPT
  9683. {
  9684. return std::tie( sType, pNext, flags, size, usage, sharingMode, queueFamilyIndexCount, pQueueFamilyIndices );
  9685. }
  9686. #endif
  9687. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9688. auto operator<=>( BufferCreateInfo const & ) const = default;
  9689. #else
  9690. bool operator==( BufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  9691. {
  9692. # if defined( VULKAN_HPP_USE_REFLECT )
  9693. return this->reflect() == rhs.reflect();
  9694. # else
  9695. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( size == rhs.size ) && ( usage == rhs.usage ) &&
  9696. ( sharingMode == rhs.sharingMode ) && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
  9697. # endif
  9698. }
  9699. bool operator!=( BufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  9700. {
  9701. return !operator==( rhs );
  9702. }
  9703. #endif
  9704. public:
  9705. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo;
  9706. const void * pNext = {};
  9707. VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
  9708. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  9709. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
  9710. VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
  9711. uint32_t queueFamilyIndexCount = {};
  9712. const uint32_t * pQueueFamilyIndices = {};
  9713. };
  9714. template <>
  9715. struct CppType<StructureType, StructureType::eBufferCreateInfo>
  9716. {
  9717. using Type = BufferCreateInfo;
  9718. };
  9719. #if defined( VK_USE_PLATFORM_FUCHSIA )
  9720. struct BufferConstraintsInfoFUCHSIA
  9721. {
  9722. using NativeType = VkBufferConstraintsInfoFUCHSIA;
  9723. static const bool allowDuplicate = false;
  9724. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferConstraintsInfoFUCHSIA;
  9725. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9726. VULKAN_HPP_CONSTEXPR BufferConstraintsInfoFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCreateInfo createInfo_ = {},
  9727. VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ = {},
  9728. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints_ = {},
  9729. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9730. : pNext( pNext_ )
  9731. , createInfo( createInfo_ )
  9732. , requiredFormatFeatures( requiredFormatFeatures_ )
  9733. , bufferCollectionConstraints( bufferCollectionConstraints_ )
  9734. {
  9735. }
  9736. VULKAN_HPP_CONSTEXPR BufferConstraintsInfoFUCHSIA( BufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9737. BufferConstraintsInfoFUCHSIA( VkBufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9738. : BufferConstraintsInfoFUCHSIA( *reinterpret_cast<BufferConstraintsInfoFUCHSIA const *>( &rhs ) )
  9739. {
  9740. }
  9741. BufferConstraintsInfoFUCHSIA & operator=( BufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9742. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9743. BufferConstraintsInfoFUCHSIA & operator=( VkBufferConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  9744. {
  9745. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA const *>( &rhs );
  9746. return *this;
  9747. }
  9748. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9749. VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9750. {
  9751. pNext = pNext_;
  9752. return *this;
  9753. }
  9754. VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA & setCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateInfo const & createInfo_ ) VULKAN_HPP_NOEXCEPT
  9755. {
  9756. createInfo = createInfo_;
  9757. return *this;
  9758. }
  9759. VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA &
  9760. setRequiredFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ ) VULKAN_HPP_NOEXCEPT
  9761. {
  9762. requiredFormatFeatures = requiredFormatFeatures_;
  9763. return *this;
  9764. }
  9765. VULKAN_HPP_CONSTEXPR_14 BufferConstraintsInfoFUCHSIA &
  9766. setBufferCollectionConstraints( VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const & bufferCollectionConstraints_ ) VULKAN_HPP_NOEXCEPT
  9767. {
  9768. bufferCollectionConstraints = bufferCollectionConstraints_;
  9769. return *this;
  9770. }
  9771. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9772. operator VkBufferConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  9773. {
  9774. return *reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( this );
  9775. }
  9776. operator VkBufferConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  9777. {
  9778. return *reinterpret_cast<VkBufferConstraintsInfoFUCHSIA *>( this );
  9779. }
  9780. # if defined( VULKAN_HPP_USE_REFLECT )
  9781. # if 14 <= VULKAN_HPP_CPP_VERSION
  9782. auto
  9783. # else
  9784. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  9785. const void * const &,
  9786. VULKAN_HPP_NAMESPACE::BufferCreateInfo const &,
  9787. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  9788. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const &>
  9789. # endif
  9790. reflect() const VULKAN_HPP_NOEXCEPT
  9791. {
  9792. return std::tie( sType, pNext, createInfo, requiredFormatFeatures, bufferCollectionConstraints );
  9793. }
  9794. # endif
  9795. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9796. auto operator<=>( BufferConstraintsInfoFUCHSIA const & ) const = default;
  9797. # else
  9798. bool operator==( BufferConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9799. {
  9800. # if defined( VULKAN_HPP_USE_REFLECT )
  9801. return this->reflect() == rhs.reflect();
  9802. # else
  9803. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( createInfo == rhs.createInfo ) && ( requiredFormatFeatures == rhs.requiredFormatFeatures ) &&
  9804. ( bufferCollectionConstraints == rhs.bufferCollectionConstraints );
  9805. # endif
  9806. }
  9807. bool operator!=( BufferConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  9808. {
  9809. return !operator==( rhs );
  9810. }
  9811. # endif
  9812. public:
  9813. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferConstraintsInfoFUCHSIA;
  9814. const void * pNext = {};
  9815. VULKAN_HPP_NAMESPACE::BufferCreateInfo createInfo = {};
  9816. VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures = {};
  9817. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints = {};
  9818. };
  9819. template <>
  9820. struct CppType<StructureType, StructureType::eBufferConstraintsInfoFUCHSIA>
  9821. {
  9822. using Type = BufferConstraintsInfoFUCHSIA;
  9823. };
  9824. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  9825. struct BufferCopy
  9826. {
  9827. using NativeType = VkBufferCopy;
  9828. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9829. VULKAN_HPP_CONSTEXPR BufferCopy( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {},
  9830. VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {},
  9831. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
  9832. : srcOffset( srcOffset_ )
  9833. , dstOffset( dstOffset_ )
  9834. , size( size_ )
  9835. {
  9836. }
  9837. VULKAN_HPP_CONSTEXPR BufferCopy( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9838. BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT : BufferCopy( *reinterpret_cast<BufferCopy const *>( &rhs ) ) {}
  9839. BufferCopy & operator=( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9840. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9841. BufferCopy & operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT
  9842. {
  9843. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy const *>( &rhs );
  9844. return *this;
  9845. }
  9846. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9847. VULKAN_HPP_CONSTEXPR_14 BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
  9848. {
  9849. srcOffset = srcOffset_;
  9850. return *this;
  9851. }
  9852. VULKAN_HPP_CONSTEXPR_14 BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
  9853. {
  9854. dstOffset = dstOffset_;
  9855. return *this;
  9856. }
  9857. VULKAN_HPP_CONSTEXPR_14 BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  9858. {
  9859. size = size_;
  9860. return *this;
  9861. }
  9862. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9863. operator VkBufferCopy const &() const VULKAN_HPP_NOEXCEPT
  9864. {
  9865. return *reinterpret_cast<const VkBufferCopy *>( this );
  9866. }
  9867. operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT
  9868. {
  9869. return *reinterpret_cast<VkBufferCopy *>( this );
  9870. }
  9871. #if defined( VULKAN_HPP_USE_REFLECT )
  9872. # if 14 <= VULKAN_HPP_CPP_VERSION
  9873. auto
  9874. # else
  9875. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  9876. # endif
  9877. reflect() const VULKAN_HPP_NOEXCEPT
  9878. {
  9879. return std::tie( srcOffset, dstOffset, size );
  9880. }
  9881. #endif
  9882. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9883. auto operator<=>( BufferCopy const & ) const = default;
  9884. #else
  9885. bool operator==( BufferCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  9886. {
  9887. # if defined( VULKAN_HPP_USE_REFLECT )
  9888. return this->reflect() == rhs.reflect();
  9889. # else
  9890. return ( srcOffset == rhs.srcOffset ) && ( dstOffset == rhs.dstOffset ) && ( size == rhs.size );
  9891. # endif
  9892. }
  9893. bool operator!=( BufferCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  9894. {
  9895. return !operator==( rhs );
  9896. }
  9897. #endif
  9898. public:
  9899. VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
  9900. VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
  9901. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  9902. };
  9903. struct BufferCopy2
  9904. {
  9905. using NativeType = VkBufferCopy2;
  9906. static const bool allowDuplicate = false;
  9907. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCopy2;
  9908. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  9909. VULKAN_HPP_CONSTEXPR BufferCopy2( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {},
  9910. VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {},
  9911. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  9912. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  9913. : pNext( pNext_ )
  9914. , srcOffset( srcOffset_ )
  9915. , dstOffset( dstOffset_ )
  9916. , size( size_ )
  9917. {
  9918. }
  9919. VULKAN_HPP_CONSTEXPR BufferCopy2( BufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9920. BufferCopy2( VkBufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT : BufferCopy2( *reinterpret_cast<BufferCopy2 const *>( &rhs ) ) {}
  9921. BufferCopy2 & operator=( BufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  9922. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  9923. BufferCopy2 & operator=( VkBufferCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
  9924. {
  9925. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferCopy2 const *>( &rhs );
  9926. return *this;
  9927. }
  9928. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  9929. VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  9930. {
  9931. pNext = pNext_;
  9932. return *this;
  9933. }
  9934. VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT
  9935. {
  9936. srcOffset = srcOffset_;
  9937. return *this;
  9938. }
  9939. VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT
  9940. {
  9941. dstOffset = dstOffset_;
  9942. return *this;
  9943. }
  9944. VULKAN_HPP_CONSTEXPR_14 BufferCopy2 & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  9945. {
  9946. size = size_;
  9947. return *this;
  9948. }
  9949. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  9950. operator VkBufferCopy2 const &() const VULKAN_HPP_NOEXCEPT
  9951. {
  9952. return *reinterpret_cast<const VkBufferCopy2 *>( this );
  9953. }
  9954. operator VkBufferCopy2 &() VULKAN_HPP_NOEXCEPT
  9955. {
  9956. return *reinterpret_cast<VkBufferCopy2 *>( this );
  9957. }
  9958. #if defined( VULKAN_HPP_USE_REFLECT )
  9959. # if 14 <= VULKAN_HPP_CPP_VERSION
  9960. auto
  9961. # else
  9962. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  9963. const void * const &,
  9964. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  9965. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  9966. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  9967. # endif
  9968. reflect() const VULKAN_HPP_NOEXCEPT
  9969. {
  9970. return std::tie( sType, pNext, srcOffset, dstOffset, size );
  9971. }
  9972. #endif
  9973. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  9974. auto operator<=>( BufferCopy2 const & ) const = default;
  9975. #else
  9976. bool operator==( BufferCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  9977. {
  9978. # if defined( VULKAN_HPP_USE_REFLECT )
  9979. return this->reflect() == rhs.reflect();
  9980. # else
  9981. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcOffset == rhs.srcOffset ) && ( dstOffset == rhs.dstOffset ) && ( size == rhs.size );
  9982. # endif
  9983. }
  9984. bool operator!=( BufferCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  9985. {
  9986. return !operator==( rhs );
  9987. }
  9988. #endif
  9989. public:
  9990. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCopy2;
  9991. const void * pNext = {};
  9992. VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {};
  9993. VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {};
  9994. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  9995. };
  9996. template <>
  9997. struct CppType<StructureType, StructureType::eBufferCopy2>
  9998. {
  9999. using Type = BufferCopy2;
  10000. };
  10001. using BufferCopy2KHR = BufferCopy2;
  10002. struct BufferDeviceAddressCreateInfoEXT
  10003. {
  10004. using NativeType = VkBufferDeviceAddressCreateInfoEXT;
  10005. static const bool allowDuplicate = false;
  10006. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressCreateInfoEXT;
  10007. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10008. VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
  10009. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10010. : pNext( pNext_ )
  10011. , deviceAddress( deviceAddress_ )
  10012. {
  10013. }
  10014. VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10015. BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  10016. : BufferDeviceAddressCreateInfoEXT( *reinterpret_cast<BufferDeviceAddressCreateInfoEXT const *>( &rhs ) )
  10017. {
  10018. }
  10019. BufferDeviceAddressCreateInfoEXT & operator=( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10020. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10021. BufferDeviceAddressCreateInfoEXT & operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  10022. {
  10023. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT const *>( &rhs );
  10024. return *this;
  10025. }
  10026. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10027. VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10028. {
  10029. pNext = pNext_;
  10030. return *this;
  10031. }
  10032. VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
  10033. {
  10034. deviceAddress = deviceAddress_;
  10035. return *this;
  10036. }
  10037. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10038. operator VkBufferDeviceAddressCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  10039. {
  10040. return *reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT *>( this );
  10041. }
  10042. operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  10043. {
  10044. return *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT *>( this );
  10045. }
  10046. #if defined( VULKAN_HPP_USE_REFLECT )
  10047. # if 14 <= VULKAN_HPP_CPP_VERSION
  10048. auto
  10049. # else
  10050. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &>
  10051. # endif
  10052. reflect() const VULKAN_HPP_NOEXCEPT
  10053. {
  10054. return std::tie( sType, pNext, deviceAddress );
  10055. }
  10056. #endif
  10057. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10058. auto operator<=>( BufferDeviceAddressCreateInfoEXT const & ) const = default;
  10059. #else
  10060. bool operator==( BufferDeviceAddressCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  10061. {
  10062. # if defined( VULKAN_HPP_USE_REFLECT )
  10063. return this->reflect() == rhs.reflect();
  10064. # else
  10065. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceAddress == rhs.deviceAddress );
  10066. # endif
  10067. }
  10068. bool operator!=( BufferDeviceAddressCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  10069. {
  10070. return !operator==( rhs );
  10071. }
  10072. #endif
  10073. public:
  10074. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT;
  10075. const void * pNext = {};
  10076. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
  10077. };
  10078. template <>
  10079. struct CppType<StructureType, StructureType::eBufferDeviceAddressCreateInfoEXT>
  10080. {
  10081. using Type = BufferDeviceAddressCreateInfoEXT;
  10082. };
  10083. struct BufferDeviceAddressInfo
  10084. {
  10085. using NativeType = VkBufferDeviceAddressInfo;
  10086. static const bool allowDuplicate = false;
  10087. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressInfo;
  10088. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10089. VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10090. : pNext( pNext_ )
  10091. , buffer( buffer_ )
  10092. {
  10093. }
  10094. VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10095. BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10096. : BufferDeviceAddressInfo( *reinterpret_cast<BufferDeviceAddressInfo const *>( &rhs ) )
  10097. {
  10098. }
  10099. BufferDeviceAddressInfo & operator=( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10100. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10101. BufferDeviceAddressInfo & operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10102. {
  10103. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo const *>( &rhs );
  10104. return *this;
  10105. }
  10106. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10107. VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10108. {
  10109. pNext = pNext_;
  10110. return *this;
  10111. }
  10112. VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  10113. {
  10114. buffer = buffer_;
  10115. return *this;
  10116. }
  10117. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10118. operator VkBufferDeviceAddressInfo const &() const VULKAN_HPP_NOEXCEPT
  10119. {
  10120. return *reinterpret_cast<const VkBufferDeviceAddressInfo *>( this );
  10121. }
  10122. operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT
  10123. {
  10124. return *reinterpret_cast<VkBufferDeviceAddressInfo *>( this );
  10125. }
  10126. #if defined( VULKAN_HPP_USE_REFLECT )
  10127. # if 14 <= VULKAN_HPP_CPP_VERSION
  10128. auto
  10129. # else
  10130. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &>
  10131. # endif
  10132. reflect() const VULKAN_HPP_NOEXCEPT
  10133. {
  10134. return std::tie( sType, pNext, buffer );
  10135. }
  10136. #endif
  10137. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10138. auto operator<=>( BufferDeviceAddressInfo const & ) const = default;
  10139. #else
  10140. bool operator==( BufferDeviceAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  10141. {
  10142. # if defined( VULKAN_HPP_USE_REFLECT )
  10143. return this->reflect() == rhs.reflect();
  10144. # else
  10145. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer );
  10146. # endif
  10147. }
  10148. bool operator!=( BufferDeviceAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  10149. {
  10150. return !operator==( rhs );
  10151. }
  10152. #endif
  10153. public:
  10154. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo;
  10155. const void * pNext = {};
  10156. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  10157. };
  10158. template <>
  10159. struct CppType<StructureType, StructureType::eBufferDeviceAddressInfo>
  10160. {
  10161. using Type = BufferDeviceAddressInfo;
  10162. };
  10163. using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
  10164. using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
  10165. struct BufferImageCopy
  10166. {
  10167. using NativeType = VkBufferImageCopy;
  10168. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10169. VULKAN_HPP_CONSTEXPR BufferImageCopy( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {},
  10170. uint32_t bufferRowLength_ = {},
  10171. uint32_t bufferImageHeight_ = {},
  10172. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {},
  10173. VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
  10174. VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT
  10175. : bufferOffset( bufferOffset_ )
  10176. , bufferRowLength( bufferRowLength_ )
  10177. , bufferImageHeight( bufferImageHeight_ )
  10178. , imageSubresource( imageSubresource_ )
  10179. , imageOffset( imageOffset_ )
  10180. , imageExtent( imageExtent_ )
  10181. {
  10182. }
  10183. VULKAN_HPP_CONSTEXPR BufferImageCopy( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10184. BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT : BufferImageCopy( *reinterpret_cast<BufferImageCopy const *>( &rhs ) ) {}
  10185. BufferImageCopy & operator=( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10186. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10187. BufferImageCopy & operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
  10188. {
  10189. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy const *>( &rhs );
  10190. return *this;
  10191. }
  10192. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10193. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
  10194. {
  10195. bufferOffset = bufferOffset_;
  10196. return *this;
  10197. }
  10198. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
  10199. {
  10200. bufferRowLength = bufferRowLength_;
  10201. return *this;
  10202. }
  10203. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
  10204. {
  10205. bufferImageHeight = bufferImageHeight_;
  10206. return *this;
  10207. }
  10208. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
  10209. {
  10210. imageSubresource = imageSubresource_;
  10211. return *this;
  10212. }
  10213. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
  10214. {
  10215. imageOffset = imageOffset_;
  10216. return *this;
  10217. }
  10218. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
  10219. {
  10220. imageExtent = imageExtent_;
  10221. return *this;
  10222. }
  10223. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10224. operator VkBufferImageCopy const &() const VULKAN_HPP_NOEXCEPT
  10225. {
  10226. return *reinterpret_cast<const VkBufferImageCopy *>( this );
  10227. }
  10228. operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT
  10229. {
  10230. return *reinterpret_cast<VkBufferImageCopy *>( this );
  10231. }
  10232. #if defined( VULKAN_HPP_USE_REFLECT )
  10233. # if 14 <= VULKAN_HPP_CPP_VERSION
  10234. auto
  10235. # else
  10236. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &,
  10237. uint32_t const &,
  10238. uint32_t const &,
  10239. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  10240. VULKAN_HPP_NAMESPACE::Offset3D const &,
  10241. VULKAN_HPP_NAMESPACE::Extent3D const &>
  10242. # endif
  10243. reflect() const VULKAN_HPP_NOEXCEPT
  10244. {
  10245. return std::tie( bufferOffset, bufferRowLength, bufferImageHeight, imageSubresource, imageOffset, imageExtent );
  10246. }
  10247. #endif
  10248. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10249. auto operator<=>( BufferImageCopy const & ) const = default;
  10250. #else
  10251. bool operator==( BufferImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  10252. {
  10253. # if defined( VULKAN_HPP_USE_REFLECT )
  10254. return this->reflect() == rhs.reflect();
  10255. # else
  10256. return ( bufferOffset == rhs.bufferOffset ) && ( bufferRowLength == rhs.bufferRowLength ) && ( bufferImageHeight == rhs.bufferImageHeight ) &&
  10257. ( imageSubresource == rhs.imageSubresource ) && ( imageOffset == rhs.imageOffset ) && ( imageExtent == rhs.imageExtent );
  10258. # endif
  10259. }
  10260. bool operator!=( BufferImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  10261. {
  10262. return !operator==( rhs );
  10263. }
  10264. #endif
  10265. public:
  10266. VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
  10267. uint32_t bufferRowLength = {};
  10268. uint32_t bufferImageHeight = {};
  10269. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
  10270. VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
  10271. VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
  10272. };
  10273. struct BufferImageCopy2
  10274. {
  10275. using NativeType = VkBufferImageCopy2;
  10276. static const bool allowDuplicate = false;
  10277. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferImageCopy2;
  10278. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10279. VULKAN_HPP_CONSTEXPR BufferImageCopy2( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {},
  10280. uint32_t bufferRowLength_ = {},
  10281. uint32_t bufferImageHeight_ = {},
  10282. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {},
  10283. VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
  10284. VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {},
  10285. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10286. : pNext( pNext_ )
  10287. , bufferOffset( bufferOffset_ )
  10288. , bufferRowLength( bufferRowLength_ )
  10289. , bufferImageHeight( bufferImageHeight_ )
  10290. , imageSubresource( imageSubresource_ )
  10291. , imageOffset( imageOffset_ )
  10292. , imageExtent( imageExtent_ )
  10293. {
  10294. }
  10295. VULKAN_HPP_CONSTEXPR BufferImageCopy2( BufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10296. BufferImageCopy2( VkBufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT : BufferImageCopy2( *reinterpret_cast<BufferImageCopy2 const *>( &rhs ) ) {}
  10297. BufferImageCopy2 & operator=( BufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10298. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10299. BufferImageCopy2 & operator=( VkBufferImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
  10300. {
  10301. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferImageCopy2 const *>( &rhs );
  10302. return *this;
  10303. }
  10304. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10305. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10306. {
  10307. pNext = pNext_;
  10308. return *this;
  10309. }
  10310. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT
  10311. {
  10312. bufferOffset = bufferOffset_;
  10313. return *this;
  10314. }
  10315. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
  10316. {
  10317. bufferRowLength = bufferRowLength_;
  10318. return *this;
  10319. }
  10320. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
  10321. {
  10322. bufferImageHeight = bufferImageHeight_;
  10323. return *this;
  10324. }
  10325. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
  10326. {
  10327. imageSubresource = imageSubresource_;
  10328. return *this;
  10329. }
  10330. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
  10331. {
  10332. imageOffset = imageOffset_;
  10333. return *this;
  10334. }
  10335. VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2 & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
  10336. {
  10337. imageExtent = imageExtent_;
  10338. return *this;
  10339. }
  10340. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10341. operator VkBufferImageCopy2 const &() const VULKAN_HPP_NOEXCEPT
  10342. {
  10343. return *reinterpret_cast<const VkBufferImageCopy2 *>( this );
  10344. }
  10345. operator VkBufferImageCopy2 &() VULKAN_HPP_NOEXCEPT
  10346. {
  10347. return *reinterpret_cast<VkBufferImageCopy2 *>( this );
  10348. }
  10349. #if defined( VULKAN_HPP_USE_REFLECT )
  10350. # if 14 <= VULKAN_HPP_CPP_VERSION
  10351. auto
  10352. # else
  10353. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  10354. const void * const &,
  10355. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  10356. uint32_t const &,
  10357. uint32_t const &,
  10358. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  10359. VULKAN_HPP_NAMESPACE::Offset3D const &,
  10360. VULKAN_HPP_NAMESPACE::Extent3D const &>
  10361. # endif
  10362. reflect() const VULKAN_HPP_NOEXCEPT
  10363. {
  10364. return std::tie( sType, pNext, bufferOffset, bufferRowLength, bufferImageHeight, imageSubresource, imageOffset, imageExtent );
  10365. }
  10366. #endif
  10367. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10368. auto operator<=>( BufferImageCopy2 const & ) const = default;
  10369. #else
  10370. bool operator==( BufferImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  10371. {
  10372. # if defined( VULKAN_HPP_USE_REFLECT )
  10373. return this->reflect() == rhs.reflect();
  10374. # else
  10375. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bufferOffset == rhs.bufferOffset ) && ( bufferRowLength == rhs.bufferRowLength ) &&
  10376. ( bufferImageHeight == rhs.bufferImageHeight ) && ( imageSubresource == rhs.imageSubresource ) && ( imageOffset == rhs.imageOffset ) &&
  10377. ( imageExtent == rhs.imageExtent );
  10378. # endif
  10379. }
  10380. bool operator!=( BufferImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  10381. {
  10382. return !operator==( rhs );
  10383. }
  10384. #endif
  10385. public:
  10386. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferImageCopy2;
  10387. const void * pNext = {};
  10388. VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {};
  10389. uint32_t bufferRowLength = {};
  10390. uint32_t bufferImageHeight = {};
  10391. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
  10392. VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
  10393. VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
  10394. };
  10395. template <>
  10396. struct CppType<StructureType, StructureType::eBufferImageCopy2>
  10397. {
  10398. using Type = BufferImageCopy2;
  10399. };
  10400. using BufferImageCopy2KHR = BufferImageCopy2;
  10401. struct BufferMemoryBarrier
  10402. {
  10403. using NativeType = VkBufferMemoryBarrier;
  10404. static const bool allowDuplicate = false;
  10405. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier;
  10406. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10407. VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
  10408. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
  10409. uint32_t srcQueueFamilyIndex_ = {},
  10410. uint32_t dstQueueFamilyIndex_ = {},
  10411. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  10412. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  10413. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  10414. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10415. : pNext( pNext_ )
  10416. , srcAccessMask( srcAccessMask_ )
  10417. , dstAccessMask( dstAccessMask_ )
  10418. , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
  10419. , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
  10420. , buffer( buffer_ )
  10421. , offset( offset_ )
  10422. , size( size_ )
  10423. {
  10424. }
  10425. VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10426. BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT : BufferMemoryBarrier( *reinterpret_cast<BufferMemoryBarrier const *>( &rhs ) )
  10427. {
  10428. }
  10429. BufferMemoryBarrier & operator=( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10430. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10431. BufferMemoryBarrier & operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
  10432. {
  10433. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier const *>( &rhs );
  10434. return *this;
  10435. }
  10436. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10437. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10438. {
  10439. pNext = pNext_;
  10440. return *this;
  10441. }
  10442. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  10443. {
  10444. srcAccessMask = srcAccessMask_;
  10445. return *this;
  10446. }
  10447. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  10448. {
  10449. dstAccessMask = dstAccessMask_;
  10450. return *this;
  10451. }
  10452. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  10453. {
  10454. srcQueueFamilyIndex = srcQueueFamilyIndex_;
  10455. return *this;
  10456. }
  10457. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  10458. {
  10459. dstQueueFamilyIndex = dstQueueFamilyIndex_;
  10460. return *this;
  10461. }
  10462. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  10463. {
  10464. buffer = buffer_;
  10465. return *this;
  10466. }
  10467. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  10468. {
  10469. offset = offset_;
  10470. return *this;
  10471. }
  10472. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  10473. {
  10474. size = size_;
  10475. return *this;
  10476. }
  10477. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10478. operator VkBufferMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
  10479. {
  10480. return *reinterpret_cast<const VkBufferMemoryBarrier *>( this );
  10481. }
  10482. operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT
  10483. {
  10484. return *reinterpret_cast<VkBufferMemoryBarrier *>( this );
  10485. }
  10486. #if defined( VULKAN_HPP_USE_REFLECT )
  10487. # if 14 <= VULKAN_HPP_CPP_VERSION
  10488. auto
  10489. # else
  10490. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  10491. const void * const &,
  10492. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  10493. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  10494. uint32_t const &,
  10495. uint32_t const &,
  10496. VULKAN_HPP_NAMESPACE::Buffer const &,
  10497. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  10498. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  10499. # endif
  10500. reflect() const VULKAN_HPP_NOEXCEPT
  10501. {
  10502. return std::tie( sType, pNext, srcAccessMask, dstAccessMask, srcQueueFamilyIndex, dstQueueFamilyIndex, buffer, offset, size );
  10503. }
  10504. #endif
  10505. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10506. auto operator<=>( BufferMemoryBarrier const & ) const = default;
  10507. #else
  10508. bool operator==( BufferMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  10509. {
  10510. # if defined( VULKAN_HPP_USE_REFLECT )
  10511. return this->reflect() == rhs.reflect();
  10512. # else
  10513. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcAccessMask == rhs.srcAccessMask ) && ( dstAccessMask == rhs.dstAccessMask ) &&
  10514. ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) && ( buffer == rhs.buffer ) &&
  10515. ( offset == rhs.offset ) && ( size == rhs.size );
  10516. # endif
  10517. }
  10518. bool operator!=( BufferMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  10519. {
  10520. return !operator==( rhs );
  10521. }
  10522. #endif
  10523. public:
  10524. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier;
  10525. const void * pNext = {};
  10526. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
  10527. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
  10528. uint32_t srcQueueFamilyIndex = {};
  10529. uint32_t dstQueueFamilyIndex = {};
  10530. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  10531. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  10532. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  10533. };
  10534. template <>
  10535. struct CppType<StructureType, StructureType::eBufferMemoryBarrier>
  10536. {
  10537. using Type = BufferMemoryBarrier;
  10538. };
  10539. struct BufferMemoryBarrier2
  10540. {
  10541. using NativeType = VkBufferMemoryBarrier2;
  10542. static const bool allowDuplicate = false;
  10543. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier2;
  10544. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10545. VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ = {},
  10546. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ = {},
  10547. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ = {},
  10548. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ = {},
  10549. uint32_t srcQueueFamilyIndex_ = {},
  10550. uint32_t dstQueueFamilyIndex_ = {},
  10551. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  10552. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  10553. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  10554. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10555. : pNext( pNext_ )
  10556. , srcStageMask( srcStageMask_ )
  10557. , srcAccessMask( srcAccessMask_ )
  10558. , dstStageMask( dstStageMask_ )
  10559. , dstAccessMask( dstAccessMask_ )
  10560. , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
  10561. , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
  10562. , buffer( buffer_ )
  10563. , offset( offset_ )
  10564. , size( size_ )
  10565. {
  10566. }
  10567. VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2( BufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10568. BufferMemoryBarrier2( VkBufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
  10569. : BufferMemoryBarrier2( *reinterpret_cast<BufferMemoryBarrier2 const *>( &rhs ) )
  10570. {
  10571. }
  10572. BufferMemoryBarrier2 & operator=( BufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10573. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10574. BufferMemoryBarrier2 & operator=( VkBufferMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
  10575. {
  10576. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 const *>( &rhs );
  10577. return *this;
  10578. }
  10579. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10580. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10581. {
  10582. pNext = pNext_;
  10583. return *this;
  10584. }
  10585. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ ) VULKAN_HPP_NOEXCEPT
  10586. {
  10587. srcStageMask = srcStageMask_;
  10588. return *this;
  10589. }
  10590. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  10591. {
  10592. srcAccessMask = srcAccessMask_;
  10593. return *this;
  10594. }
  10595. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ ) VULKAN_HPP_NOEXCEPT
  10596. {
  10597. dstStageMask = dstStageMask_;
  10598. return *this;
  10599. }
  10600. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  10601. {
  10602. dstAccessMask = dstAccessMask_;
  10603. return *this;
  10604. }
  10605. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  10606. {
  10607. srcQueueFamilyIndex = srcQueueFamilyIndex_;
  10608. return *this;
  10609. }
  10610. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  10611. {
  10612. dstQueueFamilyIndex = dstQueueFamilyIndex_;
  10613. return *this;
  10614. }
  10615. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  10616. {
  10617. buffer = buffer_;
  10618. return *this;
  10619. }
  10620. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  10621. {
  10622. offset = offset_;
  10623. return *this;
  10624. }
  10625. VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2 & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  10626. {
  10627. size = size_;
  10628. return *this;
  10629. }
  10630. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10631. operator VkBufferMemoryBarrier2 const &() const VULKAN_HPP_NOEXCEPT
  10632. {
  10633. return *reinterpret_cast<const VkBufferMemoryBarrier2 *>( this );
  10634. }
  10635. operator VkBufferMemoryBarrier2 &() VULKAN_HPP_NOEXCEPT
  10636. {
  10637. return *reinterpret_cast<VkBufferMemoryBarrier2 *>( this );
  10638. }
  10639. #if defined( VULKAN_HPP_USE_REFLECT )
  10640. # if 14 <= VULKAN_HPP_CPP_VERSION
  10641. auto
  10642. # else
  10643. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  10644. const void * const &,
  10645. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  10646. VULKAN_HPP_NAMESPACE::AccessFlags2 const &,
  10647. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  10648. VULKAN_HPP_NAMESPACE::AccessFlags2 const &,
  10649. uint32_t const &,
  10650. uint32_t const &,
  10651. VULKAN_HPP_NAMESPACE::Buffer const &,
  10652. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  10653. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  10654. # endif
  10655. reflect() const VULKAN_HPP_NOEXCEPT
  10656. {
  10657. return std::tie( sType, pNext, srcStageMask, srcAccessMask, dstStageMask, dstAccessMask, srcQueueFamilyIndex, dstQueueFamilyIndex, buffer, offset, size );
  10658. }
  10659. #endif
  10660. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10661. auto operator<=>( BufferMemoryBarrier2 const & ) const = default;
  10662. #else
  10663. bool operator==( BufferMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  10664. {
  10665. # if defined( VULKAN_HPP_USE_REFLECT )
  10666. return this->reflect() == rhs.reflect();
  10667. # else
  10668. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcStageMask == rhs.srcStageMask ) && ( srcAccessMask == rhs.srcAccessMask ) &&
  10669. ( dstStageMask == rhs.dstStageMask ) && ( dstAccessMask == rhs.dstAccessMask ) && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) &&
  10670. ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) && ( buffer == rhs.buffer ) && ( offset == rhs.offset ) && ( size == rhs.size );
  10671. # endif
  10672. }
  10673. bool operator!=( BufferMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  10674. {
  10675. return !operator==( rhs );
  10676. }
  10677. #endif
  10678. public:
  10679. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier2;
  10680. const void * pNext = {};
  10681. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask = {};
  10682. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask = {};
  10683. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask = {};
  10684. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask = {};
  10685. uint32_t srcQueueFamilyIndex = {};
  10686. uint32_t dstQueueFamilyIndex = {};
  10687. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  10688. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  10689. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  10690. };
  10691. template <>
  10692. struct CppType<StructureType, StructureType::eBufferMemoryBarrier2>
  10693. {
  10694. using Type = BufferMemoryBarrier2;
  10695. };
  10696. using BufferMemoryBarrier2KHR = BufferMemoryBarrier2;
  10697. struct BufferMemoryRequirementsInfo2
  10698. {
  10699. using NativeType = VkBufferMemoryRequirementsInfo2;
  10700. static const bool allowDuplicate = false;
  10701. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryRequirementsInfo2;
  10702. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10703. VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10704. : pNext( pNext_ )
  10705. , buffer( buffer_ )
  10706. {
  10707. }
  10708. VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10709. BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  10710. : BufferMemoryRequirementsInfo2( *reinterpret_cast<BufferMemoryRequirementsInfo2 const *>( &rhs ) )
  10711. {
  10712. }
  10713. BufferMemoryRequirementsInfo2 & operator=( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10714. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10715. BufferMemoryRequirementsInfo2 & operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  10716. {
  10717. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 const *>( &rhs );
  10718. return *this;
  10719. }
  10720. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10721. VULKAN_HPP_CONSTEXPR_14 BufferMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10722. {
  10723. pNext = pNext_;
  10724. return *this;
  10725. }
  10726. VULKAN_HPP_CONSTEXPR_14 BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  10727. {
  10728. buffer = buffer_;
  10729. return *this;
  10730. }
  10731. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10732. operator VkBufferMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
  10733. {
  10734. return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( this );
  10735. }
  10736. operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
  10737. {
  10738. return *reinterpret_cast<VkBufferMemoryRequirementsInfo2 *>( this );
  10739. }
  10740. #if defined( VULKAN_HPP_USE_REFLECT )
  10741. # if 14 <= VULKAN_HPP_CPP_VERSION
  10742. auto
  10743. # else
  10744. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Buffer const &>
  10745. # endif
  10746. reflect() const VULKAN_HPP_NOEXCEPT
  10747. {
  10748. return std::tie( sType, pNext, buffer );
  10749. }
  10750. #endif
  10751. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10752. auto operator<=>( BufferMemoryRequirementsInfo2 const & ) const = default;
  10753. #else
  10754. bool operator==( BufferMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  10755. {
  10756. # if defined( VULKAN_HPP_USE_REFLECT )
  10757. return this->reflect() == rhs.reflect();
  10758. # else
  10759. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer );
  10760. # endif
  10761. }
  10762. bool operator!=( BufferMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  10763. {
  10764. return !operator==( rhs );
  10765. }
  10766. #endif
  10767. public:
  10768. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2;
  10769. const void * pNext = {};
  10770. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  10771. };
  10772. template <>
  10773. struct CppType<StructureType, StructureType::eBufferMemoryRequirementsInfo2>
  10774. {
  10775. using Type = BufferMemoryRequirementsInfo2;
  10776. };
  10777. using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
  10778. struct BufferOpaqueCaptureAddressCreateInfo
  10779. {
  10780. using NativeType = VkBufferOpaqueCaptureAddressCreateInfo;
  10781. static const bool allowDuplicate = false;
  10782. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
  10783. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10784. VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( uint64_t opaqueCaptureAddress_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10785. : pNext( pNext_ )
  10786. , opaqueCaptureAddress( opaqueCaptureAddress_ )
  10787. {
  10788. }
  10789. VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10790. BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10791. : BufferOpaqueCaptureAddressCreateInfo( *reinterpret_cast<BufferOpaqueCaptureAddressCreateInfo const *>( &rhs ) )
  10792. {
  10793. }
  10794. BufferOpaqueCaptureAddressCreateInfo & operator=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10795. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10796. BufferOpaqueCaptureAddressCreateInfo & operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10797. {
  10798. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo const *>( &rhs );
  10799. return *this;
  10800. }
  10801. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10802. VULKAN_HPP_CONSTEXPR_14 BufferOpaqueCaptureAddressCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10803. {
  10804. pNext = pNext_;
  10805. return *this;
  10806. }
  10807. VULKAN_HPP_CONSTEXPR_14 BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
  10808. {
  10809. opaqueCaptureAddress = opaqueCaptureAddress_;
  10810. return *this;
  10811. }
  10812. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10813. operator VkBufferOpaqueCaptureAddressCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  10814. {
  10815. return *reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo *>( this );
  10816. }
  10817. operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT
  10818. {
  10819. return *reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo *>( this );
  10820. }
  10821. #if defined( VULKAN_HPP_USE_REFLECT )
  10822. # if 14 <= VULKAN_HPP_CPP_VERSION
  10823. auto
  10824. # else
  10825. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
  10826. # endif
  10827. reflect() const VULKAN_HPP_NOEXCEPT
  10828. {
  10829. return std::tie( sType, pNext, opaqueCaptureAddress );
  10830. }
  10831. #endif
  10832. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10833. auto operator<=>( BufferOpaqueCaptureAddressCreateInfo const & ) const = default;
  10834. #else
  10835. bool operator==( BufferOpaqueCaptureAddressCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  10836. {
  10837. # if defined( VULKAN_HPP_USE_REFLECT )
  10838. return this->reflect() == rhs.reflect();
  10839. # else
  10840. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
  10841. # endif
  10842. }
  10843. bool operator!=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  10844. {
  10845. return !operator==( rhs );
  10846. }
  10847. #endif
  10848. public:
  10849. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo;
  10850. const void * pNext = {};
  10851. uint64_t opaqueCaptureAddress = {};
  10852. };
  10853. template <>
  10854. struct CppType<StructureType, StructureType::eBufferOpaqueCaptureAddressCreateInfo>
  10855. {
  10856. using Type = BufferOpaqueCaptureAddressCreateInfo;
  10857. };
  10858. using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
  10859. struct BufferUsageFlags2CreateInfoKHR
  10860. {
  10861. using NativeType = VkBufferUsageFlags2CreateInfoKHR;
  10862. static const bool allowDuplicate = false;
  10863. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferUsageFlags2CreateInfoKHR;
  10864. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10865. VULKAN_HPP_CONSTEXPR BufferUsageFlags2CreateInfoKHR( VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR usage_ = {},
  10866. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10867. : pNext( pNext_ )
  10868. , usage( usage_ )
  10869. {
  10870. }
  10871. VULKAN_HPP_CONSTEXPR BufferUsageFlags2CreateInfoKHR( BufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10872. BufferUsageFlags2CreateInfoKHR( VkBufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  10873. : BufferUsageFlags2CreateInfoKHR( *reinterpret_cast<BufferUsageFlags2CreateInfoKHR const *>( &rhs ) )
  10874. {
  10875. }
  10876. BufferUsageFlags2CreateInfoKHR & operator=( BufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10877. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10878. BufferUsageFlags2CreateInfoKHR & operator=( VkBufferUsageFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  10879. {
  10880. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR const *>( &rhs );
  10881. return *this;
  10882. }
  10883. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10884. VULKAN_HPP_CONSTEXPR_14 BufferUsageFlags2CreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10885. {
  10886. pNext = pNext_;
  10887. return *this;
  10888. }
  10889. VULKAN_HPP_CONSTEXPR_14 BufferUsageFlags2CreateInfoKHR & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR usage_ ) VULKAN_HPP_NOEXCEPT
  10890. {
  10891. usage = usage_;
  10892. return *this;
  10893. }
  10894. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  10895. operator VkBufferUsageFlags2CreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  10896. {
  10897. return *reinterpret_cast<const VkBufferUsageFlags2CreateInfoKHR *>( this );
  10898. }
  10899. operator VkBufferUsageFlags2CreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  10900. {
  10901. return *reinterpret_cast<VkBufferUsageFlags2CreateInfoKHR *>( this );
  10902. }
  10903. #if defined( VULKAN_HPP_USE_REFLECT )
  10904. # if 14 <= VULKAN_HPP_CPP_VERSION
  10905. auto
  10906. # else
  10907. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR const &>
  10908. # endif
  10909. reflect() const VULKAN_HPP_NOEXCEPT
  10910. {
  10911. return std::tie( sType, pNext, usage );
  10912. }
  10913. #endif
  10914. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  10915. auto operator<=>( BufferUsageFlags2CreateInfoKHR const & ) const = default;
  10916. #else
  10917. bool operator==( BufferUsageFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  10918. {
  10919. # if defined( VULKAN_HPP_USE_REFLECT )
  10920. return this->reflect() == rhs.reflect();
  10921. # else
  10922. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( usage == rhs.usage );
  10923. # endif
  10924. }
  10925. bool operator!=( BufferUsageFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  10926. {
  10927. return !operator==( rhs );
  10928. }
  10929. #endif
  10930. public:
  10931. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferUsageFlags2CreateInfoKHR;
  10932. const void * pNext = {};
  10933. VULKAN_HPP_NAMESPACE::BufferUsageFlags2KHR usage = {};
  10934. };
  10935. template <>
  10936. struct CppType<StructureType, StructureType::eBufferUsageFlags2CreateInfoKHR>
  10937. {
  10938. using Type = BufferUsageFlags2CreateInfoKHR;
  10939. };
  10940. struct BufferViewCreateInfo
  10941. {
  10942. using NativeType = VkBufferViewCreateInfo;
  10943. static const bool allowDuplicate = false;
  10944. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferViewCreateInfo;
  10945. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  10946. VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ = {},
  10947. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  10948. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  10949. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  10950. VULKAN_HPP_NAMESPACE::DeviceSize range_ = {},
  10951. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  10952. : pNext( pNext_ )
  10953. , flags( flags_ )
  10954. , buffer( buffer_ )
  10955. , format( format_ )
  10956. , offset( offset_ )
  10957. , range( range_ )
  10958. {
  10959. }
  10960. VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10961. BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10962. : BufferViewCreateInfo( *reinterpret_cast<BufferViewCreateInfo const *>( &rhs ) )
  10963. {
  10964. }
  10965. BufferViewCreateInfo & operator=( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  10966. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  10967. BufferViewCreateInfo & operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  10968. {
  10969. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const *>( &rhs );
  10970. return *this;
  10971. }
  10972. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  10973. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  10974. {
  10975. pNext = pNext_;
  10976. return *this;
  10977. }
  10978. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  10979. {
  10980. flags = flags_;
  10981. return *this;
  10982. }
  10983. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  10984. {
  10985. buffer = buffer_;
  10986. return *this;
  10987. }
  10988. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  10989. {
  10990. format = format_;
  10991. return *this;
  10992. }
  10993. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  10994. {
  10995. offset = offset_;
  10996. return *this;
  10997. }
  10998. VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
  10999. {
  11000. range = range_;
  11001. return *this;
  11002. }
  11003. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11004. operator VkBufferViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  11005. {
  11006. return *reinterpret_cast<const VkBufferViewCreateInfo *>( this );
  11007. }
  11008. operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT
  11009. {
  11010. return *reinterpret_cast<VkBufferViewCreateInfo *>( this );
  11011. }
  11012. #if defined( VULKAN_HPP_USE_REFLECT )
  11013. # if 14 <= VULKAN_HPP_CPP_VERSION
  11014. auto
  11015. # else
  11016. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  11017. const void * const &,
  11018. VULKAN_HPP_NAMESPACE::BufferViewCreateFlags const &,
  11019. VULKAN_HPP_NAMESPACE::Buffer const &,
  11020. VULKAN_HPP_NAMESPACE::Format const &,
  11021. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  11022. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  11023. # endif
  11024. reflect() const VULKAN_HPP_NOEXCEPT
  11025. {
  11026. return std::tie( sType, pNext, flags, buffer, format, offset, range );
  11027. }
  11028. #endif
  11029. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11030. auto operator<=>( BufferViewCreateInfo const & ) const = default;
  11031. #else
  11032. bool operator==( BufferViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11033. {
  11034. # if defined( VULKAN_HPP_USE_REFLECT )
  11035. return this->reflect() == rhs.reflect();
  11036. # else
  11037. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( buffer == rhs.buffer ) && ( format == rhs.format ) &&
  11038. ( offset == rhs.offset ) && ( range == rhs.range );
  11039. # endif
  11040. }
  11041. bool operator!=( BufferViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  11042. {
  11043. return !operator==( rhs );
  11044. }
  11045. #endif
  11046. public:
  11047. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo;
  11048. const void * pNext = {};
  11049. VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {};
  11050. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  11051. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  11052. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  11053. VULKAN_HPP_NAMESPACE::DeviceSize range = {};
  11054. };
  11055. template <>
  11056. struct CppType<StructureType, StructureType::eBufferViewCreateInfo>
  11057. {
  11058. using Type = BufferViewCreateInfo;
  11059. };
  11060. struct CalibratedTimestampInfoEXT
  11061. {
  11062. using NativeType = VkCalibratedTimestampInfoEXT;
  11063. static const bool allowDuplicate = false;
  11064. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCalibratedTimestampInfoEXT;
  11065. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11066. VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice,
  11067. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  11068. : pNext( pNext_ )
  11069. , timeDomain( timeDomain_ )
  11070. {
  11071. }
  11072. VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11073. CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  11074. : CalibratedTimestampInfoEXT( *reinterpret_cast<CalibratedTimestampInfoEXT const *>( &rhs ) )
  11075. {
  11076. }
  11077. CalibratedTimestampInfoEXT & operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11078. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11079. CalibratedTimestampInfoEXT & operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  11080. {
  11081. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const *>( &rhs );
  11082. return *this;
  11083. }
  11084. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11085. VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  11086. {
  11087. pNext = pNext_;
  11088. return *this;
  11089. }
  11090. VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT
  11091. {
  11092. timeDomain = timeDomain_;
  11093. return *this;
  11094. }
  11095. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11096. operator VkCalibratedTimestampInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  11097. {
  11098. return *reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( this );
  11099. }
  11100. operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT
  11101. {
  11102. return *reinterpret_cast<VkCalibratedTimestampInfoEXT *>( this );
  11103. }
  11104. #if defined( VULKAN_HPP_USE_REFLECT )
  11105. # if 14 <= VULKAN_HPP_CPP_VERSION
  11106. auto
  11107. # else
  11108. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::TimeDomainEXT const &>
  11109. # endif
  11110. reflect() const VULKAN_HPP_NOEXCEPT
  11111. {
  11112. return std::tie( sType, pNext, timeDomain );
  11113. }
  11114. #endif
  11115. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11116. auto operator<=>( CalibratedTimestampInfoEXT const & ) const = default;
  11117. #else
  11118. bool operator==( CalibratedTimestampInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  11119. {
  11120. # if defined( VULKAN_HPP_USE_REFLECT )
  11121. return this->reflect() == rhs.reflect();
  11122. # else
  11123. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( timeDomain == rhs.timeDomain );
  11124. # endif
  11125. }
  11126. bool operator!=( CalibratedTimestampInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  11127. {
  11128. return !operator==( rhs );
  11129. }
  11130. #endif
  11131. public:
  11132. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT;
  11133. const void * pNext = {};
  11134. VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice;
  11135. };
  11136. template <>
  11137. struct CppType<StructureType, StructureType::eCalibratedTimestampInfoEXT>
  11138. {
  11139. using Type = CalibratedTimestampInfoEXT;
  11140. };
  11141. struct CheckpointData2NV
  11142. {
  11143. using NativeType = VkCheckpointData2NV;
  11144. static const bool allowDuplicate = false;
  11145. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointData2NV;
  11146. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11147. VULKAN_HPP_CONSTEXPR
  11148. CheckpointData2NV( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage_ = {}, void * pCheckpointMarker_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  11149. : pNext( pNext_ )
  11150. , stage( stage_ )
  11151. , pCheckpointMarker( pCheckpointMarker_ )
  11152. {
  11153. }
  11154. VULKAN_HPP_CONSTEXPR CheckpointData2NV( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11155. CheckpointData2NV( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT : CheckpointData2NV( *reinterpret_cast<CheckpointData2NV const *>( &rhs ) ) {}
  11156. CheckpointData2NV & operator=( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11157. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11158. CheckpointData2NV & operator=( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT
  11159. {
  11160. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointData2NV const *>( &rhs );
  11161. return *this;
  11162. }
  11163. operator VkCheckpointData2NV const &() const VULKAN_HPP_NOEXCEPT
  11164. {
  11165. return *reinterpret_cast<const VkCheckpointData2NV *>( this );
  11166. }
  11167. operator VkCheckpointData2NV &() VULKAN_HPP_NOEXCEPT
  11168. {
  11169. return *reinterpret_cast<VkCheckpointData2NV *>( this );
  11170. }
  11171. #if defined( VULKAN_HPP_USE_REFLECT )
  11172. # if 14 <= VULKAN_HPP_CPP_VERSION
  11173. auto
  11174. # else
  11175. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &, void * const &>
  11176. # endif
  11177. reflect() const VULKAN_HPP_NOEXCEPT
  11178. {
  11179. return std::tie( sType, pNext, stage, pCheckpointMarker );
  11180. }
  11181. #endif
  11182. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11183. auto operator<=>( CheckpointData2NV const & ) const = default;
  11184. #else
  11185. bool operator==( CheckpointData2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
  11186. {
  11187. # if defined( VULKAN_HPP_USE_REFLECT )
  11188. return this->reflect() == rhs.reflect();
  11189. # else
  11190. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stage == rhs.stage ) && ( pCheckpointMarker == rhs.pCheckpointMarker );
  11191. # endif
  11192. }
  11193. bool operator!=( CheckpointData2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
  11194. {
  11195. return !operator==( rhs );
  11196. }
  11197. #endif
  11198. public:
  11199. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointData2NV;
  11200. void * pNext = {};
  11201. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage = {};
  11202. void * pCheckpointMarker = {};
  11203. };
  11204. template <>
  11205. struct CppType<StructureType, StructureType::eCheckpointData2NV>
  11206. {
  11207. using Type = CheckpointData2NV;
  11208. };
  11209. struct CheckpointDataNV
  11210. {
  11211. using NativeType = VkCheckpointDataNV;
  11212. static const bool allowDuplicate = false;
  11213. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointDataNV;
  11214. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11215. VULKAN_HPP_CONSTEXPR CheckpointDataNV( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe,
  11216. void * pCheckpointMarker_ = {},
  11217. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  11218. : pNext( pNext_ )
  11219. , stage( stage_ )
  11220. , pCheckpointMarker( pCheckpointMarker_ )
  11221. {
  11222. }
  11223. VULKAN_HPP_CONSTEXPR CheckpointDataNV( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11224. CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT : CheckpointDataNV( *reinterpret_cast<CheckpointDataNV const *>( &rhs ) ) {}
  11225. CheckpointDataNV & operator=( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11226. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11227. CheckpointDataNV & operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT
  11228. {
  11229. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CheckpointDataNV const *>( &rhs );
  11230. return *this;
  11231. }
  11232. operator VkCheckpointDataNV const &() const VULKAN_HPP_NOEXCEPT
  11233. {
  11234. return *reinterpret_cast<const VkCheckpointDataNV *>( this );
  11235. }
  11236. operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT
  11237. {
  11238. return *reinterpret_cast<VkCheckpointDataNV *>( this );
  11239. }
  11240. #if defined( VULKAN_HPP_USE_REFLECT )
  11241. # if 14 <= VULKAN_HPP_CPP_VERSION
  11242. auto
  11243. # else
  11244. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlagBits const &, void * const &>
  11245. # endif
  11246. reflect() const VULKAN_HPP_NOEXCEPT
  11247. {
  11248. return std::tie( sType, pNext, stage, pCheckpointMarker );
  11249. }
  11250. #endif
  11251. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11252. auto operator<=>( CheckpointDataNV const & ) const = default;
  11253. #else
  11254. bool operator==( CheckpointDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  11255. {
  11256. # if defined( VULKAN_HPP_USE_REFLECT )
  11257. return this->reflect() == rhs.reflect();
  11258. # else
  11259. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stage == rhs.stage ) && ( pCheckpointMarker == rhs.pCheckpointMarker );
  11260. # endif
  11261. }
  11262. bool operator!=( CheckpointDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  11263. {
  11264. return !operator==( rhs );
  11265. }
  11266. #endif
  11267. public:
  11268. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV;
  11269. void * pNext = {};
  11270. VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe;
  11271. void * pCheckpointMarker = {};
  11272. };
  11273. template <>
  11274. struct CppType<StructureType, StructureType::eCheckpointDataNV>
  11275. {
  11276. using Type = CheckpointDataNV;
  11277. };
  11278. union ClearColorValue
  11279. {
  11280. using NativeType = VkClearColorValue;
  11281. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  11282. VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<float, 4> & float32_ = {} ) : float32( float32_ ) {}
  11283. VULKAN_HPP_CONSTEXPR ClearColorValue( float float32_0, float float32_1, float float32_2, float float32_3 )
  11284. : float32{ { { float32_0, float32_1, float32_2, float32_3 } } }
  11285. {
  11286. }
  11287. VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<int32_t, 4> & int32_ ) : int32( int32_ ) {}
  11288. VULKAN_HPP_CONSTEXPR ClearColorValue( int32_t int32_0, int32_t int32_1, int32_t int32_2, int32_t int32_3 )
  11289. : int32{ { { int32_0, int32_1, int32_2, int32_3 } } }
  11290. {
  11291. }
  11292. VULKAN_HPP_CONSTEXPR_14 ClearColorValue( const std::array<uint32_t, 4> & uint32_ ) : uint32( uint32_ ) {}
  11293. VULKAN_HPP_CONSTEXPR ClearColorValue( uint32_t uint32_0, uint32_t uint32_1, uint32_t uint32_2, uint32_t uint32_3 )
  11294. : uint32{ { { uint32_0, uint32_1, uint32_2, uint32_3 } } }
  11295. {
  11296. }
  11297. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  11298. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  11299. VULKAN_HPP_CONSTEXPR_14 ClearColorValue & setFloat32( std::array<float, 4> float32_ ) VULKAN_HPP_NOEXCEPT
  11300. {
  11301. float32 = float32_;
  11302. return *this;
  11303. }
  11304. VULKAN_HPP_CONSTEXPR_14 ClearColorValue & setInt32( std::array<int32_t, 4> int32_ ) VULKAN_HPP_NOEXCEPT
  11305. {
  11306. int32 = int32_;
  11307. return *this;
  11308. }
  11309. VULKAN_HPP_CONSTEXPR_14 ClearColorValue & setUint32( std::array<uint32_t, 4> uint32_ ) VULKAN_HPP_NOEXCEPT
  11310. {
  11311. uint32 = uint32_;
  11312. return *this;
  11313. }
  11314. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  11315. operator VkClearColorValue const &() const
  11316. {
  11317. return *reinterpret_cast<const VkClearColorValue *>( this );
  11318. }
  11319. operator VkClearColorValue &()
  11320. {
  11321. return *reinterpret_cast<VkClearColorValue *>( this );
  11322. }
  11323. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> float32;
  11324. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, 4> int32;
  11325. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 4> uint32;
  11326. };
  11327. struct ClearDepthStencilValue
  11328. {
  11329. using NativeType = VkClearDepthStencilValue;
  11330. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11331. VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( float depth_ = {}, uint32_t stencil_ = {} ) VULKAN_HPP_NOEXCEPT
  11332. : depth( depth_ )
  11333. , stencil( stencil_ )
  11334. {
  11335. }
  11336. VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11337. ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
  11338. : ClearDepthStencilValue( *reinterpret_cast<ClearDepthStencilValue const *>( &rhs ) )
  11339. {
  11340. }
  11341. ClearDepthStencilValue & operator=( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11342. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11343. ClearDepthStencilValue & operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT
  11344. {
  11345. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const *>( &rhs );
  11346. return *this;
  11347. }
  11348. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11349. VULKAN_HPP_CONSTEXPR_14 ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT
  11350. {
  11351. depth = depth_;
  11352. return *this;
  11353. }
  11354. VULKAN_HPP_CONSTEXPR_14 ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT
  11355. {
  11356. stencil = stencil_;
  11357. return *this;
  11358. }
  11359. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11360. operator VkClearDepthStencilValue const &() const VULKAN_HPP_NOEXCEPT
  11361. {
  11362. return *reinterpret_cast<const VkClearDepthStencilValue *>( this );
  11363. }
  11364. operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT
  11365. {
  11366. return *reinterpret_cast<VkClearDepthStencilValue *>( this );
  11367. }
  11368. #if defined( VULKAN_HPP_USE_REFLECT )
  11369. # if 14 <= VULKAN_HPP_CPP_VERSION
  11370. auto
  11371. # else
  11372. std::tuple<float const &, uint32_t const &>
  11373. # endif
  11374. reflect() const VULKAN_HPP_NOEXCEPT
  11375. {
  11376. return std::tie( depth, stencil );
  11377. }
  11378. #endif
  11379. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11380. auto operator<=>( ClearDepthStencilValue const & ) const = default;
  11381. #else
  11382. bool operator==( ClearDepthStencilValue const & rhs ) const VULKAN_HPP_NOEXCEPT
  11383. {
  11384. # if defined( VULKAN_HPP_USE_REFLECT )
  11385. return this->reflect() == rhs.reflect();
  11386. # else
  11387. return ( depth == rhs.depth ) && ( stencil == rhs.stencil );
  11388. # endif
  11389. }
  11390. bool operator!=( ClearDepthStencilValue const & rhs ) const VULKAN_HPP_NOEXCEPT
  11391. {
  11392. return !operator==( rhs );
  11393. }
  11394. #endif
  11395. public:
  11396. float depth = {};
  11397. uint32_t stencil = {};
  11398. };
  11399. union ClearValue
  11400. {
  11401. using NativeType = VkClearValue;
  11402. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  11403. VULKAN_HPP_CONSTEXPR_14 ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} ) : color( color_ ) {}
  11404. VULKAN_HPP_CONSTEXPR_14 ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ ) : depthStencil( depthStencil_ ) {}
  11405. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  11406. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  11407. VULKAN_HPP_CONSTEXPR_14 ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT
  11408. {
  11409. color = color_;
  11410. return *this;
  11411. }
  11412. VULKAN_HPP_CONSTEXPR_14 ClearValue & setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_ ) VULKAN_HPP_NOEXCEPT
  11413. {
  11414. depthStencil = depthStencil_;
  11415. return *this;
  11416. }
  11417. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  11418. operator VkClearValue const &() const
  11419. {
  11420. return *reinterpret_cast<const VkClearValue *>( this );
  11421. }
  11422. operator VkClearValue &()
  11423. {
  11424. return *reinterpret_cast<VkClearValue *>( this );
  11425. }
  11426. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  11427. VULKAN_HPP_NAMESPACE::ClearColorValue color;
  11428. VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil;
  11429. #else
  11430. VkClearColorValue color;
  11431. VkClearDepthStencilValue depthStencil;
  11432. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  11433. };
  11434. struct ClearAttachment
  11435. {
  11436. using NativeType = VkClearAttachment;
  11437. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11438. VULKAN_HPP_CONSTEXPR_14 ClearAttachment( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
  11439. uint32_t colorAttachment_ = {},
  11440. VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {} ) VULKAN_HPP_NOEXCEPT
  11441. : aspectMask( aspectMask_ )
  11442. , colorAttachment( colorAttachment_ )
  11443. , clearValue( clearValue_ )
  11444. {
  11445. }
  11446. VULKAN_HPP_CONSTEXPR_14 ClearAttachment( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11447. ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT : ClearAttachment( *reinterpret_cast<ClearAttachment const *>( &rhs ) ) {}
  11448. ClearAttachment & operator=( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11449. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11450. ClearAttachment & operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT
  11451. {
  11452. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearAttachment const *>( &rhs );
  11453. return *this;
  11454. }
  11455. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11456. VULKAN_HPP_CONSTEXPR_14 ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  11457. {
  11458. aspectMask = aspectMask_;
  11459. return *this;
  11460. }
  11461. VULKAN_HPP_CONSTEXPR_14 ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT
  11462. {
  11463. colorAttachment = colorAttachment_;
  11464. return *this;
  11465. }
  11466. VULKAN_HPP_CONSTEXPR_14 ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT
  11467. {
  11468. clearValue = clearValue_;
  11469. return *this;
  11470. }
  11471. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11472. operator VkClearAttachment const &() const VULKAN_HPP_NOEXCEPT
  11473. {
  11474. return *reinterpret_cast<const VkClearAttachment *>( this );
  11475. }
  11476. operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT
  11477. {
  11478. return *reinterpret_cast<VkClearAttachment *>( this );
  11479. }
  11480. #if defined( VULKAN_HPP_USE_REFLECT )
  11481. # if 14 <= VULKAN_HPP_CPP_VERSION
  11482. auto
  11483. # else
  11484. std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ClearValue const &>
  11485. # endif
  11486. reflect() const VULKAN_HPP_NOEXCEPT
  11487. {
  11488. return std::tie( aspectMask, colorAttachment, clearValue );
  11489. }
  11490. #endif
  11491. public:
  11492. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  11493. uint32_t colorAttachment = {};
  11494. VULKAN_HPP_NAMESPACE::ClearValue clearValue = {};
  11495. };
  11496. struct ClearRect
  11497. {
  11498. using NativeType = VkClearRect;
  11499. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11500. VULKAN_HPP_CONSTEXPR ClearRect( VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
  11501. : rect( rect_ )
  11502. , baseArrayLayer( baseArrayLayer_ )
  11503. , layerCount( layerCount_ )
  11504. {
  11505. }
  11506. VULKAN_HPP_CONSTEXPR ClearRect( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11507. ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT : ClearRect( *reinterpret_cast<ClearRect const *>( &rhs ) ) {}
  11508. ClearRect & operator=( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11509. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11510. ClearRect & operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT
  11511. {
  11512. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ClearRect const *>( &rhs );
  11513. return *this;
  11514. }
  11515. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11516. VULKAN_HPP_CONSTEXPR_14 ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT
  11517. {
  11518. rect = rect_;
  11519. return *this;
  11520. }
  11521. VULKAN_HPP_CONSTEXPR_14 ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
  11522. {
  11523. baseArrayLayer = baseArrayLayer_;
  11524. return *this;
  11525. }
  11526. VULKAN_HPP_CONSTEXPR_14 ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  11527. {
  11528. layerCount = layerCount_;
  11529. return *this;
  11530. }
  11531. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11532. operator VkClearRect const &() const VULKAN_HPP_NOEXCEPT
  11533. {
  11534. return *reinterpret_cast<const VkClearRect *>( this );
  11535. }
  11536. operator VkClearRect &() VULKAN_HPP_NOEXCEPT
  11537. {
  11538. return *reinterpret_cast<VkClearRect *>( this );
  11539. }
  11540. #if defined( VULKAN_HPP_USE_REFLECT )
  11541. # if 14 <= VULKAN_HPP_CPP_VERSION
  11542. auto
  11543. # else
  11544. std::tuple<VULKAN_HPP_NAMESPACE::Rect2D const &, uint32_t const &, uint32_t const &>
  11545. # endif
  11546. reflect() const VULKAN_HPP_NOEXCEPT
  11547. {
  11548. return std::tie( rect, baseArrayLayer, layerCount );
  11549. }
  11550. #endif
  11551. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11552. auto operator<=>( ClearRect const & ) const = default;
  11553. #else
  11554. bool operator==( ClearRect const & rhs ) const VULKAN_HPP_NOEXCEPT
  11555. {
  11556. # if defined( VULKAN_HPP_USE_REFLECT )
  11557. return this->reflect() == rhs.reflect();
  11558. # else
  11559. return ( rect == rhs.rect ) && ( baseArrayLayer == rhs.baseArrayLayer ) && ( layerCount == rhs.layerCount );
  11560. # endif
  11561. }
  11562. bool operator!=( ClearRect const & rhs ) const VULKAN_HPP_NOEXCEPT
  11563. {
  11564. return !operator==( rhs );
  11565. }
  11566. #endif
  11567. public:
  11568. VULKAN_HPP_NAMESPACE::Rect2D rect = {};
  11569. uint32_t baseArrayLayer = {};
  11570. uint32_t layerCount = {};
  11571. };
  11572. struct CoarseSampleLocationNV
  11573. {
  11574. using NativeType = VkCoarseSampleLocationNV;
  11575. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11576. VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( uint32_t pixelX_ = {}, uint32_t pixelY_ = {}, uint32_t sample_ = {} ) VULKAN_HPP_NOEXCEPT
  11577. : pixelX( pixelX_ )
  11578. , pixelY( pixelY_ )
  11579. , sample( sample_ )
  11580. {
  11581. }
  11582. VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11583. CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
  11584. : CoarseSampleLocationNV( *reinterpret_cast<CoarseSampleLocationNV const *>( &rhs ) )
  11585. {
  11586. }
  11587. CoarseSampleLocationNV & operator=( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11588. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11589. CoarseSampleLocationNV & operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT
  11590. {
  11591. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV const *>( &rhs );
  11592. return *this;
  11593. }
  11594. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11595. VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT
  11596. {
  11597. pixelX = pixelX_;
  11598. return *this;
  11599. }
  11600. VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT
  11601. {
  11602. pixelY = pixelY_;
  11603. return *this;
  11604. }
  11605. VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT
  11606. {
  11607. sample = sample_;
  11608. return *this;
  11609. }
  11610. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11611. operator VkCoarseSampleLocationNV const &() const VULKAN_HPP_NOEXCEPT
  11612. {
  11613. return *reinterpret_cast<const VkCoarseSampleLocationNV *>( this );
  11614. }
  11615. operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT
  11616. {
  11617. return *reinterpret_cast<VkCoarseSampleLocationNV *>( this );
  11618. }
  11619. #if defined( VULKAN_HPP_USE_REFLECT )
  11620. # if 14 <= VULKAN_HPP_CPP_VERSION
  11621. auto
  11622. # else
  11623. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  11624. # endif
  11625. reflect() const VULKAN_HPP_NOEXCEPT
  11626. {
  11627. return std::tie( pixelX, pixelY, sample );
  11628. }
  11629. #endif
  11630. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11631. auto operator<=>( CoarseSampleLocationNV const & ) const = default;
  11632. #else
  11633. bool operator==( CoarseSampleLocationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  11634. {
  11635. # if defined( VULKAN_HPP_USE_REFLECT )
  11636. return this->reflect() == rhs.reflect();
  11637. # else
  11638. return ( pixelX == rhs.pixelX ) && ( pixelY == rhs.pixelY ) && ( sample == rhs.sample );
  11639. # endif
  11640. }
  11641. bool operator!=( CoarseSampleLocationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  11642. {
  11643. return !operator==( rhs );
  11644. }
  11645. #endif
  11646. public:
  11647. uint32_t pixelX = {};
  11648. uint32_t pixelY = {};
  11649. uint32_t sample = {};
  11650. };
  11651. struct CoarseSampleOrderCustomNV
  11652. {
  11653. using NativeType = VkCoarseSampleOrderCustomNV;
  11654. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11655. VULKAN_HPP_CONSTEXPR
  11656. CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations,
  11657. uint32_t sampleCount_ = {},
  11658. uint32_t sampleLocationCount_ = {},
  11659. const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT
  11660. : shadingRate( shadingRate_ )
  11661. , sampleCount( sampleCount_ )
  11662. , sampleLocationCount( sampleLocationCount_ )
  11663. , pSampleLocations( pSampleLocations_ )
  11664. {
  11665. }
  11666. VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11667. CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
  11668. : CoarseSampleOrderCustomNV( *reinterpret_cast<CoarseSampleOrderCustomNV const *>( &rhs ) )
  11669. {
  11670. }
  11671. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  11672. CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_,
  11673. uint32_t sampleCount_,
  11674. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ )
  11675. : shadingRate( shadingRate_ )
  11676. , sampleCount( sampleCount_ )
  11677. , sampleLocationCount( static_cast<uint32_t>( sampleLocations_.size() ) )
  11678. , pSampleLocations( sampleLocations_.data() )
  11679. {
  11680. }
  11681. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11682. CoarseSampleOrderCustomNV & operator=( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11683. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11684. CoarseSampleOrderCustomNV & operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT
  11685. {
  11686. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV const *>( &rhs );
  11687. return *this;
  11688. }
  11689. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11690. VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
  11691. {
  11692. shadingRate = shadingRate_;
  11693. return *this;
  11694. }
  11695. VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT
  11696. {
  11697. sampleCount = sampleCount_;
  11698. return *this;
  11699. }
  11700. VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT
  11701. {
  11702. sampleLocationCount = sampleLocationCount_;
  11703. return *this;
  11704. }
  11705. VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV &
  11706. setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT
  11707. {
  11708. pSampleLocations = pSampleLocations_;
  11709. return *this;
  11710. }
  11711. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  11712. CoarseSampleOrderCustomNV & setSampleLocations(
  11713. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV> const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT
  11714. {
  11715. sampleLocationCount = static_cast<uint32_t>( sampleLocations_.size() );
  11716. pSampleLocations = sampleLocations_.data();
  11717. return *this;
  11718. }
  11719. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11720. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11721. operator VkCoarseSampleOrderCustomNV const &() const VULKAN_HPP_NOEXCEPT
  11722. {
  11723. return *reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( this );
  11724. }
  11725. operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT
  11726. {
  11727. return *reinterpret_cast<VkCoarseSampleOrderCustomNV *>( this );
  11728. }
  11729. #if defined( VULKAN_HPP_USE_REFLECT )
  11730. # if 14 <= VULKAN_HPP_CPP_VERSION
  11731. auto
  11732. # else
  11733. std::tuple<VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV const &,
  11734. uint32_t const &,
  11735. uint32_t const &,
  11736. const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * const &>
  11737. # endif
  11738. reflect() const VULKAN_HPP_NOEXCEPT
  11739. {
  11740. return std::tie( shadingRate, sampleCount, sampleLocationCount, pSampleLocations );
  11741. }
  11742. #endif
  11743. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11744. auto operator<=>( CoarseSampleOrderCustomNV const & ) const = default;
  11745. #else
  11746. bool operator==( CoarseSampleOrderCustomNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  11747. {
  11748. # if defined( VULKAN_HPP_USE_REFLECT )
  11749. return this->reflect() == rhs.reflect();
  11750. # else
  11751. return ( shadingRate == rhs.shadingRate ) && ( sampleCount == rhs.sampleCount ) && ( sampleLocationCount == rhs.sampleLocationCount ) &&
  11752. ( pSampleLocations == rhs.pSampleLocations );
  11753. # endif
  11754. }
  11755. bool operator!=( CoarseSampleOrderCustomNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  11756. {
  11757. return !operator==( rhs );
  11758. }
  11759. #endif
  11760. public:
  11761. VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations;
  11762. uint32_t sampleCount = {};
  11763. uint32_t sampleLocationCount = {};
  11764. const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations = {};
  11765. };
  11766. struct ColorBlendAdvancedEXT
  11767. {
  11768. using NativeType = VkColorBlendAdvancedEXT;
  11769. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11770. VULKAN_HPP_CONSTEXPR ColorBlendAdvancedEXT( VULKAN_HPP_NAMESPACE::BlendOp advancedBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd,
  11771. VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ = {},
  11772. VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {},
  11773. VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated,
  11774. VULKAN_HPP_NAMESPACE::Bool32 clampResults_ = {} ) VULKAN_HPP_NOEXCEPT
  11775. : advancedBlendOp( advancedBlendOp_ )
  11776. , srcPremultiplied( srcPremultiplied_ )
  11777. , dstPremultiplied( dstPremultiplied_ )
  11778. , blendOverlap( blendOverlap_ )
  11779. , clampResults( clampResults_ )
  11780. {
  11781. }
  11782. VULKAN_HPP_CONSTEXPR ColorBlendAdvancedEXT( ColorBlendAdvancedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11783. ColorBlendAdvancedEXT( VkColorBlendAdvancedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  11784. : ColorBlendAdvancedEXT( *reinterpret_cast<ColorBlendAdvancedEXT const *>( &rhs ) )
  11785. {
  11786. }
  11787. ColorBlendAdvancedEXT & operator=( ColorBlendAdvancedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11788. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11789. ColorBlendAdvancedEXT & operator=( VkColorBlendAdvancedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  11790. {
  11791. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT const *>( &rhs );
  11792. return *this;
  11793. }
  11794. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11795. VULKAN_HPP_CONSTEXPR_14 ColorBlendAdvancedEXT & setAdvancedBlendOp( VULKAN_HPP_NAMESPACE::BlendOp advancedBlendOp_ ) VULKAN_HPP_NOEXCEPT
  11796. {
  11797. advancedBlendOp = advancedBlendOp_;
  11798. return *this;
  11799. }
  11800. VULKAN_HPP_CONSTEXPR_14 ColorBlendAdvancedEXT & setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
  11801. {
  11802. srcPremultiplied = srcPremultiplied_;
  11803. return *this;
  11804. }
  11805. VULKAN_HPP_CONSTEXPR_14 ColorBlendAdvancedEXT & setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
  11806. {
  11807. dstPremultiplied = dstPremultiplied_;
  11808. return *this;
  11809. }
  11810. VULKAN_HPP_CONSTEXPR_14 ColorBlendAdvancedEXT & setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
  11811. {
  11812. blendOverlap = blendOverlap_;
  11813. return *this;
  11814. }
  11815. VULKAN_HPP_CONSTEXPR_14 ColorBlendAdvancedEXT & setClampResults( VULKAN_HPP_NAMESPACE::Bool32 clampResults_ ) VULKAN_HPP_NOEXCEPT
  11816. {
  11817. clampResults = clampResults_;
  11818. return *this;
  11819. }
  11820. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11821. operator VkColorBlendAdvancedEXT const &() const VULKAN_HPP_NOEXCEPT
  11822. {
  11823. return *reinterpret_cast<const VkColorBlendAdvancedEXT *>( this );
  11824. }
  11825. operator VkColorBlendAdvancedEXT &() VULKAN_HPP_NOEXCEPT
  11826. {
  11827. return *reinterpret_cast<VkColorBlendAdvancedEXT *>( this );
  11828. }
  11829. #if defined( VULKAN_HPP_USE_REFLECT )
  11830. # if 14 <= VULKAN_HPP_CPP_VERSION
  11831. auto
  11832. # else
  11833. std::tuple<VULKAN_HPP_NAMESPACE::BlendOp const &,
  11834. VULKAN_HPP_NAMESPACE::Bool32 const &,
  11835. VULKAN_HPP_NAMESPACE::Bool32 const &,
  11836. VULKAN_HPP_NAMESPACE::BlendOverlapEXT const &,
  11837. VULKAN_HPP_NAMESPACE::Bool32 const &>
  11838. # endif
  11839. reflect() const VULKAN_HPP_NOEXCEPT
  11840. {
  11841. return std::tie( advancedBlendOp, srcPremultiplied, dstPremultiplied, blendOverlap, clampResults );
  11842. }
  11843. #endif
  11844. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11845. auto operator<=>( ColorBlendAdvancedEXT const & ) const = default;
  11846. #else
  11847. bool operator==( ColorBlendAdvancedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  11848. {
  11849. # if defined( VULKAN_HPP_USE_REFLECT )
  11850. return this->reflect() == rhs.reflect();
  11851. # else
  11852. return ( advancedBlendOp == rhs.advancedBlendOp ) && ( srcPremultiplied == rhs.srcPremultiplied ) && ( dstPremultiplied == rhs.dstPremultiplied ) &&
  11853. ( blendOverlap == rhs.blendOverlap ) && ( clampResults == rhs.clampResults );
  11854. # endif
  11855. }
  11856. bool operator!=( ColorBlendAdvancedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  11857. {
  11858. return !operator==( rhs );
  11859. }
  11860. #endif
  11861. public:
  11862. VULKAN_HPP_NAMESPACE::BlendOp advancedBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
  11863. VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {};
  11864. VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {};
  11865. VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated;
  11866. VULKAN_HPP_NAMESPACE::Bool32 clampResults = {};
  11867. };
  11868. struct ColorBlendEquationEXT
  11869. {
  11870. using NativeType = VkColorBlendEquationEXT;
  11871. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11872. VULKAN_HPP_CONSTEXPR ColorBlendEquationEXT( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  11873. VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  11874. VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd,
  11875. VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  11876. VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  11877. VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd ) VULKAN_HPP_NOEXCEPT
  11878. : srcColorBlendFactor( srcColorBlendFactor_ )
  11879. , dstColorBlendFactor( dstColorBlendFactor_ )
  11880. , colorBlendOp( colorBlendOp_ )
  11881. , srcAlphaBlendFactor( srcAlphaBlendFactor_ )
  11882. , dstAlphaBlendFactor( dstAlphaBlendFactor_ )
  11883. , alphaBlendOp( alphaBlendOp_ )
  11884. {
  11885. }
  11886. VULKAN_HPP_CONSTEXPR ColorBlendEquationEXT( ColorBlendEquationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11887. ColorBlendEquationEXT( VkColorBlendEquationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  11888. : ColorBlendEquationEXT( *reinterpret_cast<ColorBlendEquationEXT const *>( &rhs ) )
  11889. {
  11890. }
  11891. ColorBlendEquationEXT & operator=( ColorBlendEquationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11892. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  11893. ColorBlendEquationEXT & operator=( VkColorBlendEquationEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  11894. {
  11895. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT const *>( &rhs );
  11896. return *this;
  11897. }
  11898. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  11899. VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  11900. {
  11901. srcColorBlendFactor = srcColorBlendFactor_;
  11902. return *this;
  11903. }
  11904. VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  11905. {
  11906. dstColorBlendFactor = dstColorBlendFactor_;
  11907. return *this;
  11908. }
  11909. VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT
  11910. {
  11911. colorBlendOp = colorBlendOp_;
  11912. return *this;
  11913. }
  11914. VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  11915. {
  11916. srcAlphaBlendFactor = srcAlphaBlendFactor_;
  11917. return *this;
  11918. }
  11919. VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  11920. {
  11921. dstAlphaBlendFactor = dstAlphaBlendFactor_;
  11922. return *this;
  11923. }
  11924. VULKAN_HPP_CONSTEXPR_14 ColorBlendEquationEXT & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT
  11925. {
  11926. alphaBlendOp = alphaBlendOp_;
  11927. return *this;
  11928. }
  11929. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  11930. operator VkColorBlendEquationEXT const &() const VULKAN_HPP_NOEXCEPT
  11931. {
  11932. return *reinterpret_cast<const VkColorBlendEquationEXT *>( this );
  11933. }
  11934. operator VkColorBlendEquationEXT &() VULKAN_HPP_NOEXCEPT
  11935. {
  11936. return *reinterpret_cast<VkColorBlendEquationEXT *>( this );
  11937. }
  11938. #if defined( VULKAN_HPP_USE_REFLECT )
  11939. # if 14 <= VULKAN_HPP_CPP_VERSION
  11940. auto
  11941. # else
  11942. std::tuple<VULKAN_HPP_NAMESPACE::BlendFactor const &,
  11943. VULKAN_HPP_NAMESPACE::BlendFactor const &,
  11944. VULKAN_HPP_NAMESPACE::BlendOp const &,
  11945. VULKAN_HPP_NAMESPACE::BlendFactor const &,
  11946. VULKAN_HPP_NAMESPACE::BlendFactor const &,
  11947. VULKAN_HPP_NAMESPACE::BlendOp const &>
  11948. # endif
  11949. reflect() const VULKAN_HPP_NOEXCEPT
  11950. {
  11951. return std::tie( srcColorBlendFactor, dstColorBlendFactor, colorBlendOp, srcAlphaBlendFactor, dstAlphaBlendFactor, alphaBlendOp );
  11952. }
  11953. #endif
  11954. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  11955. auto operator<=>( ColorBlendEquationEXT const & ) const = default;
  11956. #else
  11957. bool operator==( ColorBlendEquationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  11958. {
  11959. # if defined( VULKAN_HPP_USE_REFLECT )
  11960. return this->reflect() == rhs.reflect();
  11961. # else
  11962. return ( srcColorBlendFactor == rhs.srcColorBlendFactor ) && ( dstColorBlendFactor == rhs.dstColorBlendFactor ) && ( colorBlendOp == rhs.colorBlendOp ) &&
  11963. ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor ) && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor ) && ( alphaBlendOp == rhs.alphaBlendOp );
  11964. # endif
  11965. }
  11966. bool operator!=( ColorBlendEquationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  11967. {
  11968. return !operator==( rhs );
  11969. }
  11970. #endif
  11971. public:
  11972. VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  11973. VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  11974. VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
  11975. VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  11976. VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  11977. VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
  11978. };
  11979. struct CommandBufferAllocateInfo
  11980. {
  11981. using NativeType = VkCommandBufferAllocateInfo;
  11982. static const bool allowDuplicate = false;
  11983. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferAllocateInfo;
  11984. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  11985. VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ = {},
  11986. VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary,
  11987. uint32_t commandBufferCount_ = {},
  11988. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  11989. : pNext( pNext_ )
  11990. , commandPool( commandPool_ )
  11991. , level( level_ )
  11992. , commandBufferCount( commandBufferCount_ )
  11993. {
  11994. }
  11995. VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11996. CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  11997. : CommandBufferAllocateInfo( *reinterpret_cast<CommandBufferAllocateInfo const *>( &rhs ) )
  11998. {
  11999. }
  12000. CommandBufferAllocateInfo & operator=( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12001. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12002. CommandBufferAllocateInfo & operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12003. {
  12004. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const *>( &rhs );
  12005. return *this;
  12006. }
  12007. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12008. VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12009. {
  12010. pNext = pNext_;
  12011. return *this;
  12012. }
  12013. VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT
  12014. {
  12015. commandPool = commandPool_;
  12016. return *this;
  12017. }
  12018. VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT
  12019. {
  12020. level = level_;
  12021. return *this;
  12022. }
  12023. VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
  12024. {
  12025. commandBufferCount = commandBufferCount_;
  12026. return *this;
  12027. }
  12028. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12029. operator VkCommandBufferAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  12030. {
  12031. return *reinterpret_cast<const VkCommandBufferAllocateInfo *>( this );
  12032. }
  12033. operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT
  12034. {
  12035. return *reinterpret_cast<VkCommandBufferAllocateInfo *>( this );
  12036. }
  12037. #if defined( VULKAN_HPP_USE_REFLECT )
  12038. # if 14 <= VULKAN_HPP_CPP_VERSION
  12039. auto
  12040. # else
  12041. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12042. const void * const &,
  12043. VULKAN_HPP_NAMESPACE::CommandPool const &,
  12044. VULKAN_HPP_NAMESPACE::CommandBufferLevel const &,
  12045. uint32_t const &>
  12046. # endif
  12047. reflect() const VULKAN_HPP_NOEXCEPT
  12048. {
  12049. return std::tie( sType, pNext, commandPool, level, commandBufferCount );
  12050. }
  12051. #endif
  12052. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12053. auto operator<=>( CommandBufferAllocateInfo const & ) const = default;
  12054. #else
  12055. bool operator==( CommandBufferAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12056. {
  12057. # if defined( VULKAN_HPP_USE_REFLECT )
  12058. return this->reflect() == rhs.reflect();
  12059. # else
  12060. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( commandPool == rhs.commandPool ) && ( level == rhs.level ) &&
  12061. ( commandBufferCount == rhs.commandBufferCount );
  12062. # endif
  12063. }
  12064. bool operator!=( CommandBufferAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12065. {
  12066. return !operator==( rhs );
  12067. }
  12068. #endif
  12069. public:
  12070. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo;
  12071. const void * pNext = {};
  12072. VULKAN_HPP_NAMESPACE::CommandPool commandPool = {};
  12073. VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary;
  12074. uint32_t commandBufferCount = {};
  12075. };
  12076. template <>
  12077. struct CppType<StructureType, StructureType::eCommandBufferAllocateInfo>
  12078. {
  12079. using Type = CommandBufferAllocateInfo;
  12080. };
  12081. struct CommandBufferInheritanceInfo
  12082. {
  12083. using NativeType = VkCommandBufferInheritanceInfo;
  12084. static const bool allowDuplicate = false;
  12085. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceInfo;
  12086. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12087. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  12088. uint32_t subpass_ = {},
  12089. VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {},
  12090. VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ = {},
  12091. VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ = {},
  12092. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {},
  12093. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12094. : pNext( pNext_ )
  12095. , renderPass( renderPass_ )
  12096. , subpass( subpass_ )
  12097. , framebuffer( framebuffer_ )
  12098. , occlusionQueryEnable( occlusionQueryEnable_ )
  12099. , queryFlags( queryFlags_ )
  12100. , pipelineStatistics( pipelineStatistics_ )
  12101. {
  12102. }
  12103. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12104. CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12105. : CommandBufferInheritanceInfo( *reinterpret_cast<CommandBufferInheritanceInfo const *>( &rhs ) )
  12106. {
  12107. }
  12108. CommandBufferInheritanceInfo & operator=( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12109. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12110. CommandBufferInheritanceInfo & operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12111. {
  12112. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo const *>( &rhs );
  12113. return *this;
  12114. }
  12115. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12116. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12117. {
  12118. pNext = pNext_;
  12119. return *this;
  12120. }
  12121. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
  12122. {
  12123. renderPass = renderPass_;
  12124. return *this;
  12125. }
  12126. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
  12127. {
  12128. subpass = subpass_;
  12129. return *this;
  12130. }
  12131. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
  12132. {
  12133. framebuffer = framebuffer_;
  12134. return *this;
  12135. }
  12136. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT
  12137. {
  12138. occlusionQueryEnable = occlusionQueryEnable_;
  12139. return *this;
  12140. }
  12141. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT
  12142. {
  12143. queryFlags = queryFlags_;
  12144. return *this;
  12145. }
  12146. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo &
  12147. setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
  12148. {
  12149. pipelineStatistics = pipelineStatistics_;
  12150. return *this;
  12151. }
  12152. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12153. operator VkCommandBufferInheritanceInfo const &() const VULKAN_HPP_NOEXCEPT
  12154. {
  12155. return *reinterpret_cast<const VkCommandBufferInheritanceInfo *>( this );
  12156. }
  12157. operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT
  12158. {
  12159. return *reinterpret_cast<VkCommandBufferInheritanceInfo *>( this );
  12160. }
  12161. #if defined( VULKAN_HPP_USE_REFLECT )
  12162. # if 14 <= VULKAN_HPP_CPP_VERSION
  12163. auto
  12164. # else
  12165. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12166. const void * const &,
  12167. VULKAN_HPP_NAMESPACE::RenderPass const &,
  12168. uint32_t const &,
  12169. VULKAN_HPP_NAMESPACE::Framebuffer const &,
  12170. VULKAN_HPP_NAMESPACE::Bool32 const &,
  12171. VULKAN_HPP_NAMESPACE::QueryControlFlags const &,
  12172. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags const &>
  12173. # endif
  12174. reflect() const VULKAN_HPP_NOEXCEPT
  12175. {
  12176. return std::tie( sType, pNext, renderPass, subpass, framebuffer, occlusionQueryEnable, queryFlags, pipelineStatistics );
  12177. }
  12178. #endif
  12179. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12180. auto operator<=>( CommandBufferInheritanceInfo const & ) const = default;
  12181. #else
  12182. bool operator==( CommandBufferInheritanceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12183. {
  12184. # if defined( VULKAN_HPP_USE_REFLECT )
  12185. return this->reflect() == rhs.reflect();
  12186. # else
  12187. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( renderPass == rhs.renderPass ) && ( subpass == rhs.subpass ) &&
  12188. ( framebuffer == rhs.framebuffer ) && ( occlusionQueryEnable == rhs.occlusionQueryEnable ) && ( queryFlags == rhs.queryFlags ) &&
  12189. ( pipelineStatistics == rhs.pipelineStatistics );
  12190. # endif
  12191. }
  12192. bool operator!=( CommandBufferInheritanceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12193. {
  12194. return !operator==( rhs );
  12195. }
  12196. #endif
  12197. public:
  12198. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo;
  12199. const void * pNext = {};
  12200. VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
  12201. uint32_t subpass = {};
  12202. VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
  12203. VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {};
  12204. VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {};
  12205. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
  12206. };
  12207. template <>
  12208. struct CppType<StructureType, StructureType::eCommandBufferInheritanceInfo>
  12209. {
  12210. using Type = CommandBufferInheritanceInfo;
  12211. };
  12212. struct CommandBufferBeginInfo
  12213. {
  12214. using NativeType = VkCommandBufferBeginInfo;
  12215. static const bool allowDuplicate = false;
  12216. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferBeginInfo;
  12217. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12218. VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {},
  12219. const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo_ = {},
  12220. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12221. : pNext( pNext_ )
  12222. , flags( flags_ )
  12223. , pInheritanceInfo( pInheritanceInfo_ )
  12224. {
  12225. }
  12226. VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12227. CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12228. : CommandBufferBeginInfo( *reinterpret_cast<CommandBufferBeginInfo const *>( &rhs ) )
  12229. {
  12230. }
  12231. CommandBufferBeginInfo & operator=( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12232. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12233. CommandBufferBeginInfo & operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12234. {
  12235. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo const *>( &rhs );
  12236. return *this;
  12237. }
  12238. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12239. VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12240. {
  12241. pNext = pNext_;
  12242. return *this;
  12243. }
  12244. VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT
  12245. {
  12246. flags = flags_;
  12247. return *this;
  12248. }
  12249. VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo &
  12250. setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT
  12251. {
  12252. pInheritanceInfo = pInheritanceInfo_;
  12253. return *this;
  12254. }
  12255. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12256. operator VkCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  12257. {
  12258. return *reinterpret_cast<const VkCommandBufferBeginInfo *>( this );
  12259. }
  12260. operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
  12261. {
  12262. return *reinterpret_cast<VkCommandBufferBeginInfo *>( this );
  12263. }
  12264. #if defined( VULKAN_HPP_USE_REFLECT )
  12265. # if 14 <= VULKAN_HPP_CPP_VERSION
  12266. auto
  12267. # else
  12268. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12269. const void * const &,
  12270. VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags const &,
  12271. const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * const &>
  12272. # endif
  12273. reflect() const VULKAN_HPP_NOEXCEPT
  12274. {
  12275. return std::tie( sType, pNext, flags, pInheritanceInfo );
  12276. }
  12277. #endif
  12278. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12279. auto operator<=>( CommandBufferBeginInfo const & ) const = default;
  12280. #else
  12281. bool operator==( CommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12282. {
  12283. # if defined( VULKAN_HPP_USE_REFLECT )
  12284. return this->reflect() == rhs.reflect();
  12285. # else
  12286. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pInheritanceInfo == rhs.pInheritanceInfo );
  12287. # endif
  12288. }
  12289. bool operator!=( CommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12290. {
  12291. return !operator==( rhs );
  12292. }
  12293. #endif
  12294. public:
  12295. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo;
  12296. const void * pNext = {};
  12297. VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {};
  12298. const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo = {};
  12299. };
  12300. template <>
  12301. struct CppType<StructureType, StructureType::eCommandBufferBeginInfo>
  12302. {
  12303. using Type = CommandBufferBeginInfo;
  12304. };
  12305. struct CommandBufferInheritanceConditionalRenderingInfoEXT
  12306. {
  12307. using NativeType = VkCommandBufferInheritanceConditionalRenderingInfoEXT;
  12308. static const bool allowDuplicate = false;
  12309. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
  12310. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12311. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {},
  12312. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12313. : pNext( pNext_ )
  12314. , conditionalRenderingEnable( conditionalRenderingEnable_ )
  12315. {
  12316. }
  12317. VULKAN_HPP_CONSTEXPR
  12318. CommandBufferInheritanceConditionalRenderingInfoEXT( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12319. CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  12320. : CommandBufferInheritanceConditionalRenderingInfoEXT( *reinterpret_cast<CommandBufferInheritanceConditionalRenderingInfoEXT const *>( &rhs ) )
  12321. {
  12322. }
  12323. CommandBufferInheritanceConditionalRenderingInfoEXT &
  12324. operator=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12325. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12326. CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  12327. {
  12328. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT const *>( &rhs );
  12329. return *this;
  12330. }
  12331. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12332. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12333. {
  12334. pNext = pNext_;
  12335. return *this;
  12336. }
  12337. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceConditionalRenderingInfoEXT &
  12338. setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT
  12339. {
  12340. conditionalRenderingEnable = conditionalRenderingEnable_;
  12341. return *this;
  12342. }
  12343. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12344. operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  12345. {
  12346. return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT *>( this );
  12347. }
  12348. operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT
  12349. {
  12350. return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT *>( this );
  12351. }
  12352. #if defined( VULKAN_HPP_USE_REFLECT )
  12353. # if 14 <= VULKAN_HPP_CPP_VERSION
  12354. auto
  12355. # else
  12356. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  12357. # endif
  12358. reflect() const VULKAN_HPP_NOEXCEPT
  12359. {
  12360. return std::tie( sType, pNext, conditionalRenderingEnable );
  12361. }
  12362. #endif
  12363. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12364. auto operator<=>( CommandBufferInheritanceConditionalRenderingInfoEXT const & ) const = default;
  12365. #else
  12366. bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  12367. {
  12368. # if defined( VULKAN_HPP_USE_REFLECT )
  12369. return this->reflect() == rhs.reflect();
  12370. # else
  12371. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable );
  12372. # endif
  12373. }
  12374. bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  12375. {
  12376. return !operator==( rhs );
  12377. }
  12378. #endif
  12379. public:
  12380. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
  12381. const void * pNext = {};
  12382. VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {};
  12383. };
  12384. template <>
  12385. struct CppType<StructureType, StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT>
  12386. {
  12387. using Type = CommandBufferInheritanceConditionalRenderingInfoEXT;
  12388. };
  12389. struct CommandBufferInheritanceRenderPassTransformInfoQCOM
  12390. {
  12391. using NativeType = VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
  12392. static const bool allowDuplicate = false;
  12393. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
  12394. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12395. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM(
  12396. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  12397. VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {},
  12398. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12399. : pNext( pNext_ )
  12400. , transform( transform_ )
  12401. , renderArea( renderArea_ )
  12402. {
  12403. }
  12404. VULKAN_HPP_CONSTEXPR
  12405. CommandBufferInheritanceRenderPassTransformInfoQCOM( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12406. CommandBufferInheritanceRenderPassTransformInfoQCOM( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  12407. : CommandBufferInheritanceRenderPassTransformInfoQCOM( *reinterpret_cast<CommandBufferInheritanceRenderPassTransformInfoQCOM const *>( &rhs ) )
  12408. {
  12409. }
  12410. CommandBufferInheritanceRenderPassTransformInfoQCOM &
  12411. operator=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12412. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12413. CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  12414. {
  12415. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM const *>( &rhs );
  12416. return *this;
  12417. }
  12418. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12419. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12420. {
  12421. pNext = pNext_;
  12422. return *this;
  12423. }
  12424. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM &
  12425. setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
  12426. {
  12427. transform = transform_;
  12428. return *this;
  12429. }
  12430. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM &
  12431. setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
  12432. {
  12433. renderArea = renderArea_;
  12434. return *this;
  12435. }
  12436. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12437. operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  12438. {
  12439. return *reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM *>( this );
  12440. }
  12441. operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
  12442. {
  12443. return *reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM *>( this );
  12444. }
  12445. #if defined( VULKAN_HPP_USE_REFLECT )
  12446. # if 14 <= VULKAN_HPP_CPP_VERSION
  12447. auto
  12448. # else
  12449. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12450. void * const &,
  12451. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &,
  12452. VULKAN_HPP_NAMESPACE::Rect2D const &>
  12453. # endif
  12454. reflect() const VULKAN_HPP_NOEXCEPT
  12455. {
  12456. return std::tie( sType, pNext, transform, renderArea );
  12457. }
  12458. #endif
  12459. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12460. auto operator<=>( CommandBufferInheritanceRenderPassTransformInfoQCOM const & ) const = default;
  12461. #else
  12462. bool operator==( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  12463. {
  12464. # if defined( VULKAN_HPP_USE_REFLECT )
  12465. return this->reflect() == rhs.reflect();
  12466. # else
  12467. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transform == rhs.transform ) && ( renderArea == rhs.renderArea );
  12468. # endif
  12469. }
  12470. bool operator!=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  12471. {
  12472. return !operator==( rhs );
  12473. }
  12474. #endif
  12475. public:
  12476. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM;
  12477. void * pNext = {};
  12478. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  12479. VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
  12480. };
  12481. template <>
  12482. struct CppType<StructureType, StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM>
  12483. {
  12484. using Type = CommandBufferInheritanceRenderPassTransformInfoQCOM;
  12485. };
  12486. struct CommandBufferInheritanceRenderingInfo
  12487. {
  12488. using NativeType = VkCommandBufferInheritanceRenderingInfo;
  12489. static const bool allowDuplicate = false;
  12490. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderingInfo;
  12491. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12492. VULKAN_HPP_CONSTEXPR
  12493. CommandBufferInheritanceRenderingInfo( VULKAN_HPP_NAMESPACE::RenderingFlags flags_ = {},
  12494. uint32_t viewMask_ = {},
  12495. uint32_t colorAttachmentCount_ = {},
  12496. const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ = {},
  12497. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  12498. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  12499. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  12500. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12501. : pNext( pNext_ )
  12502. , flags( flags_ )
  12503. , viewMask( viewMask_ )
  12504. , colorAttachmentCount( colorAttachmentCount_ )
  12505. , pColorAttachmentFormats( pColorAttachmentFormats_ )
  12506. , depthAttachmentFormat( depthAttachmentFormat_ )
  12507. , stencilAttachmentFormat( stencilAttachmentFormat_ )
  12508. , rasterizationSamples( rasterizationSamples_ )
  12509. {
  12510. }
  12511. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderingInfo( CommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12512. CommandBufferInheritanceRenderingInfo( VkCommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12513. : CommandBufferInheritanceRenderingInfo( *reinterpret_cast<CommandBufferInheritanceRenderingInfo const *>( &rhs ) )
  12514. {
  12515. }
  12516. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  12517. CommandBufferInheritanceRenderingInfo( VULKAN_HPP_NAMESPACE::RenderingFlags flags_,
  12518. uint32_t viewMask_,
  12519. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_,
  12520. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  12521. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  12522. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  12523. const void * pNext_ = nullptr )
  12524. : pNext( pNext_ )
  12525. , flags( flags_ )
  12526. , viewMask( viewMask_ )
  12527. , colorAttachmentCount( static_cast<uint32_t>( colorAttachmentFormats_.size() ) )
  12528. , pColorAttachmentFormats( colorAttachmentFormats_.data() )
  12529. , depthAttachmentFormat( depthAttachmentFormat_ )
  12530. , stencilAttachmentFormat( stencilAttachmentFormat_ )
  12531. , rasterizationSamples( rasterizationSamples_ )
  12532. {
  12533. }
  12534. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12535. CommandBufferInheritanceRenderingInfo & operator=( CommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12536. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12537. CommandBufferInheritanceRenderingInfo & operator=( VkCommandBufferInheritanceRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12538. {
  12539. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo const *>( &rhs );
  12540. return *this;
  12541. }
  12542. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12543. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12544. {
  12545. pNext = pNext_;
  12546. return *this;
  12547. }
  12548. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderingFlags flags_ ) VULKAN_HPP_NOEXCEPT
  12549. {
  12550. flags = flags_;
  12551. return *this;
  12552. }
  12553. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
  12554. {
  12555. viewMask = viewMask_;
  12556. return *this;
  12557. }
  12558. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  12559. {
  12560. colorAttachmentCount = colorAttachmentCount_;
  12561. return *this;
  12562. }
  12563. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
  12564. setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
  12565. {
  12566. pColorAttachmentFormats = pColorAttachmentFormats_;
  12567. return *this;
  12568. }
  12569. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  12570. CommandBufferInheritanceRenderingInfo & setColorAttachmentFormats(
  12571. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
  12572. {
  12573. colorAttachmentCount = static_cast<uint32_t>( colorAttachmentFormats_.size() );
  12574. pColorAttachmentFormats = colorAttachmentFormats_.data();
  12575. return *this;
  12576. }
  12577. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12578. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
  12579. setDepthAttachmentFormat( VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
  12580. {
  12581. depthAttachmentFormat = depthAttachmentFormat_;
  12582. return *this;
  12583. }
  12584. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
  12585. setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
  12586. {
  12587. stencilAttachmentFormat = stencilAttachmentFormat_;
  12588. return *this;
  12589. }
  12590. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderingInfo &
  12591. setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
  12592. {
  12593. rasterizationSamples = rasterizationSamples_;
  12594. return *this;
  12595. }
  12596. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12597. operator VkCommandBufferInheritanceRenderingInfo const &() const VULKAN_HPP_NOEXCEPT
  12598. {
  12599. return *reinterpret_cast<const VkCommandBufferInheritanceRenderingInfo *>( this );
  12600. }
  12601. operator VkCommandBufferInheritanceRenderingInfo &() VULKAN_HPP_NOEXCEPT
  12602. {
  12603. return *reinterpret_cast<VkCommandBufferInheritanceRenderingInfo *>( this );
  12604. }
  12605. #if defined( VULKAN_HPP_USE_REFLECT )
  12606. # if 14 <= VULKAN_HPP_CPP_VERSION
  12607. auto
  12608. # else
  12609. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12610. const void * const &,
  12611. VULKAN_HPP_NAMESPACE::RenderingFlags const &,
  12612. uint32_t const &,
  12613. uint32_t const &,
  12614. const VULKAN_HPP_NAMESPACE::Format * const &,
  12615. VULKAN_HPP_NAMESPACE::Format const &,
  12616. VULKAN_HPP_NAMESPACE::Format const &,
  12617. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
  12618. # endif
  12619. reflect() const VULKAN_HPP_NOEXCEPT
  12620. {
  12621. return std::tie(
  12622. sType, pNext, flags, viewMask, colorAttachmentCount, pColorAttachmentFormats, depthAttachmentFormat, stencilAttachmentFormat, rasterizationSamples );
  12623. }
  12624. #endif
  12625. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12626. auto operator<=>( CommandBufferInheritanceRenderingInfo const & ) const = default;
  12627. #else
  12628. bool operator==( CommandBufferInheritanceRenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12629. {
  12630. # if defined( VULKAN_HPP_USE_REFLECT )
  12631. return this->reflect() == rhs.reflect();
  12632. # else
  12633. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( viewMask == rhs.viewMask ) &&
  12634. ( colorAttachmentCount == rhs.colorAttachmentCount ) && ( pColorAttachmentFormats == rhs.pColorAttachmentFormats ) &&
  12635. ( depthAttachmentFormat == rhs.depthAttachmentFormat ) && ( stencilAttachmentFormat == rhs.stencilAttachmentFormat ) &&
  12636. ( rasterizationSamples == rhs.rasterizationSamples );
  12637. # endif
  12638. }
  12639. bool operator!=( CommandBufferInheritanceRenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12640. {
  12641. return !operator==( rhs );
  12642. }
  12643. #endif
  12644. public:
  12645. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderingInfo;
  12646. const void * pNext = {};
  12647. VULKAN_HPP_NAMESPACE::RenderingFlags flags = {};
  12648. uint32_t viewMask = {};
  12649. uint32_t colorAttachmentCount = {};
  12650. const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats = {};
  12651. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  12652. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  12653. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  12654. };
  12655. template <>
  12656. struct CppType<StructureType, StructureType::eCommandBufferInheritanceRenderingInfo>
  12657. {
  12658. using Type = CommandBufferInheritanceRenderingInfo;
  12659. };
  12660. using CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo;
  12661. struct Viewport
  12662. {
  12663. using NativeType = VkViewport;
  12664. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12665. VULKAN_HPP_CONSTEXPR
  12666. Viewport( float x_ = {}, float y_ = {}, float width_ = {}, float height_ = {}, float minDepth_ = {}, float maxDepth_ = {} ) VULKAN_HPP_NOEXCEPT
  12667. : x( x_ )
  12668. , y( y_ )
  12669. , width( width_ )
  12670. , height( height_ )
  12671. , minDepth( minDepth_ )
  12672. , maxDepth( maxDepth_ )
  12673. {
  12674. }
  12675. VULKAN_HPP_CONSTEXPR Viewport( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12676. Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT : Viewport( *reinterpret_cast<Viewport const *>( &rhs ) ) {}
  12677. Viewport & operator=( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12678. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12679. Viewport & operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT
  12680. {
  12681. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Viewport const *>( &rhs );
  12682. return *this;
  12683. }
  12684. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12685. VULKAN_HPP_CONSTEXPR_14 Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT
  12686. {
  12687. x = x_;
  12688. return *this;
  12689. }
  12690. VULKAN_HPP_CONSTEXPR_14 Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT
  12691. {
  12692. y = y_;
  12693. return *this;
  12694. }
  12695. VULKAN_HPP_CONSTEXPR_14 Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT
  12696. {
  12697. width = width_;
  12698. return *this;
  12699. }
  12700. VULKAN_HPP_CONSTEXPR_14 Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT
  12701. {
  12702. height = height_;
  12703. return *this;
  12704. }
  12705. VULKAN_HPP_CONSTEXPR_14 Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT
  12706. {
  12707. minDepth = minDepth_;
  12708. return *this;
  12709. }
  12710. VULKAN_HPP_CONSTEXPR_14 Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT
  12711. {
  12712. maxDepth = maxDepth_;
  12713. return *this;
  12714. }
  12715. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12716. operator VkViewport const &() const VULKAN_HPP_NOEXCEPT
  12717. {
  12718. return *reinterpret_cast<const VkViewport *>( this );
  12719. }
  12720. operator VkViewport &() VULKAN_HPP_NOEXCEPT
  12721. {
  12722. return *reinterpret_cast<VkViewport *>( this );
  12723. }
  12724. #if defined( VULKAN_HPP_USE_REFLECT )
  12725. # if 14 <= VULKAN_HPP_CPP_VERSION
  12726. auto
  12727. # else
  12728. std::tuple<float const &, float const &, float const &, float const &, float const &, float const &>
  12729. # endif
  12730. reflect() const VULKAN_HPP_NOEXCEPT
  12731. {
  12732. return std::tie( x, y, width, height, minDepth, maxDepth );
  12733. }
  12734. #endif
  12735. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12736. auto operator<=>( Viewport const & ) const = default;
  12737. #else
  12738. bool operator==( Viewport const & rhs ) const VULKAN_HPP_NOEXCEPT
  12739. {
  12740. # if defined( VULKAN_HPP_USE_REFLECT )
  12741. return this->reflect() == rhs.reflect();
  12742. # else
  12743. return ( x == rhs.x ) && ( y == rhs.y ) && ( width == rhs.width ) && ( height == rhs.height ) && ( minDepth == rhs.minDepth ) &&
  12744. ( maxDepth == rhs.maxDepth );
  12745. # endif
  12746. }
  12747. bool operator!=( Viewport const & rhs ) const VULKAN_HPP_NOEXCEPT
  12748. {
  12749. return !operator==( rhs );
  12750. }
  12751. #endif
  12752. public:
  12753. float x = {};
  12754. float y = {};
  12755. float width = {};
  12756. float height = {};
  12757. float minDepth = {};
  12758. float maxDepth = {};
  12759. };
  12760. struct CommandBufferInheritanceViewportScissorInfoNV
  12761. {
  12762. using NativeType = VkCommandBufferInheritanceViewportScissorInfoNV;
  12763. static const bool allowDuplicate = false;
  12764. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceViewportScissorInfoNV;
  12765. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12766. VULKAN_HPP_CONSTEXPR CommandBufferInheritanceViewportScissorInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D_ = {},
  12767. uint32_t viewportDepthCount_ = {},
  12768. const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths_ = {},
  12769. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12770. : pNext( pNext_ )
  12771. , viewportScissor2D( viewportScissor2D_ )
  12772. , viewportDepthCount( viewportDepthCount_ )
  12773. , pViewportDepths( pViewportDepths_ )
  12774. {
  12775. }
  12776. VULKAN_HPP_CONSTEXPR
  12777. CommandBufferInheritanceViewportScissorInfoNV( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12778. CommandBufferInheritanceViewportScissorInfoNV( VkCommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  12779. : CommandBufferInheritanceViewportScissorInfoNV( *reinterpret_cast<CommandBufferInheritanceViewportScissorInfoNV const *>( &rhs ) )
  12780. {
  12781. }
  12782. CommandBufferInheritanceViewportScissorInfoNV & operator=( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12783. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12784. CommandBufferInheritanceViewportScissorInfoNV & operator=( VkCommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  12785. {
  12786. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV const *>( &rhs );
  12787. return *this;
  12788. }
  12789. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12790. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12791. {
  12792. pNext = pNext_;
  12793. return *this;
  12794. }
  12795. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV &
  12796. setViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D_ ) VULKAN_HPP_NOEXCEPT
  12797. {
  12798. viewportScissor2D = viewportScissor2D_;
  12799. return *this;
  12800. }
  12801. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV & setViewportDepthCount( uint32_t viewportDepthCount_ ) VULKAN_HPP_NOEXCEPT
  12802. {
  12803. viewportDepthCount = viewportDepthCount_;
  12804. return *this;
  12805. }
  12806. VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV &
  12807. setPViewportDepths( const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths_ ) VULKAN_HPP_NOEXCEPT
  12808. {
  12809. pViewportDepths = pViewportDepths_;
  12810. return *this;
  12811. }
  12812. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12813. operator VkCommandBufferInheritanceViewportScissorInfoNV const &() const VULKAN_HPP_NOEXCEPT
  12814. {
  12815. return *reinterpret_cast<const VkCommandBufferInheritanceViewportScissorInfoNV *>( this );
  12816. }
  12817. operator VkCommandBufferInheritanceViewportScissorInfoNV &() VULKAN_HPP_NOEXCEPT
  12818. {
  12819. return *reinterpret_cast<VkCommandBufferInheritanceViewportScissorInfoNV *>( this );
  12820. }
  12821. #if defined( VULKAN_HPP_USE_REFLECT )
  12822. # if 14 <= VULKAN_HPP_CPP_VERSION
  12823. auto
  12824. # else
  12825. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  12826. const void * const &,
  12827. VULKAN_HPP_NAMESPACE::Bool32 const &,
  12828. uint32_t const &,
  12829. const VULKAN_HPP_NAMESPACE::Viewport * const &>
  12830. # endif
  12831. reflect() const VULKAN_HPP_NOEXCEPT
  12832. {
  12833. return std::tie( sType, pNext, viewportScissor2D, viewportDepthCount, pViewportDepths );
  12834. }
  12835. #endif
  12836. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12837. auto operator<=>( CommandBufferInheritanceViewportScissorInfoNV const & ) const = default;
  12838. #else
  12839. bool operator==( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  12840. {
  12841. # if defined( VULKAN_HPP_USE_REFLECT )
  12842. return this->reflect() == rhs.reflect();
  12843. # else
  12844. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewportScissor2D == rhs.viewportScissor2D ) &&
  12845. ( viewportDepthCount == rhs.viewportDepthCount ) && ( pViewportDepths == rhs.pViewportDepths );
  12846. # endif
  12847. }
  12848. bool operator!=( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  12849. {
  12850. return !operator==( rhs );
  12851. }
  12852. #endif
  12853. public:
  12854. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceViewportScissorInfoNV;
  12855. const void * pNext = {};
  12856. VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D = {};
  12857. uint32_t viewportDepthCount = {};
  12858. const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths = {};
  12859. };
  12860. template <>
  12861. struct CppType<StructureType, StructureType::eCommandBufferInheritanceViewportScissorInfoNV>
  12862. {
  12863. using Type = CommandBufferInheritanceViewportScissorInfoNV;
  12864. };
  12865. struct CommandBufferSubmitInfo
  12866. {
  12867. using NativeType = VkCommandBufferSubmitInfo;
  12868. static const bool allowDuplicate = false;
  12869. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferSubmitInfo;
  12870. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12871. VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfo( VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ = {},
  12872. uint32_t deviceMask_ = {},
  12873. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12874. : pNext( pNext_ )
  12875. , commandBuffer( commandBuffer_ )
  12876. , deviceMask( deviceMask_ )
  12877. {
  12878. }
  12879. VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfo( CommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12880. CommandBufferSubmitInfo( VkCommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12881. : CommandBufferSubmitInfo( *reinterpret_cast<CommandBufferSubmitInfo const *>( &rhs ) )
  12882. {
  12883. }
  12884. CommandBufferSubmitInfo & operator=( CommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12885. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12886. CommandBufferSubmitInfo & operator=( VkCommandBufferSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12887. {
  12888. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo const *>( &rhs );
  12889. return *this;
  12890. }
  12891. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12892. VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12893. {
  12894. pNext = pNext_;
  12895. return *this;
  12896. }
  12897. VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfo & setCommandBuffer( VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ ) VULKAN_HPP_NOEXCEPT
  12898. {
  12899. commandBuffer = commandBuffer_;
  12900. return *this;
  12901. }
  12902. VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
  12903. {
  12904. deviceMask = deviceMask_;
  12905. return *this;
  12906. }
  12907. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12908. operator VkCommandBufferSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  12909. {
  12910. return *reinterpret_cast<const VkCommandBufferSubmitInfo *>( this );
  12911. }
  12912. operator VkCommandBufferSubmitInfo &() VULKAN_HPP_NOEXCEPT
  12913. {
  12914. return *reinterpret_cast<VkCommandBufferSubmitInfo *>( this );
  12915. }
  12916. #if defined( VULKAN_HPP_USE_REFLECT )
  12917. # if 14 <= VULKAN_HPP_CPP_VERSION
  12918. auto
  12919. # else
  12920. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CommandBuffer const &, uint32_t const &>
  12921. # endif
  12922. reflect() const VULKAN_HPP_NOEXCEPT
  12923. {
  12924. return std::tie( sType, pNext, commandBuffer, deviceMask );
  12925. }
  12926. #endif
  12927. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  12928. auto operator<=>( CommandBufferSubmitInfo const & ) const = default;
  12929. #else
  12930. bool operator==( CommandBufferSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12931. {
  12932. # if defined( VULKAN_HPP_USE_REFLECT )
  12933. return this->reflect() == rhs.reflect();
  12934. # else
  12935. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( commandBuffer == rhs.commandBuffer ) && ( deviceMask == rhs.deviceMask );
  12936. # endif
  12937. }
  12938. bool operator!=( CommandBufferSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  12939. {
  12940. return !operator==( rhs );
  12941. }
  12942. #endif
  12943. public:
  12944. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferSubmitInfo;
  12945. const void * pNext = {};
  12946. VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer = {};
  12947. uint32_t deviceMask = {};
  12948. };
  12949. template <>
  12950. struct CppType<StructureType, StructureType::eCommandBufferSubmitInfo>
  12951. {
  12952. using Type = CommandBufferSubmitInfo;
  12953. };
  12954. using CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo;
  12955. struct CommandPoolCreateInfo
  12956. {
  12957. using NativeType = VkCommandPoolCreateInfo;
  12958. static const bool allowDuplicate = false;
  12959. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandPoolCreateInfo;
  12960. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  12961. VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {},
  12962. uint32_t queueFamilyIndex_ = {},
  12963. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  12964. : pNext( pNext_ )
  12965. , flags( flags_ )
  12966. , queueFamilyIndex( queueFamilyIndex_ )
  12967. {
  12968. }
  12969. VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12970. CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12971. : CommandPoolCreateInfo( *reinterpret_cast<CommandPoolCreateInfo const *>( &rhs ) )
  12972. {
  12973. }
  12974. CommandPoolCreateInfo & operator=( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  12975. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  12976. CommandPoolCreateInfo & operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  12977. {
  12978. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const *>( &rhs );
  12979. return *this;
  12980. }
  12981. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  12982. VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  12983. {
  12984. pNext = pNext_;
  12985. return *this;
  12986. }
  12987. VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  12988. {
  12989. flags = flags_;
  12990. return *this;
  12991. }
  12992. VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  12993. {
  12994. queueFamilyIndex = queueFamilyIndex_;
  12995. return *this;
  12996. }
  12997. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  12998. operator VkCommandPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  12999. {
  13000. return *reinterpret_cast<const VkCommandPoolCreateInfo *>( this );
  13001. }
  13002. operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
  13003. {
  13004. return *reinterpret_cast<VkCommandPoolCreateInfo *>( this );
  13005. }
  13006. #if defined( VULKAN_HPP_USE_REFLECT )
  13007. # if 14 <= VULKAN_HPP_CPP_VERSION
  13008. auto
  13009. # else
  13010. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags const &, uint32_t const &>
  13011. # endif
  13012. reflect() const VULKAN_HPP_NOEXCEPT
  13013. {
  13014. return std::tie( sType, pNext, flags, queueFamilyIndex );
  13015. }
  13016. #endif
  13017. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13018. auto operator<=>( CommandPoolCreateInfo const & ) const = default;
  13019. #else
  13020. bool operator==( CommandPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  13021. {
  13022. # if defined( VULKAN_HPP_USE_REFLECT )
  13023. return this->reflect() == rhs.reflect();
  13024. # else
  13025. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( queueFamilyIndex == rhs.queueFamilyIndex );
  13026. # endif
  13027. }
  13028. bool operator!=( CommandPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  13029. {
  13030. return !operator==( rhs );
  13031. }
  13032. #endif
  13033. public:
  13034. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo;
  13035. const void * pNext = {};
  13036. VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {};
  13037. uint32_t queueFamilyIndex = {};
  13038. };
  13039. template <>
  13040. struct CppType<StructureType, StructureType::eCommandPoolCreateInfo>
  13041. {
  13042. using Type = CommandPoolCreateInfo;
  13043. };
  13044. struct SpecializationMapEntry
  13045. {
  13046. using NativeType = VkSpecializationMapEntry;
  13047. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13048. VULKAN_HPP_CONSTEXPR SpecializationMapEntry( uint32_t constantID_ = {}, uint32_t offset_ = {}, size_t size_ = {} ) VULKAN_HPP_NOEXCEPT
  13049. : constantID( constantID_ )
  13050. , offset( offset_ )
  13051. , size( size_ )
  13052. {
  13053. }
  13054. VULKAN_HPP_CONSTEXPR SpecializationMapEntry( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13055. SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
  13056. : SpecializationMapEntry( *reinterpret_cast<SpecializationMapEntry const *>( &rhs ) )
  13057. {
  13058. }
  13059. SpecializationMapEntry & operator=( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13060. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13061. SpecializationMapEntry & operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT
  13062. {
  13063. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationMapEntry const *>( &rhs );
  13064. return *this;
  13065. }
  13066. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13067. VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT
  13068. {
  13069. constantID = constantID_;
  13070. return *this;
  13071. }
  13072. VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
  13073. {
  13074. offset = offset_;
  13075. return *this;
  13076. }
  13077. VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT
  13078. {
  13079. size = size_;
  13080. return *this;
  13081. }
  13082. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13083. operator VkSpecializationMapEntry const &() const VULKAN_HPP_NOEXCEPT
  13084. {
  13085. return *reinterpret_cast<const VkSpecializationMapEntry *>( this );
  13086. }
  13087. operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT
  13088. {
  13089. return *reinterpret_cast<VkSpecializationMapEntry *>( this );
  13090. }
  13091. #if defined( VULKAN_HPP_USE_REFLECT )
  13092. # if 14 <= VULKAN_HPP_CPP_VERSION
  13093. auto
  13094. # else
  13095. std::tuple<uint32_t const &, uint32_t const &, size_t const &>
  13096. # endif
  13097. reflect() const VULKAN_HPP_NOEXCEPT
  13098. {
  13099. return std::tie( constantID, offset, size );
  13100. }
  13101. #endif
  13102. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13103. auto operator<=>( SpecializationMapEntry const & ) const = default;
  13104. #else
  13105. bool operator==( SpecializationMapEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
  13106. {
  13107. # if defined( VULKAN_HPP_USE_REFLECT )
  13108. return this->reflect() == rhs.reflect();
  13109. # else
  13110. return ( constantID == rhs.constantID ) && ( offset == rhs.offset ) && ( size == rhs.size );
  13111. # endif
  13112. }
  13113. bool operator!=( SpecializationMapEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
  13114. {
  13115. return !operator==( rhs );
  13116. }
  13117. #endif
  13118. public:
  13119. uint32_t constantID = {};
  13120. uint32_t offset = {};
  13121. size_t size = {};
  13122. };
  13123. struct SpecializationInfo
  13124. {
  13125. using NativeType = VkSpecializationInfo;
  13126. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13127. VULKAN_HPP_CONSTEXPR SpecializationInfo( uint32_t mapEntryCount_ = {},
  13128. const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries_ = {},
  13129. size_t dataSize_ = {},
  13130. const void * pData_ = {} ) VULKAN_HPP_NOEXCEPT
  13131. : mapEntryCount( mapEntryCount_ )
  13132. , pMapEntries( pMapEntries_ )
  13133. , dataSize( dataSize_ )
  13134. , pData( pData_ )
  13135. {
  13136. }
  13137. VULKAN_HPP_CONSTEXPR SpecializationInfo( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13138. SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SpecializationInfo( *reinterpret_cast<SpecializationInfo const *>( &rhs ) ) {}
  13139. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  13140. template <typename T>
  13141. SpecializationInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_,
  13142. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ = {} )
  13143. : mapEntryCount( static_cast<uint32_t>( mapEntries_.size() ) )
  13144. , pMapEntries( mapEntries_.data() )
  13145. , dataSize( data_.size() * sizeof( T ) )
  13146. , pData( data_.data() )
  13147. {
  13148. }
  13149. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13150. SpecializationInfo & operator=( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13151. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13152. SpecializationInfo & operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  13153. {
  13154. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SpecializationInfo const *>( &rhs );
  13155. return *this;
  13156. }
  13157. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13158. VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT
  13159. {
  13160. mapEntryCount = mapEntryCount_;
  13161. return *this;
  13162. }
  13163. VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries_ ) VULKAN_HPP_NOEXCEPT
  13164. {
  13165. pMapEntries = pMapEntries_;
  13166. return *this;
  13167. }
  13168. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  13169. SpecializationInfo &
  13170. setMapEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_ ) VULKAN_HPP_NOEXCEPT
  13171. {
  13172. mapEntryCount = static_cast<uint32_t>( mapEntries_.size() );
  13173. pMapEntries = mapEntries_.data();
  13174. return *this;
  13175. }
  13176. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13177. VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
  13178. {
  13179. dataSize = dataSize_;
  13180. return *this;
  13181. }
  13182. VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT
  13183. {
  13184. pData = pData_;
  13185. return *this;
  13186. }
  13187. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  13188. template <typename T>
  13189. SpecializationInfo & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
  13190. {
  13191. dataSize = data_.size() * sizeof( T );
  13192. pData = data_.data();
  13193. return *this;
  13194. }
  13195. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13196. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13197. operator VkSpecializationInfo const &() const VULKAN_HPP_NOEXCEPT
  13198. {
  13199. return *reinterpret_cast<const VkSpecializationInfo *>( this );
  13200. }
  13201. operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT
  13202. {
  13203. return *reinterpret_cast<VkSpecializationInfo *>( this );
  13204. }
  13205. #if defined( VULKAN_HPP_USE_REFLECT )
  13206. # if 14 <= VULKAN_HPP_CPP_VERSION
  13207. auto
  13208. # else
  13209. std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * const &, size_t const &, const void * const &>
  13210. # endif
  13211. reflect() const VULKAN_HPP_NOEXCEPT
  13212. {
  13213. return std::tie( mapEntryCount, pMapEntries, dataSize, pData );
  13214. }
  13215. #endif
  13216. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13217. auto operator<=>( SpecializationInfo const & ) const = default;
  13218. #else
  13219. bool operator==( SpecializationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  13220. {
  13221. # if defined( VULKAN_HPP_USE_REFLECT )
  13222. return this->reflect() == rhs.reflect();
  13223. # else
  13224. return ( mapEntryCount == rhs.mapEntryCount ) && ( pMapEntries == rhs.pMapEntries ) && ( dataSize == rhs.dataSize ) && ( pData == rhs.pData );
  13225. # endif
  13226. }
  13227. bool operator!=( SpecializationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  13228. {
  13229. return !operator==( rhs );
  13230. }
  13231. #endif
  13232. public:
  13233. uint32_t mapEntryCount = {};
  13234. const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries = {};
  13235. size_t dataSize = {};
  13236. const void * pData = {};
  13237. };
  13238. struct PipelineShaderStageCreateInfo
  13239. {
  13240. using NativeType = VkPipelineShaderStageCreateInfo;
  13241. static const bool allowDuplicate = false;
  13242. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageCreateInfo;
  13243. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13244. VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ = {},
  13245. VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex,
  13246. VULKAN_HPP_NAMESPACE::ShaderModule module_ = {},
  13247. const char * pName_ = {},
  13248. const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ = {},
  13249. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13250. : pNext( pNext_ )
  13251. , flags( flags_ )
  13252. , stage( stage_ )
  13253. , module( module_ )
  13254. , pName( pName_ )
  13255. , pSpecializationInfo( pSpecializationInfo_ )
  13256. {
  13257. }
  13258. VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13259. PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  13260. : PipelineShaderStageCreateInfo( *reinterpret_cast<PipelineShaderStageCreateInfo const *>( &rhs ) )
  13261. {
  13262. }
  13263. PipelineShaderStageCreateInfo & operator=( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13264. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13265. PipelineShaderStageCreateInfo & operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  13266. {
  13267. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const *>( &rhs );
  13268. return *this;
  13269. }
  13270. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13271. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13272. {
  13273. pNext = pNext_;
  13274. return *this;
  13275. }
  13276. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  13277. {
  13278. flags = flags_;
  13279. return *this;
  13280. }
  13281. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT
  13282. {
  13283. stage = stage_;
  13284. return *this;
  13285. }
  13286. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT
  13287. {
  13288. module = module_;
  13289. return *this;
  13290. }
  13291. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
  13292. {
  13293. pName = pName_;
  13294. return *this;
  13295. }
  13296. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo &
  13297. setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
  13298. {
  13299. pSpecializationInfo = pSpecializationInfo_;
  13300. return *this;
  13301. }
  13302. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13303. operator VkPipelineShaderStageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  13304. {
  13305. return *reinterpret_cast<const VkPipelineShaderStageCreateInfo *>( this );
  13306. }
  13307. operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT
  13308. {
  13309. return *reinterpret_cast<VkPipelineShaderStageCreateInfo *>( this );
  13310. }
  13311. #if defined( VULKAN_HPP_USE_REFLECT )
  13312. # if 14 <= VULKAN_HPP_CPP_VERSION
  13313. auto
  13314. # else
  13315. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  13316. const void * const &,
  13317. VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags const &,
  13318. VULKAN_HPP_NAMESPACE::ShaderStageFlagBits const &,
  13319. VULKAN_HPP_NAMESPACE::ShaderModule const &,
  13320. const char * const &,
  13321. const VULKAN_HPP_NAMESPACE::SpecializationInfo * const &>
  13322. # endif
  13323. reflect() const VULKAN_HPP_NOEXCEPT
  13324. {
  13325. return std::tie( sType, pNext, flags, stage, module, pName, pSpecializationInfo );
  13326. }
  13327. #endif
  13328. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13329. std::strong_ordering operator<=>( PipelineShaderStageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  13330. {
  13331. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  13332. return cmp;
  13333. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  13334. return cmp;
  13335. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  13336. return cmp;
  13337. if ( auto cmp = stage <=> rhs.stage; cmp != 0 )
  13338. return cmp;
  13339. if ( auto cmp = module <=> rhs.module; cmp != 0 )
  13340. return cmp;
  13341. if ( pName != rhs.pName )
  13342. if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
  13343. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  13344. if ( auto cmp = pSpecializationInfo <=> rhs.pSpecializationInfo; cmp != 0 )
  13345. return cmp;
  13346. return std::strong_ordering::equivalent;
  13347. }
  13348. #endif
  13349. bool operator==( PipelineShaderStageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  13350. {
  13351. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stage == rhs.stage ) && ( module == rhs.module ) &&
  13352. ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) ) && ( pSpecializationInfo == rhs.pSpecializationInfo );
  13353. }
  13354. bool operator!=( PipelineShaderStageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  13355. {
  13356. return !operator==( rhs );
  13357. }
  13358. public:
  13359. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo;
  13360. const void * pNext = {};
  13361. VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {};
  13362. VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex;
  13363. VULKAN_HPP_NAMESPACE::ShaderModule module = {};
  13364. const char * pName = {};
  13365. const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo = {};
  13366. };
  13367. template <>
  13368. struct CppType<StructureType, StructureType::ePipelineShaderStageCreateInfo>
  13369. {
  13370. using Type = PipelineShaderStageCreateInfo;
  13371. };
  13372. struct ComputePipelineCreateInfo
  13373. {
  13374. using NativeType = VkComputePipelineCreateInfo;
  13375. static const bool allowDuplicate = false;
  13376. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineCreateInfo;
  13377. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13378. VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
  13379. VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage_ = {},
  13380. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  13381. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  13382. int32_t basePipelineIndex_ = {},
  13383. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13384. : pNext( pNext_ )
  13385. , flags( flags_ )
  13386. , stage( stage_ )
  13387. , layout( layout_ )
  13388. , basePipelineHandle( basePipelineHandle_ )
  13389. , basePipelineIndex( basePipelineIndex_ )
  13390. {
  13391. }
  13392. VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13393. ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  13394. : ComputePipelineCreateInfo( *reinterpret_cast<ComputePipelineCreateInfo const *>( &rhs ) )
  13395. {
  13396. }
  13397. ComputePipelineCreateInfo & operator=( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13398. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13399. ComputePipelineCreateInfo & operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  13400. {
  13401. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const *>( &rhs );
  13402. return *this;
  13403. }
  13404. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13405. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13406. {
  13407. pNext = pNext_;
  13408. return *this;
  13409. }
  13410. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  13411. {
  13412. flags = flags_;
  13413. return *this;
  13414. }
  13415. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & stage_ ) VULKAN_HPP_NOEXCEPT
  13416. {
  13417. stage = stage_;
  13418. return *this;
  13419. }
  13420. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
  13421. {
  13422. layout = layout_;
  13423. return *this;
  13424. }
  13425. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
  13426. {
  13427. basePipelineHandle = basePipelineHandle_;
  13428. return *this;
  13429. }
  13430. VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
  13431. {
  13432. basePipelineIndex = basePipelineIndex_;
  13433. return *this;
  13434. }
  13435. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13436. operator VkComputePipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  13437. {
  13438. return *reinterpret_cast<const VkComputePipelineCreateInfo *>( this );
  13439. }
  13440. operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
  13441. {
  13442. return *reinterpret_cast<VkComputePipelineCreateInfo *>( this );
  13443. }
  13444. #if defined( VULKAN_HPP_USE_REFLECT )
  13445. # if 14 <= VULKAN_HPP_CPP_VERSION
  13446. auto
  13447. # else
  13448. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  13449. const void * const &,
  13450. VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &,
  13451. VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const &,
  13452. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  13453. VULKAN_HPP_NAMESPACE::Pipeline const &,
  13454. int32_t const &>
  13455. # endif
  13456. reflect() const VULKAN_HPP_NOEXCEPT
  13457. {
  13458. return std::tie( sType, pNext, flags, stage, layout, basePipelineHandle, basePipelineIndex );
  13459. }
  13460. #endif
  13461. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13462. auto operator<=>( ComputePipelineCreateInfo const & ) const = default;
  13463. #else
  13464. bool operator==( ComputePipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  13465. {
  13466. # if defined( VULKAN_HPP_USE_REFLECT )
  13467. return this->reflect() == rhs.reflect();
  13468. # else
  13469. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stage == rhs.stage ) && ( layout == rhs.layout ) &&
  13470. ( basePipelineHandle == rhs.basePipelineHandle ) && ( basePipelineIndex == rhs.basePipelineIndex );
  13471. # endif
  13472. }
  13473. bool operator!=( ComputePipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  13474. {
  13475. return !operator==( rhs );
  13476. }
  13477. #endif
  13478. public:
  13479. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo;
  13480. const void * pNext = {};
  13481. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
  13482. VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {};
  13483. VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
  13484. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
  13485. int32_t basePipelineIndex = {};
  13486. };
  13487. template <>
  13488. struct CppType<StructureType, StructureType::eComputePipelineCreateInfo>
  13489. {
  13490. using Type = ComputePipelineCreateInfo;
  13491. };
  13492. struct ComputePipelineIndirectBufferInfoNV
  13493. {
  13494. using NativeType = VkComputePipelineIndirectBufferInfoNV;
  13495. static const bool allowDuplicate = false;
  13496. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineIndirectBufferInfoNV;
  13497. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13498. VULKAN_HPP_CONSTEXPR ComputePipelineIndirectBufferInfoNV( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
  13499. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  13500. VULKAN_HPP_NAMESPACE::DeviceAddress pipelineDeviceAddressCaptureReplay_ = {},
  13501. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13502. : pNext( pNext_ )
  13503. , deviceAddress( deviceAddress_ )
  13504. , size( size_ )
  13505. , pipelineDeviceAddressCaptureReplay( pipelineDeviceAddressCaptureReplay_ )
  13506. {
  13507. }
  13508. VULKAN_HPP_CONSTEXPR ComputePipelineIndirectBufferInfoNV( ComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13509. ComputePipelineIndirectBufferInfoNV( VkComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  13510. : ComputePipelineIndirectBufferInfoNV( *reinterpret_cast<ComputePipelineIndirectBufferInfoNV const *>( &rhs ) )
  13511. {
  13512. }
  13513. ComputePipelineIndirectBufferInfoNV & operator=( ComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13514. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13515. ComputePipelineIndirectBufferInfoNV & operator=( VkComputePipelineIndirectBufferInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  13516. {
  13517. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV const *>( &rhs );
  13518. return *this;
  13519. }
  13520. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13521. VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13522. {
  13523. pNext = pNext_;
  13524. return *this;
  13525. }
  13526. VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
  13527. {
  13528. deviceAddress = deviceAddress_;
  13529. return *this;
  13530. }
  13531. VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  13532. {
  13533. size = size_;
  13534. return *this;
  13535. }
  13536. VULKAN_HPP_CONSTEXPR_14 ComputePipelineIndirectBufferInfoNV &
  13537. setPipelineDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::DeviceAddress pipelineDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  13538. {
  13539. pipelineDeviceAddressCaptureReplay = pipelineDeviceAddressCaptureReplay_;
  13540. return *this;
  13541. }
  13542. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13543. operator VkComputePipelineIndirectBufferInfoNV const &() const VULKAN_HPP_NOEXCEPT
  13544. {
  13545. return *reinterpret_cast<const VkComputePipelineIndirectBufferInfoNV *>( this );
  13546. }
  13547. operator VkComputePipelineIndirectBufferInfoNV &() VULKAN_HPP_NOEXCEPT
  13548. {
  13549. return *reinterpret_cast<VkComputePipelineIndirectBufferInfoNV *>( this );
  13550. }
  13551. #if defined( VULKAN_HPP_USE_REFLECT )
  13552. # if 14 <= VULKAN_HPP_CPP_VERSION
  13553. auto
  13554. # else
  13555. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  13556. const void * const &,
  13557. VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  13558. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  13559. VULKAN_HPP_NAMESPACE::DeviceAddress const &>
  13560. # endif
  13561. reflect() const VULKAN_HPP_NOEXCEPT
  13562. {
  13563. return std::tie( sType, pNext, deviceAddress, size, pipelineDeviceAddressCaptureReplay );
  13564. }
  13565. #endif
  13566. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13567. auto operator<=>( ComputePipelineIndirectBufferInfoNV const & ) const = default;
  13568. #else
  13569. bool operator==( ComputePipelineIndirectBufferInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  13570. {
  13571. # if defined( VULKAN_HPP_USE_REFLECT )
  13572. return this->reflect() == rhs.reflect();
  13573. # else
  13574. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceAddress == rhs.deviceAddress ) && ( size == rhs.size ) &&
  13575. ( pipelineDeviceAddressCaptureReplay == rhs.pipelineDeviceAddressCaptureReplay );
  13576. # endif
  13577. }
  13578. bool operator!=( ComputePipelineIndirectBufferInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  13579. {
  13580. return !operator==( rhs );
  13581. }
  13582. #endif
  13583. public:
  13584. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineIndirectBufferInfoNV;
  13585. const void * pNext = {};
  13586. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
  13587. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  13588. VULKAN_HPP_NAMESPACE::DeviceAddress pipelineDeviceAddressCaptureReplay = {};
  13589. };
  13590. template <>
  13591. struct CppType<StructureType, StructureType::eComputePipelineIndirectBufferInfoNV>
  13592. {
  13593. using Type = ComputePipelineIndirectBufferInfoNV;
  13594. };
  13595. struct ConditionalRenderingBeginInfoEXT
  13596. {
  13597. using NativeType = VkConditionalRenderingBeginInfoEXT;
  13598. static const bool allowDuplicate = false;
  13599. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eConditionalRenderingBeginInfoEXT;
  13600. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13601. VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  13602. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  13603. VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {},
  13604. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13605. : pNext( pNext_ )
  13606. , buffer( buffer_ )
  13607. , offset( offset_ )
  13608. , flags( flags_ )
  13609. {
  13610. }
  13611. VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13612. ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  13613. : ConditionalRenderingBeginInfoEXT( *reinterpret_cast<ConditionalRenderingBeginInfoEXT const *>( &rhs ) )
  13614. {
  13615. }
  13616. ConditionalRenderingBeginInfoEXT & operator=( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13617. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13618. ConditionalRenderingBeginInfoEXT & operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  13619. {
  13620. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const *>( &rhs );
  13621. return *this;
  13622. }
  13623. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13624. VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13625. {
  13626. pNext = pNext_;
  13627. return *this;
  13628. }
  13629. VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  13630. {
  13631. buffer = buffer_;
  13632. return *this;
  13633. }
  13634. VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  13635. {
  13636. offset = offset_;
  13637. return *this;
  13638. }
  13639. VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  13640. {
  13641. flags = flags_;
  13642. return *this;
  13643. }
  13644. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13645. operator VkConditionalRenderingBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  13646. {
  13647. return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( this );
  13648. }
  13649. operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
  13650. {
  13651. return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT *>( this );
  13652. }
  13653. #if defined( VULKAN_HPP_USE_REFLECT )
  13654. # if 14 <= VULKAN_HPP_CPP_VERSION
  13655. auto
  13656. # else
  13657. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  13658. const void * const &,
  13659. VULKAN_HPP_NAMESPACE::Buffer const &,
  13660. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  13661. VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT const &>
  13662. # endif
  13663. reflect() const VULKAN_HPP_NOEXCEPT
  13664. {
  13665. return std::tie( sType, pNext, buffer, offset, flags );
  13666. }
  13667. #endif
  13668. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13669. auto operator<=>( ConditionalRenderingBeginInfoEXT const & ) const = default;
  13670. #else
  13671. bool operator==( ConditionalRenderingBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  13672. {
  13673. # if defined( VULKAN_HPP_USE_REFLECT )
  13674. return this->reflect() == rhs.reflect();
  13675. # else
  13676. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer ) && ( offset == rhs.offset ) && ( flags == rhs.flags );
  13677. # endif
  13678. }
  13679. bool operator!=( ConditionalRenderingBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  13680. {
  13681. return !operator==( rhs );
  13682. }
  13683. #endif
  13684. public:
  13685. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT;
  13686. const void * pNext = {};
  13687. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  13688. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  13689. VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {};
  13690. };
  13691. template <>
  13692. struct CppType<StructureType, StructureType::eConditionalRenderingBeginInfoEXT>
  13693. {
  13694. using Type = ConditionalRenderingBeginInfoEXT;
  13695. };
  13696. struct ConformanceVersion
  13697. {
  13698. using NativeType = VkConformanceVersion;
  13699. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13700. VULKAN_HPP_CONSTEXPR ConformanceVersion( uint8_t major_ = {}, uint8_t minor_ = {}, uint8_t subminor_ = {}, uint8_t patch_ = {} ) VULKAN_HPP_NOEXCEPT
  13701. : major( major_ )
  13702. , minor( minor_ )
  13703. , subminor( subminor_ )
  13704. , patch( patch_ )
  13705. {
  13706. }
  13707. VULKAN_HPP_CONSTEXPR ConformanceVersion( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13708. ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT : ConformanceVersion( *reinterpret_cast<ConformanceVersion const *>( &rhs ) ) {}
  13709. ConformanceVersion & operator=( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13710. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13711. ConformanceVersion & operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT
  13712. {
  13713. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ConformanceVersion const *>( &rhs );
  13714. return *this;
  13715. }
  13716. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13717. VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT
  13718. {
  13719. major = major_;
  13720. return *this;
  13721. }
  13722. VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT
  13723. {
  13724. minor = minor_;
  13725. return *this;
  13726. }
  13727. VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT
  13728. {
  13729. subminor = subminor_;
  13730. return *this;
  13731. }
  13732. VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT
  13733. {
  13734. patch = patch_;
  13735. return *this;
  13736. }
  13737. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13738. operator VkConformanceVersion const &() const VULKAN_HPP_NOEXCEPT
  13739. {
  13740. return *reinterpret_cast<const VkConformanceVersion *>( this );
  13741. }
  13742. operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT
  13743. {
  13744. return *reinterpret_cast<VkConformanceVersion *>( this );
  13745. }
  13746. #if defined( VULKAN_HPP_USE_REFLECT )
  13747. # if 14 <= VULKAN_HPP_CPP_VERSION
  13748. auto
  13749. # else
  13750. std::tuple<uint8_t const &, uint8_t const &, uint8_t const &, uint8_t const &>
  13751. # endif
  13752. reflect() const VULKAN_HPP_NOEXCEPT
  13753. {
  13754. return std::tie( major, minor, subminor, patch );
  13755. }
  13756. #endif
  13757. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13758. auto operator<=>( ConformanceVersion const & ) const = default;
  13759. #else
  13760. bool operator==( ConformanceVersion const & rhs ) const VULKAN_HPP_NOEXCEPT
  13761. {
  13762. # if defined( VULKAN_HPP_USE_REFLECT )
  13763. return this->reflect() == rhs.reflect();
  13764. # else
  13765. return ( major == rhs.major ) && ( minor == rhs.minor ) && ( subminor == rhs.subminor ) && ( patch == rhs.patch );
  13766. # endif
  13767. }
  13768. bool operator!=( ConformanceVersion const & rhs ) const VULKAN_HPP_NOEXCEPT
  13769. {
  13770. return !operator==( rhs );
  13771. }
  13772. #endif
  13773. public:
  13774. uint8_t major = {};
  13775. uint8_t minor = {};
  13776. uint8_t subminor = {};
  13777. uint8_t patch = {};
  13778. };
  13779. using ConformanceVersionKHR = ConformanceVersion;
  13780. struct CooperativeMatrixPropertiesKHR
  13781. {
  13782. using NativeType = VkCooperativeMatrixPropertiesKHR;
  13783. static const bool allowDuplicate = false;
  13784. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesKHR;
  13785. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13786. VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesKHR( uint32_t MSize_ = {},
  13787. uint32_t NSize_ = {},
  13788. uint32_t KSize_ = {},
  13789. VULKAN_HPP_NAMESPACE::ComponentTypeKHR AType_ = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16,
  13790. VULKAN_HPP_NAMESPACE::ComponentTypeKHR BType_ = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16,
  13791. VULKAN_HPP_NAMESPACE::ComponentTypeKHR CType_ = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16,
  13792. VULKAN_HPP_NAMESPACE::ComponentTypeKHR ResultType_ = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16,
  13793. VULKAN_HPP_NAMESPACE::Bool32 saturatingAccumulation_ = {},
  13794. VULKAN_HPP_NAMESPACE::ScopeKHR scope_ = VULKAN_HPP_NAMESPACE::ScopeKHR::eDevice,
  13795. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13796. : pNext( pNext_ )
  13797. , MSize( MSize_ )
  13798. , NSize( NSize_ )
  13799. , KSize( KSize_ )
  13800. , AType( AType_ )
  13801. , BType( BType_ )
  13802. , CType( CType_ )
  13803. , ResultType( ResultType_ )
  13804. , saturatingAccumulation( saturatingAccumulation_ )
  13805. , scope( scope_ )
  13806. {
  13807. }
  13808. VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesKHR( CooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13809. CooperativeMatrixPropertiesKHR( VkCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  13810. : CooperativeMatrixPropertiesKHR( *reinterpret_cast<CooperativeMatrixPropertiesKHR const *>( &rhs ) )
  13811. {
  13812. }
  13813. CooperativeMatrixPropertiesKHR & operator=( CooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13814. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13815. CooperativeMatrixPropertiesKHR & operator=( VkCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  13816. {
  13817. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR const *>( &rhs );
  13818. return *this;
  13819. }
  13820. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13821. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13822. {
  13823. pNext = pNext_;
  13824. return *this;
  13825. }
  13826. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT
  13827. {
  13828. MSize = MSize_;
  13829. return *this;
  13830. }
  13831. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT
  13832. {
  13833. NSize = NSize_;
  13834. return *this;
  13835. }
  13836. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT
  13837. {
  13838. KSize = KSize_;
  13839. return *this;
  13840. }
  13841. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR AType_ ) VULKAN_HPP_NOEXCEPT
  13842. {
  13843. AType = AType_;
  13844. return *this;
  13845. }
  13846. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR BType_ ) VULKAN_HPP_NOEXCEPT
  13847. {
  13848. BType = BType_;
  13849. return *this;
  13850. }
  13851. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR CType_ ) VULKAN_HPP_NOEXCEPT
  13852. {
  13853. CType = CType_;
  13854. return *this;
  13855. }
  13856. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setResultType( VULKAN_HPP_NAMESPACE::ComponentTypeKHR ResultType_ ) VULKAN_HPP_NOEXCEPT
  13857. {
  13858. ResultType = ResultType_;
  13859. return *this;
  13860. }
  13861. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR &
  13862. setSaturatingAccumulation( VULKAN_HPP_NAMESPACE::Bool32 saturatingAccumulation_ ) VULKAN_HPP_NOEXCEPT
  13863. {
  13864. saturatingAccumulation = saturatingAccumulation_;
  13865. return *this;
  13866. }
  13867. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesKHR & setScope( VULKAN_HPP_NAMESPACE::ScopeKHR scope_ ) VULKAN_HPP_NOEXCEPT
  13868. {
  13869. scope = scope_;
  13870. return *this;
  13871. }
  13872. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  13873. operator VkCooperativeMatrixPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  13874. {
  13875. return *reinterpret_cast<const VkCooperativeMatrixPropertiesKHR *>( this );
  13876. }
  13877. operator VkCooperativeMatrixPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  13878. {
  13879. return *reinterpret_cast<VkCooperativeMatrixPropertiesKHR *>( this );
  13880. }
  13881. #if defined( VULKAN_HPP_USE_REFLECT )
  13882. # if 14 <= VULKAN_HPP_CPP_VERSION
  13883. auto
  13884. # else
  13885. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  13886. void * const &,
  13887. uint32_t const &,
  13888. uint32_t const &,
  13889. uint32_t const &,
  13890. VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &,
  13891. VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &,
  13892. VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &,
  13893. VULKAN_HPP_NAMESPACE::ComponentTypeKHR const &,
  13894. VULKAN_HPP_NAMESPACE::Bool32 const &,
  13895. VULKAN_HPP_NAMESPACE::ScopeKHR const &>
  13896. # endif
  13897. reflect() const VULKAN_HPP_NOEXCEPT
  13898. {
  13899. return std::tie( sType, pNext, MSize, NSize, KSize, AType, BType, CType, ResultType, saturatingAccumulation, scope );
  13900. }
  13901. #endif
  13902. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  13903. auto operator<=>( CooperativeMatrixPropertiesKHR const & ) const = default;
  13904. #else
  13905. bool operator==( CooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  13906. {
  13907. # if defined( VULKAN_HPP_USE_REFLECT )
  13908. return this->reflect() == rhs.reflect();
  13909. # else
  13910. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( MSize == rhs.MSize ) && ( NSize == rhs.NSize ) && ( KSize == rhs.KSize ) &&
  13911. ( AType == rhs.AType ) && ( BType == rhs.BType ) && ( CType == rhs.CType ) && ( ResultType == rhs.ResultType ) &&
  13912. ( saturatingAccumulation == rhs.saturatingAccumulation ) && ( scope == rhs.scope );
  13913. # endif
  13914. }
  13915. bool operator!=( CooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  13916. {
  13917. return !operator==( rhs );
  13918. }
  13919. #endif
  13920. public:
  13921. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesKHR;
  13922. void * pNext = {};
  13923. uint32_t MSize = {};
  13924. uint32_t NSize = {};
  13925. uint32_t KSize = {};
  13926. VULKAN_HPP_NAMESPACE::ComponentTypeKHR AType = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
  13927. VULKAN_HPP_NAMESPACE::ComponentTypeKHR BType = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
  13928. VULKAN_HPP_NAMESPACE::ComponentTypeKHR CType = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
  13929. VULKAN_HPP_NAMESPACE::ComponentTypeKHR ResultType = VULKAN_HPP_NAMESPACE::ComponentTypeKHR::eFloat16;
  13930. VULKAN_HPP_NAMESPACE::Bool32 saturatingAccumulation = {};
  13931. VULKAN_HPP_NAMESPACE::ScopeKHR scope = VULKAN_HPP_NAMESPACE::ScopeKHR::eDevice;
  13932. };
  13933. template <>
  13934. struct CppType<StructureType, StructureType::eCooperativeMatrixPropertiesKHR>
  13935. {
  13936. using Type = CooperativeMatrixPropertiesKHR;
  13937. };
  13938. struct CooperativeMatrixPropertiesNV
  13939. {
  13940. using NativeType = VkCooperativeMatrixPropertiesNV;
  13941. static const bool allowDuplicate = false;
  13942. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesNV;
  13943. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  13944. VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( uint32_t MSize_ = {},
  13945. uint32_t NSize_ = {},
  13946. uint32_t KSize_ = {},
  13947. VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ = {},
  13948. VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ = {},
  13949. VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ = {},
  13950. VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = {},
  13951. VULKAN_HPP_NAMESPACE::ScopeNV scope_ = {},
  13952. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  13953. : pNext( pNext_ )
  13954. , MSize( MSize_ )
  13955. , NSize( NSize_ )
  13956. , KSize( KSize_ )
  13957. , AType( AType_ )
  13958. , BType( BType_ )
  13959. , CType( CType_ )
  13960. , DType( DType_ )
  13961. , scope( scope_ )
  13962. {
  13963. }
  13964. VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13965. CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  13966. : CooperativeMatrixPropertiesNV( *reinterpret_cast<CooperativeMatrixPropertiesNV const *>( &rhs ) )
  13967. {
  13968. }
  13969. CooperativeMatrixPropertiesNV & operator=( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  13970. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  13971. CooperativeMatrixPropertiesNV & operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  13972. {
  13973. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const *>( &rhs );
  13974. return *this;
  13975. }
  13976. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  13977. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  13978. {
  13979. pNext = pNext_;
  13980. return *this;
  13981. }
  13982. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT
  13983. {
  13984. MSize = MSize_;
  13985. return *this;
  13986. }
  13987. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT
  13988. {
  13989. NSize = NSize_;
  13990. return *this;
  13991. }
  13992. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT
  13993. {
  13994. KSize = KSize_;
  13995. return *this;
  13996. }
  13997. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT
  13998. {
  13999. AType = AType_;
  14000. return *this;
  14001. }
  14002. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT
  14003. {
  14004. BType = BType_;
  14005. return *this;
  14006. }
  14007. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT
  14008. {
  14009. CType = CType_;
  14010. return *this;
  14011. }
  14012. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT
  14013. {
  14014. DType = DType_;
  14015. return *this;
  14016. }
  14017. VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT
  14018. {
  14019. scope = scope_;
  14020. return *this;
  14021. }
  14022. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14023. operator VkCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  14024. {
  14025. return *reinterpret_cast<const VkCooperativeMatrixPropertiesNV *>( this );
  14026. }
  14027. operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
  14028. {
  14029. return *reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( this );
  14030. }
  14031. #if defined( VULKAN_HPP_USE_REFLECT )
  14032. # if 14 <= VULKAN_HPP_CPP_VERSION
  14033. auto
  14034. # else
  14035. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14036. void * const &,
  14037. uint32_t const &,
  14038. uint32_t const &,
  14039. uint32_t const &,
  14040. VULKAN_HPP_NAMESPACE::ComponentTypeNV const &,
  14041. VULKAN_HPP_NAMESPACE::ComponentTypeNV const &,
  14042. VULKAN_HPP_NAMESPACE::ComponentTypeNV const &,
  14043. VULKAN_HPP_NAMESPACE::ComponentTypeNV const &,
  14044. VULKAN_HPP_NAMESPACE::ScopeNV const &>
  14045. # endif
  14046. reflect() const VULKAN_HPP_NOEXCEPT
  14047. {
  14048. return std::tie( sType, pNext, MSize, NSize, KSize, AType, BType, CType, DType, scope );
  14049. }
  14050. #endif
  14051. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14052. auto operator<=>( CooperativeMatrixPropertiesNV const & ) const = default;
  14053. #else
  14054. bool operator==( CooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  14055. {
  14056. # if defined( VULKAN_HPP_USE_REFLECT )
  14057. return this->reflect() == rhs.reflect();
  14058. # else
  14059. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( MSize == rhs.MSize ) && ( NSize == rhs.NSize ) && ( KSize == rhs.KSize ) &&
  14060. ( AType == rhs.AType ) && ( BType == rhs.BType ) && ( CType == rhs.CType ) && ( DType == rhs.DType ) && ( scope == rhs.scope );
  14061. # endif
  14062. }
  14063. bool operator!=( CooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  14064. {
  14065. return !operator==( rhs );
  14066. }
  14067. #endif
  14068. public:
  14069. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV;
  14070. void * pNext = {};
  14071. uint32_t MSize = {};
  14072. uint32_t NSize = {};
  14073. uint32_t KSize = {};
  14074. VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = {};
  14075. VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = {};
  14076. VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = {};
  14077. VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = {};
  14078. VULKAN_HPP_NAMESPACE::ScopeNV scope = {};
  14079. };
  14080. template <>
  14081. struct CppType<StructureType, StructureType::eCooperativeMatrixPropertiesNV>
  14082. {
  14083. using Type = CooperativeMatrixPropertiesNV;
  14084. };
  14085. struct CopyAccelerationStructureInfoKHR
  14086. {
  14087. using NativeType = VkCopyAccelerationStructureInfoKHR;
  14088. static const bool allowDuplicate = false;
  14089. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureInfoKHR;
  14090. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14091. VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR(
  14092. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {},
  14093. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {},
  14094. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone,
  14095. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14096. : pNext( pNext_ )
  14097. , src( src_ )
  14098. , dst( dst_ )
  14099. , mode( mode_ )
  14100. {
  14101. }
  14102. VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14103. CopyAccelerationStructureInfoKHR( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  14104. : CopyAccelerationStructureInfoKHR( *reinterpret_cast<CopyAccelerationStructureInfoKHR const *>( &rhs ) )
  14105. {
  14106. }
  14107. CopyAccelerationStructureInfoKHR & operator=( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14108. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14109. CopyAccelerationStructureInfoKHR & operator=( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  14110. {
  14111. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR const *>( &rhs );
  14112. return *this;
  14113. }
  14114. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14115. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14116. {
  14117. pNext = pNext_;
  14118. return *this;
  14119. }
  14120. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
  14121. {
  14122. src = src_;
  14123. return *this;
  14124. }
  14125. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
  14126. {
  14127. dst = dst_;
  14128. return *this;
  14129. }
  14130. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
  14131. {
  14132. mode = mode_;
  14133. return *this;
  14134. }
  14135. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14136. operator VkCopyAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  14137. {
  14138. return *reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( this );
  14139. }
  14140. operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
  14141. {
  14142. return *reinterpret_cast<VkCopyAccelerationStructureInfoKHR *>( this );
  14143. }
  14144. #if defined( VULKAN_HPP_USE_REFLECT )
  14145. # if 14 <= VULKAN_HPP_CPP_VERSION
  14146. auto
  14147. # else
  14148. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14149. const void * const &,
  14150. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &,
  14151. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &,
  14152. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR const &>
  14153. # endif
  14154. reflect() const VULKAN_HPP_NOEXCEPT
  14155. {
  14156. return std::tie( sType, pNext, src, dst, mode );
  14157. }
  14158. #endif
  14159. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14160. auto operator<=>( CopyAccelerationStructureInfoKHR const & ) const = default;
  14161. #else
  14162. bool operator==( CopyAccelerationStructureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  14163. {
  14164. # if defined( VULKAN_HPP_USE_REFLECT )
  14165. return this->reflect() == rhs.reflect();
  14166. # else
  14167. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( src == rhs.src ) && ( dst == rhs.dst ) && ( mode == rhs.mode );
  14168. # endif
  14169. }
  14170. bool operator!=( CopyAccelerationStructureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  14171. {
  14172. return !operator==( rhs );
  14173. }
  14174. #endif
  14175. public:
  14176. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureInfoKHR;
  14177. const void * pNext = {};
  14178. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
  14179. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
  14180. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
  14181. };
  14182. template <>
  14183. struct CppType<StructureType, StructureType::eCopyAccelerationStructureInfoKHR>
  14184. {
  14185. using Type = CopyAccelerationStructureInfoKHR;
  14186. };
  14187. struct CopyAccelerationStructureToMemoryInfoKHR
  14188. {
  14189. using NativeType = VkCopyAccelerationStructureToMemoryInfoKHR;
  14190. static const bool allowDuplicate = false;
  14191. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
  14192. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14193. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR(
  14194. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {},
  14195. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {},
  14196. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone,
  14197. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14198. : pNext( pNext_ )
  14199. , src( src_ )
  14200. , dst( dst_ )
  14201. , mode( mode_ )
  14202. {
  14203. }
  14204. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14205. CopyAccelerationStructureToMemoryInfoKHR( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  14206. : CopyAccelerationStructureToMemoryInfoKHR( *reinterpret_cast<CopyAccelerationStructureToMemoryInfoKHR const *>( &rhs ) )
  14207. {
  14208. }
  14209. CopyAccelerationStructureToMemoryInfoKHR & operator=( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14210. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14211. CopyAccelerationStructureToMemoryInfoKHR & operator=( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  14212. {
  14213. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR const *>( &rhs );
  14214. return *this;
  14215. }
  14216. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14217. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14218. {
  14219. pNext = pNext_;
  14220. return *this;
  14221. }
  14222. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT
  14223. {
  14224. src = src_;
  14225. return *this;
  14226. }
  14227. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT
  14228. {
  14229. dst = dst_;
  14230. return *this;
  14231. }
  14232. VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureToMemoryInfoKHR &
  14233. setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
  14234. {
  14235. mode = mode_;
  14236. return *this;
  14237. }
  14238. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14239. operator VkCopyAccelerationStructureToMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  14240. {
  14241. return *reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( this );
  14242. }
  14243. operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT
  14244. {
  14245. return *reinterpret_cast<VkCopyAccelerationStructureToMemoryInfoKHR *>( this );
  14246. }
  14247. #if defined( VULKAN_HPP_USE_REFLECT )
  14248. # if 14 <= VULKAN_HPP_CPP_VERSION
  14249. auto
  14250. # else
  14251. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14252. const void * const &,
  14253. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &,
  14254. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const &,
  14255. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR const &>
  14256. # endif
  14257. reflect() const VULKAN_HPP_NOEXCEPT
  14258. {
  14259. return std::tie( sType, pNext, src, dst, mode );
  14260. }
  14261. #endif
  14262. public:
  14263. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR;
  14264. const void * pNext = {};
  14265. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {};
  14266. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {};
  14267. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
  14268. };
  14269. template <>
  14270. struct CppType<StructureType, StructureType::eCopyAccelerationStructureToMemoryInfoKHR>
  14271. {
  14272. using Type = CopyAccelerationStructureToMemoryInfoKHR;
  14273. };
  14274. struct CopyBufferInfo2
  14275. {
  14276. using NativeType = VkCopyBufferInfo2;
  14277. static const bool allowDuplicate = false;
  14278. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferInfo2;
  14279. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14280. VULKAN_HPP_CONSTEXPR CopyBufferInfo2( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {},
  14281. VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {},
  14282. uint32_t regionCount_ = {},
  14283. const VULKAN_HPP_NAMESPACE::BufferCopy2 * pRegions_ = {},
  14284. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14285. : pNext( pNext_ )
  14286. , srcBuffer( srcBuffer_ )
  14287. , dstBuffer( dstBuffer_ )
  14288. , regionCount( regionCount_ )
  14289. , pRegions( pRegions_ )
  14290. {
  14291. }
  14292. VULKAN_HPP_CONSTEXPR CopyBufferInfo2( CopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14293. CopyBufferInfo2( VkCopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : CopyBufferInfo2( *reinterpret_cast<CopyBufferInfo2 const *>( &rhs ) ) {}
  14294. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14295. CopyBufferInfo2( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_,
  14296. VULKAN_HPP_NAMESPACE::Buffer dstBuffer_,
  14297. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2> const & regions_,
  14298. const void * pNext_ = nullptr )
  14299. : pNext( pNext_ ), srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
  14300. {
  14301. }
  14302. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14303. CopyBufferInfo2 & operator=( CopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14304. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14305. CopyBufferInfo2 & operator=( VkCopyBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  14306. {
  14307. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferInfo2 const *>( &rhs );
  14308. return *this;
  14309. }
  14310. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14311. VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14312. {
  14313. pNext = pNext_;
  14314. return *this;
  14315. }
  14316. VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
  14317. {
  14318. srcBuffer = srcBuffer_;
  14319. return *this;
  14320. }
  14321. VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
  14322. {
  14323. dstBuffer = dstBuffer_;
  14324. return *this;
  14325. }
  14326. VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  14327. {
  14328. regionCount = regionCount_;
  14329. return *this;
  14330. }
  14331. VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::BufferCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  14332. {
  14333. pRegions = pRegions_;
  14334. return *this;
  14335. }
  14336. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14337. CopyBufferInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  14338. {
  14339. regionCount = static_cast<uint32_t>( regions_.size() );
  14340. pRegions = regions_.data();
  14341. return *this;
  14342. }
  14343. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14344. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14345. operator VkCopyBufferInfo2 const &() const VULKAN_HPP_NOEXCEPT
  14346. {
  14347. return *reinterpret_cast<const VkCopyBufferInfo2 *>( this );
  14348. }
  14349. operator VkCopyBufferInfo2 &() VULKAN_HPP_NOEXCEPT
  14350. {
  14351. return *reinterpret_cast<VkCopyBufferInfo2 *>( this );
  14352. }
  14353. #if defined( VULKAN_HPP_USE_REFLECT )
  14354. # if 14 <= VULKAN_HPP_CPP_VERSION
  14355. auto
  14356. # else
  14357. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14358. const void * const &,
  14359. VULKAN_HPP_NAMESPACE::Buffer const &,
  14360. VULKAN_HPP_NAMESPACE::Buffer const &,
  14361. uint32_t const &,
  14362. const VULKAN_HPP_NAMESPACE::BufferCopy2 * const &>
  14363. # endif
  14364. reflect() const VULKAN_HPP_NOEXCEPT
  14365. {
  14366. return std::tie( sType, pNext, srcBuffer, dstBuffer, regionCount, pRegions );
  14367. }
  14368. #endif
  14369. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14370. auto operator<=>( CopyBufferInfo2 const & ) const = default;
  14371. #else
  14372. bool operator==( CopyBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  14373. {
  14374. # if defined( VULKAN_HPP_USE_REFLECT )
  14375. return this->reflect() == rhs.reflect();
  14376. # else
  14377. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcBuffer == rhs.srcBuffer ) && ( dstBuffer == rhs.dstBuffer ) &&
  14378. ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  14379. # endif
  14380. }
  14381. bool operator!=( CopyBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  14382. {
  14383. return !operator==( rhs );
  14384. }
  14385. #endif
  14386. public:
  14387. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferInfo2;
  14388. const void * pNext = {};
  14389. VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
  14390. VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
  14391. uint32_t regionCount = {};
  14392. const VULKAN_HPP_NAMESPACE::BufferCopy2 * pRegions = {};
  14393. };
  14394. template <>
  14395. struct CppType<StructureType, StructureType::eCopyBufferInfo2>
  14396. {
  14397. using Type = CopyBufferInfo2;
  14398. };
  14399. using CopyBufferInfo2KHR = CopyBufferInfo2;
  14400. struct CopyBufferToImageInfo2
  14401. {
  14402. using NativeType = VkCopyBufferToImageInfo2;
  14403. static const bool allowDuplicate = false;
  14404. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferToImageInfo2;
  14405. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14406. VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {},
  14407. VULKAN_HPP_NAMESPACE::Image dstImage_ = {},
  14408. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  14409. uint32_t regionCount_ = {},
  14410. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ = {},
  14411. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14412. : pNext( pNext_ )
  14413. , srcBuffer( srcBuffer_ )
  14414. , dstImage( dstImage_ )
  14415. , dstImageLayout( dstImageLayout_ )
  14416. , regionCount( regionCount_ )
  14417. , pRegions( pRegions_ )
  14418. {
  14419. }
  14420. VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2( CopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14421. CopyBufferToImageInfo2( VkCopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  14422. : CopyBufferToImageInfo2( *reinterpret_cast<CopyBufferToImageInfo2 const *>( &rhs ) )
  14423. {
  14424. }
  14425. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14426. CopyBufferToImageInfo2( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_,
  14427. VULKAN_HPP_NAMESPACE::Image dstImage_,
  14428. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_,
  14429. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_,
  14430. const void * pNext_ = nullptr )
  14431. : pNext( pNext_ )
  14432. , srcBuffer( srcBuffer_ )
  14433. , dstImage( dstImage_ )
  14434. , dstImageLayout( dstImageLayout_ )
  14435. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  14436. , pRegions( regions_.data() )
  14437. {
  14438. }
  14439. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14440. CopyBufferToImageInfo2 & operator=( CopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14441. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14442. CopyBufferToImageInfo2 & operator=( VkCopyBufferToImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  14443. {
  14444. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 const *>( &rhs );
  14445. return *this;
  14446. }
  14447. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14448. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14449. {
  14450. pNext = pNext_;
  14451. return *this;
  14452. }
  14453. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
  14454. {
  14455. srcBuffer = srcBuffer_;
  14456. return *this;
  14457. }
  14458. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
  14459. {
  14460. dstImage = dstImage_;
  14461. return *this;
  14462. }
  14463. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
  14464. {
  14465. dstImageLayout = dstImageLayout_;
  14466. return *this;
  14467. }
  14468. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  14469. {
  14470. regionCount = regionCount_;
  14471. return *this;
  14472. }
  14473. VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  14474. {
  14475. pRegions = pRegions_;
  14476. return *this;
  14477. }
  14478. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14479. CopyBufferToImageInfo2 &
  14480. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  14481. {
  14482. regionCount = static_cast<uint32_t>( regions_.size() );
  14483. pRegions = regions_.data();
  14484. return *this;
  14485. }
  14486. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14487. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14488. operator VkCopyBufferToImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
  14489. {
  14490. return *reinterpret_cast<const VkCopyBufferToImageInfo2 *>( this );
  14491. }
  14492. operator VkCopyBufferToImageInfo2 &() VULKAN_HPP_NOEXCEPT
  14493. {
  14494. return *reinterpret_cast<VkCopyBufferToImageInfo2 *>( this );
  14495. }
  14496. #if defined( VULKAN_HPP_USE_REFLECT )
  14497. # if 14 <= VULKAN_HPP_CPP_VERSION
  14498. auto
  14499. # else
  14500. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14501. const void * const &,
  14502. VULKAN_HPP_NAMESPACE::Buffer const &,
  14503. VULKAN_HPP_NAMESPACE::Image const &,
  14504. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  14505. uint32_t const &,
  14506. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * const &>
  14507. # endif
  14508. reflect() const VULKAN_HPP_NOEXCEPT
  14509. {
  14510. return std::tie( sType, pNext, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
  14511. }
  14512. #endif
  14513. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14514. auto operator<=>( CopyBufferToImageInfo2 const & ) const = default;
  14515. #else
  14516. bool operator==( CopyBufferToImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  14517. {
  14518. # if defined( VULKAN_HPP_USE_REFLECT )
  14519. return this->reflect() == rhs.reflect();
  14520. # else
  14521. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcBuffer == rhs.srcBuffer ) && ( dstImage == rhs.dstImage ) &&
  14522. ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  14523. # endif
  14524. }
  14525. bool operator!=( CopyBufferToImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  14526. {
  14527. return !operator==( rhs );
  14528. }
  14529. #endif
  14530. public:
  14531. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferToImageInfo2;
  14532. const void * pNext = {};
  14533. VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
  14534. VULKAN_HPP_NAMESPACE::Image dstImage = {};
  14535. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  14536. uint32_t regionCount = {};
  14537. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions = {};
  14538. };
  14539. template <>
  14540. struct CppType<StructureType, StructureType::eCopyBufferToImageInfo2>
  14541. {
  14542. using Type = CopyBufferToImageInfo2;
  14543. };
  14544. using CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2;
  14545. struct CopyCommandTransformInfoQCOM
  14546. {
  14547. using NativeType = VkCopyCommandTransformInfoQCOM;
  14548. static const bool allowDuplicate = false;
  14549. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyCommandTransformInfoQCOM;
  14550. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14551. VULKAN_HPP_CONSTEXPR
  14552. CopyCommandTransformInfoQCOM( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  14553. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14554. : pNext( pNext_ )
  14555. , transform( transform_ )
  14556. {
  14557. }
  14558. VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14559. CopyCommandTransformInfoQCOM( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  14560. : CopyCommandTransformInfoQCOM( *reinterpret_cast<CopyCommandTransformInfoQCOM const *>( &rhs ) )
  14561. {
  14562. }
  14563. CopyCommandTransformInfoQCOM & operator=( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14564. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14565. CopyCommandTransformInfoQCOM & operator=( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  14566. {
  14567. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM const *>( &rhs );
  14568. return *this;
  14569. }
  14570. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14571. VULKAN_HPP_CONSTEXPR_14 CopyCommandTransformInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14572. {
  14573. pNext = pNext_;
  14574. return *this;
  14575. }
  14576. VULKAN_HPP_CONSTEXPR_14 CopyCommandTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
  14577. {
  14578. transform = transform_;
  14579. return *this;
  14580. }
  14581. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14582. operator VkCopyCommandTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  14583. {
  14584. return *reinterpret_cast<const VkCopyCommandTransformInfoQCOM *>( this );
  14585. }
  14586. operator VkCopyCommandTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT
  14587. {
  14588. return *reinterpret_cast<VkCopyCommandTransformInfoQCOM *>( this );
  14589. }
  14590. #if defined( VULKAN_HPP_USE_REFLECT )
  14591. # if 14 <= VULKAN_HPP_CPP_VERSION
  14592. auto
  14593. # else
  14594. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &>
  14595. # endif
  14596. reflect() const VULKAN_HPP_NOEXCEPT
  14597. {
  14598. return std::tie( sType, pNext, transform );
  14599. }
  14600. #endif
  14601. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14602. auto operator<=>( CopyCommandTransformInfoQCOM const & ) const = default;
  14603. #else
  14604. bool operator==( CopyCommandTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  14605. {
  14606. # if defined( VULKAN_HPP_USE_REFLECT )
  14607. return this->reflect() == rhs.reflect();
  14608. # else
  14609. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transform == rhs.transform );
  14610. # endif
  14611. }
  14612. bool operator!=( CopyCommandTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  14613. {
  14614. return !operator==( rhs );
  14615. }
  14616. #endif
  14617. public:
  14618. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyCommandTransformInfoQCOM;
  14619. const void * pNext = {};
  14620. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  14621. };
  14622. template <>
  14623. struct CppType<StructureType, StructureType::eCopyCommandTransformInfoQCOM>
  14624. {
  14625. using Type = CopyCommandTransformInfoQCOM;
  14626. };
  14627. struct CopyDescriptorSet
  14628. {
  14629. using NativeType = VkCopyDescriptorSet;
  14630. static const bool allowDuplicate = false;
  14631. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyDescriptorSet;
  14632. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14633. VULKAN_HPP_CONSTEXPR CopyDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ = {},
  14634. uint32_t srcBinding_ = {},
  14635. uint32_t srcArrayElement_ = {},
  14636. VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {},
  14637. uint32_t dstBinding_ = {},
  14638. uint32_t dstArrayElement_ = {},
  14639. uint32_t descriptorCount_ = {},
  14640. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14641. : pNext( pNext_ )
  14642. , srcSet( srcSet_ )
  14643. , srcBinding( srcBinding_ )
  14644. , srcArrayElement( srcArrayElement_ )
  14645. , dstSet( dstSet_ )
  14646. , dstBinding( dstBinding_ )
  14647. , dstArrayElement( dstArrayElement_ )
  14648. , descriptorCount( descriptorCount_ )
  14649. {
  14650. }
  14651. VULKAN_HPP_CONSTEXPR CopyDescriptorSet( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14652. CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT : CopyDescriptorSet( *reinterpret_cast<CopyDescriptorSet const *>( &rhs ) ) {}
  14653. CopyDescriptorSet & operator=( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14654. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14655. CopyDescriptorSet & operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
  14656. {
  14657. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyDescriptorSet const *>( &rhs );
  14658. return *this;
  14659. }
  14660. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14661. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14662. {
  14663. pNext = pNext_;
  14664. return *this;
  14665. }
  14666. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT
  14667. {
  14668. srcSet = srcSet_;
  14669. return *this;
  14670. }
  14671. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT
  14672. {
  14673. srcBinding = srcBinding_;
  14674. return *this;
  14675. }
  14676. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT
  14677. {
  14678. srcArrayElement = srcArrayElement_;
  14679. return *this;
  14680. }
  14681. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
  14682. {
  14683. dstSet = dstSet_;
  14684. return *this;
  14685. }
  14686. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
  14687. {
  14688. dstBinding = dstBinding_;
  14689. return *this;
  14690. }
  14691. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
  14692. {
  14693. dstArrayElement = dstArrayElement_;
  14694. return *this;
  14695. }
  14696. VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
  14697. {
  14698. descriptorCount = descriptorCount_;
  14699. return *this;
  14700. }
  14701. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14702. operator VkCopyDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
  14703. {
  14704. return *reinterpret_cast<const VkCopyDescriptorSet *>( this );
  14705. }
  14706. operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT
  14707. {
  14708. return *reinterpret_cast<VkCopyDescriptorSet *>( this );
  14709. }
  14710. #if defined( VULKAN_HPP_USE_REFLECT )
  14711. # if 14 <= VULKAN_HPP_CPP_VERSION
  14712. auto
  14713. # else
  14714. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14715. const void * const &,
  14716. VULKAN_HPP_NAMESPACE::DescriptorSet const &,
  14717. uint32_t const &,
  14718. uint32_t const &,
  14719. VULKAN_HPP_NAMESPACE::DescriptorSet const &,
  14720. uint32_t const &,
  14721. uint32_t const &,
  14722. uint32_t const &>
  14723. # endif
  14724. reflect() const VULKAN_HPP_NOEXCEPT
  14725. {
  14726. return std::tie( sType, pNext, srcSet, srcBinding, srcArrayElement, dstSet, dstBinding, dstArrayElement, descriptorCount );
  14727. }
  14728. #endif
  14729. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14730. auto operator<=>( CopyDescriptorSet const & ) const = default;
  14731. #else
  14732. bool operator==( CopyDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
  14733. {
  14734. # if defined( VULKAN_HPP_USE_REFLECT )
  14735. return this->reflect() == rhs.reflect();
  14736. # else
  14737. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSet == rhs.srcSet ) && ( srcBinding == rhs.srcBinding ) &&
  14738. ( srcArrayElement == rhs.srcArrayElement ) && ( dstSet == rhs.dstSet ) && ( dstBinding == rhs.dstBinding ) &&
  14739. ( dstArrayElement == rhs.dstArrayElement ) && ( descriptorCount == rhs.descriptorCount );
  14740. # endif
  14741. }
  14742. bool operator!=( CopyDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
  14743. {
  14744. return !operator==( rhs );
  14745. }
  14746. #endif
  14747. public:
  14748. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet;
  14749. const void * pNext = {};
  14750. VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {};
  14751. uint32_t srcBinding = {};
  14752. uint32_t srcArrayElement = {};
  14753. VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
  14754. uint32_t dstBinding = {};
  14755. uint32_t dstArrayElement = {};
  14756. uint32_t descriptorCount = {};
  14757. };
  14758. template <>
  14759. struct CppType<StructureType, StructureType::eCopyDescriptorSet>
  14760. {
  14761. using Type = CopyDescriptorSet;
  14762. };
  14763. struct ImageCopy2
  14764. {
  14765. using NativeType = VkImageCopy2;
  14766. static const bool allowDuplicate = false;
  14767. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCopy2;
  14768. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14769. VULKAN_HPP_CONSTEXPR ImageCopy2( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  14770. VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {},
  14771. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  14772. VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
  14773. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
  14774. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14775. : pNext( pNext_ )
  14776. , srcSubresource( srcSubresource_ )
  14777. , srcOffset( srcOffset_ )
  14778. , dstSubresource( dstSubresource_ )
  14779. , dstOffset( dstOffset_ )
  14780. , extent( extent_ )
  14781. {
  14782. }
  14783. VULKAN_HPP_CONSTEXPR ImageCopy2( ImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14784. ImageCopy2( VkImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT : ImageCopy2( *reinterpret_cast<ImageCopy2 const *>( &rhs ) ) {}
  14785. ImageCopy2 & operator=( ImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14786. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14787. ImageCopy2 & operator=( VkImageCopy2 const & rhs ) VULKAN_HPP_NOEXCEPT
  14788. {
  14789. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy2 const *>( &rhs );
  14790. return *this;
  14791. }
  14792. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14793. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14794. {
  14795. pNext = pNext_;
  14796. return *this;
  14797. }
  14798. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  14799. {
  14800. srcSubresource = srcSubresource_;
  14801. return *this;
  14802. }
  14803. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
  14804. {
  14805. srcOffset = srcOffset_;
  14806. return *this;
  14807. }
  14808. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  14809. {
  14810. dstSubresource = dstSubresource_;
  14811. return *this;
  14812. }
  14813. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
  14814. {
  14815. dstOffset = dstOffset_;
  14816. return *this;
  14817. }
  14818. VULKAN_HPP_CONSTEXPR_14 ImageCopy2 & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  14819. {
  14820. extent = extent_;
  14821. return *this;
  14822. }
  14823. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14824. operator VkImageCopy2 const &() const VULKAN_HPP_NOEXCEPT
  14825. {
  14826. return *reinterpret_cast<const VkImageCopy2 *>( this );
  14827. }
  14828. operator VkImageCopy2 &() VULKAN_HPP_NOEXCEPT
  14829. {
  14830. return *reinterpret_cast<VkImageCopy2 *>( this );
  14831. }
  14832. #if defined( VULKAN_HPP_USE_REFLECT )
  14833. # if 14 <= VULKAN_HPP_CPP_VERSION
  14834. auto
  14835. # else
  14836. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14837. const void * const &,
  14838. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  14839. VULKAN_HPP_NAMESPACE::Offset3D const &,
  14840. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  14841. VULKAN_HPP_NAMESPACE::Offset3D const &,
  14842. VULKAN_HPP_NAMESPACE::Extent3D const &>
  14843. # endif
  14844. reflect() const VULKAN_HPP_NOEXCEPT
  14845. {
  14846. return std::tie( sType, pNext, srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
  14847. }
  14848. #endif
  14849. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  14850. auto operator<=>( ImageCopy2 const & ) const = default;
  14851. #else
  14852. bool operator==( ImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  14853. {
  14854. # if defined( VULKAN_HPP_USE_REFLECT )
  14855. return this->reflect() == rhs.reflect();
  14856. # else
  14857. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubresource == rhs.srcSubresource ) && ( srcOffset == rhs.srcOffset ) &&
  14858. ( dstSubresource == rhs.dstSubresource ) && ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent );
  14859. # endif
  14860. }
  14861. bool operator!=( ImageCopy2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  14862. {
  14863. return !operator==( rhs );
  14864. }
  14865. #endif
  14866. public:
  14867. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCopy2;
  14868. const void * pNext = {};
  14869. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  14870. VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
  14871. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  14872. VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
  14873. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  14874. };
  14875. template <>
  14876. struct CppType<StructureType, StructureType::eImageCopy2>
  14877. {
  14878. using Type = ImageCopy2;
  14879. };
  14880. using ImageCopy2KHR = ImageCopy2;
  14881. struct CopyImageInfo2
  14882. {
  14883. using NativeType = VkCopyImageInfo2;
  14884. static const bool allowDuplicate = false;
  14885. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageInfo2;
  14886. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  14887. VULKAN_HPP_CONSTEXPR CopyImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_ = {},
  14888. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  14889. VULKAN_HPP_NAMESPACE::Image dstImage_ = {},
  14890. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  14891. uint32_t regionCount_ = {},
  14892. const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ = {},
  14893. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  14894. : pNext( pNext_ )
  14895. , srcImage( srcImage_ )
  14896. , srcImageLayout( srcImageLayout_ )
  14897. , dstImage( dstImage_ )
  14898. , dstImageLayout( dstImageLayout_ )
  14899. , regionCount( regionCount_ )
  14900. , pRegions( pRegions_ )
  14901. {
  14902. }
  14903. VULKAN_HPP_CONSTEXPR CopyImageInfo2( CopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14904. CopyImageInfo2( VkCopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : CopyImageInfo2( *reinterpret_cast<CopyImageInfo2 const *>( &rhs ) ) {}
  14905. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14906. CopyImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_,
  14907. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_,
  14908. VULKAN_HPP_NAMESPACE::Image dstImage_,
  14909. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_,
  14910. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_,
  14911. const void * pNext_ = nullptr )
  14912. : pNext( pNext_ )
  14913. , srcImage( srcImage_ )
  14914. , srcImageLayout( srcImageLayout_ )
  14915. , dstImage( dstImage_ )
  14916. , dstImageLayout( dstImageLayout_ )
  14917. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  14918. , pRegions( regions_.data() )
  14919. {
  14920. }
  14921. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14922. CopyImageInfo2 & operator=( CopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  14923. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  14924. CopyImageInfo2 & operator=( VkCopyImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  14925. {
  14926. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageInfo2 const *>( &rhs );
  14927. return *this;
  14928. }
  14929. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  14930. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  14931. {
  14932. pNext = pNext_;
  14933. return *this;
  14934. }
  14935. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
  14936. {
  14937. srcImage = srcImage_;
  14938. return *this;
  14939. }
  14940. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
  14941. {
  14942. srcImageLayout = srcImageLayout_;
  14943. return *this;
  14944. }
  14945. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
  14946. {
  14947. dstImage = dstImage_;
  14948. return *this;
  14949. }
  14950. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
  14951. {
  14952. dstImageLayout = dstImageLayout_;
  14953. return *this;
  14954. }
  14955. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  14956. {
  14957. regionCount = regionCount_;
  14958. return *this;
  14959. }
  14960. VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  14961. {
  14962. pRegions = pRegions_;
  14963. return *this;
  14964. }
  14965. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  14966. CopyImageInfo2 & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  14967. {
  14968. regionCount = static_cast<uint32_t>( regions_.size() );
  14969. pRegions = regions_.data();
  14970. return *this;
  14971. }
  14972. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14973. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  14974. operator VkCopyImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
  14975. {
  14976. return *reinterpret_cast<const VkCopyImageInfo2 *>( this );
  14977. }
  14978. operator VkCopyImageInfo2 &() VULKAN_HPP_NOEXCEPT
  14979. {
  14980. return *reinterpret_cast<VkCopyImageInfo2 *>( this );
  14981. }
  14982. #if defined( VULKAN_HPP_USE_REFLECT )
  14983. # if 14 <= VULKAN_HPP_CPP_VERSION
  14984. auto
  14985. # else
  14986. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  14987. const void * const &,
  14988. VULKAN_HPP_NAMESPACE::Image const &,
  14989. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  14990. VULKAN_HPP_NAMESPACE::Image const &,
  14991. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  14992. uint32_t const &,
  14993. const VULKAN_HPP_NAMESPACE::ImageCopy2 * const &>
  14994. # endif
  14995. reflect() const VULKAN_HPP_NOEXCEPT
  14996. {
  14997. return std::tie( sType, pNext, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
  14998. }
  14999. #endif
  15000. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15001. auto operator<=>( CopyImageInfo2 const & ) const = default;
  15002. #else
  15003. bool operator==( CopyImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  15004. {
  15005. # if defined( VULKAN_HPP_USE_REFLECT )
  15006. return this->reflect() == rhs.reflect();
  15007. # else
  15008. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && ( srcImageLayout == rhs.srcImageLayout ) &&
  15009. ( dstImage == rhs.dstImage ) && ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  15010. # endif
  15011. }
  15012. bool operator!=( CopyImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  15013. {
  15014. return !operator==( rhs );
  15015. }
  15016. #endif
  15017. public:
  15018. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageInfo2;
  15019. const void * pNext = {};
  15020. VULKAN_HPP_NAMESPACE::Image srcImage = {};
  15021. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  15022. VULKAN_HPP_NAMESPACE::Image dstImage = {};
  15023. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  15024. uint32_t regionCount = {};
  15025. const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions = {};
  15026. };
  15027. template <>
  15028. struct CppType<StructureType, StructureType::eCopyImageInfo2>
  15029. {
  15030. using Type = CopyImageInfo2;
  15031. };
  15032. using CopyImageInfo2KHR = CopyImageInfo2;
  15033. struct CopyImageToBufferInfo2
  15034. {
  15035. using NativeType = VkCopyImageToBufferInfo2;
  15036. static const bool allowDuplicate = false;
  15037. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToBufferInfo2;
  15038. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15039. VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_ = {},
  15040. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  15041. VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {},
  15042. uint32_t regionCount_ = {},
  15043. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ = {},
  15044. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15045. : pNext( pNext_ )
  15046. , srcImage( srcImage_ )
  15047. , srcImageLayout( srcImageLayout_ )
  15048. , dstBuffer( dstBuffer_ )
  15049. , regionCount( regionCount_ )
  15050. , pRegions( pRegions_ )
  15051. {
  15052. }
  15053. VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2( CopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15054. CopyImageToBufferInfo2( VkCopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  15055. : CopyImageToBufferInfo2( *reinterpret_cast<CopyImageToBufferInfo2 const *>( &rhs ) )
  15056. {
  15057. }
  15058. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  15059. CopyImageToBufferInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_,
  15060. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_,
  15061. VULKAN_HPP_NAMESPACE::Buffer dstBuffer_,
  15062. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_,
  15063. const void * pNext_ = nullptr )
  15064. : pNext( pNext_ )
  15065. , srcImage( srcImage_ )
  15066. , srcImageLayout( srcImageLayout_ )
  15067. , dstBuffer( dstBuffer_ )
  15068. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  15069. , pRegions( regions_.data() )
  15070. {
  15071. }
  15072. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15073. CopyImageToBufferInfo2 & operator=( CopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15074. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15075. CopyImageToBufferInfo2 & operator=( VkCopyImageToBufferInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  15076. {
  15077. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 const *>( &rhs );
  15078. return *this;
  15079. }
  15080. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15081. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15082. {
  15083. pNext = pNext_;
  15084. return *this;
  15085. }
  15086. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
  15087. {
  15088. srcImage = srcImage_;
  15089. return *this;
  15090. }
  15091. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
  15092. {
  15093. srcImageLayout = srcImageLayout_;
  15094. return *this;
  15095. }
  15096. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
  15097. {
  15098. dstBuffer = dstBuffer_;
  15099. return *this;
  15100. }
  15101. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  15102. {
  15103. regionCount = regionCount_;
  15104. return *this;
  15105. }
  15106. VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  15107. {
  15108. pRegions = pRegions_;
  15109. return *this;
  15110. }
  15111. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  15112. CopyImageToBufferInfo2 &
  15113. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  15114. {
  15115. regionCount = static_cast<uint32_t>( regions_.size() );
  15116. pRegions = regions_.data();
  15117. return *this;
  15118. }
  15119. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15120. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15121. operator VkCopyImageToBufferInfo2 const &() const VULKAN_HPP_NOEXCEPT
  15122. {
  15123. return *reinterpret_cast<const VkCopyImageToBufferInfo2 *>( this );
  15124. }
  15125. operator VkCopyImageToBufferInfo2 &() VULKAN_HPP_NOEXCEPT
  15126. {
  15127. return *reinterpret_cast<VkCopyImageToBufferInfo2 *>( this );
  15128. }
  15129. #if defined( VULKAN_HPP_USE_REFLECT )
  15130. # if 14 <= VULKAN_HPP_CPP_VERSION
  15131. auto
  15132. # else
  15133. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  15134. const void * const &,
  15135. VULKAN_HPP_NAMESPACE::Image const &,
  15136. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  15137. VULKAN_HPP_NAMESPACE::Buffer const &,
  15138. uint32_t const &,
  15139. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * const &>
  15140. # endif
  15141. reflect() const VULKAN_HPP_NOEXCEPT
  15142. {
  15143. return std::tie( sType, pNext, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
  15144. }
  15145. #endif
  15146. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15147. auto operator<=>( CopyImageToBufferInfo2 const & ) const = default;
  15148. #else
  15149. bool operator==( CopyImageToBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  15150. {
  15151. # if defined( VULKAN_HPP_USE_REFLECT )
  15152. return this->reflect() == rhs.reflect();
  15153. # else
  15154. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && ( srcImageLayout == rhs.srcImageLayout ) &&
  15155. ( dstBuffer == rhs.dstBuffer ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  15156. # endif
  15157. }
  15158. bool operator!=( CopyImageToBufferInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  15159. {
  15160. return !operator==( rhs );
  15161. }
  15162. #endif
  15163. public:
  15164. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToBufferInfo2;
  15165. const void * pNext = {};
  15166. VULKAN_HPP_NAMESPACE::Image srcImage = {};
  15167. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  15168. VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
  15169. uint32_t regionCount = {};
  15170. const VULKAN_HPP_NAMESPACE::BufferImageCopy2 * pRegions = {};
  15171. };
  15172. template <>
  15173. struct CppType<StructureType, StructureType::eCopyImageToBufferInfo2>
  15174. {
  15175. using Type = CopyImageToBufferInfo2;
  15176. };
  15177. using CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2;
  15178. struct CopyImageToImageInfoEXT
  15179. {
  15180. using NativeType = VkCopyImageToImageInfoEXT;
  15181. static const bool allowDuplicate = false;
  15182. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToImageInfoEXT;
  15183. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15184. VULKAN_HPP_CONSTEXPR CopyImageToImageInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ = {},
  15185. VULKAN_HPP_NAMESPACE::Image srcImage_ = {},
  15186. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  15187. VULKAN_HPP_NAMESPACE::Image dstImage_ = {},
  15188. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  15189. uint32_t regionCount_ = {},
  15190. const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ = {},
  15191. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15192. : pNext( pNext_ )
  15193. , flags( flags_ )
  15194. , srcImage( srcImage_ )
  15195. , srcImageLayout( srcImageLayout_ )
  15196. , dstImage( dstImage_ )
  15197. , dstImageLayout( dstImageLayout_ )
  15198. , regionCount( regionCount_ )
  15199. , pRegions( pRegions_ )
  15200. {
  15201. }
  15202. VULKAN_HPP_CONSTEXPR CopyImageToImageInfoEXT( CopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15203. CopyImageToImageInfoEXT( VkCopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15204. : CopyImageToImageInfoEXT( *reinterpret_cast<CopyImageToImageInfoEXT const *>( &rhs ) )
  15205. {
  15206. }
  15207. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  15208. CopyImageToImageInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_,
  15209. VULKAN_HPP_NAMESPACE::Image srcImage_,
  15210. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_,
  15211. VULKAN_HPP_NAMESPACE::Image dstImage_,
  15212. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_,
  15213. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_,
  15214. const void * pNext_ = nullptr )
  15215. : pNext( pNext_ )
  15216. , flags( flags_ )
  15217. , srcImage( srcImage_ )
  15218. , srcImageLayout( srcImageLayout_ )
  15219. , dstImage( dstImage_ )
  15220. , dstImageLayout( dstImageLayout_ )
  15221. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  15222. , pRegions( regions_.data() )
  15223. {
  15224. }
  15225. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15226. CopyImageToImageInfoEXT & operator=( CopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15227. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15228. CopyImageToImageInfoEXT & operator=( VkCopyImageToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15229. {
  15230. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT const *>( &rhs );
  15231. return *this;
  15232. }
  15233. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15234. VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15235. {
  15236. pNext = pNext_;
  15237. return *this;
  15238. }
  15239. VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  15240. {
  15241. flags = flags_;
  15242. return *this;
  15243. }
  15244. VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
  15245. {
  15246. srcImage = srcImage_;
  15247. return *this;
  15248. }
  15249. VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
  15250. {
  15251. srcImageLayout = srcImageLayout_;
  15252. return *this;
  15253. }
  15254. VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
  15255. {
  15256. dstImage = dstImage_;
  15257. return *this;
  15258. }
  15259. VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
  15260. {
  15261. dstImageLayout = dstImageLayout_;
  15262. return *this;
  15263. }
  15264. VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  15265. {
  15266. regionCount = regionCount_;
  15267. return *this;
  15268. }
  15269. VULKAN_HPP_CONSTEXPR_14 CopyImageToImageInfoEXT & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  15270. {
  15271. pRegions = pRegions_;
  15272. return *this;
  15273. }
  15274. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  15275. CopyImageToImageInfoEXT &
  15276. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageCopy2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  15277. {
  15278. regionCount = static_cast<uint32_t>( regions_.size() );
  15279. pRegions = regions_.data();
  15280. return *this;
  15281. }
  15282. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15283. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15284. operator VkCopyImageToImageInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  15285. {
  15286. return *reinterpret_cast<const VkCopyImageToImageInfoEXT *>( this );
  15287. }
  15288. operator VkCopyImageToImageInfoEXT &() VULKAN_HPP_NOEXCEPT
  15289. {
  15290. return *reinterpret_cast<VkCopyImageToImageInfoEXT *>( this );
  15291. }
  15292. #if defined( VULKAN_HPP_USE_REFLECT )
  15293. # if 14 <= VULKAN_HPP_CPP_VERSION
  15294. auto
  15295. # else
  15296. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  15297. const void * const &,
  15298. VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT const &,
  15299. VULKAN_HPP_NAMESPACE::Image const &,
  15300. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  15301. VULKAN_HPP_NAMESPACE::Image const &,
  15302. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  15303. uint32_t const &,
  15304. const VULKAN_HPP_NAMESPACE::ImageCopy2 * const &>
  15305. # endif
  15306. reflect() const VULKAN_HPP_NOEXCEPT
  15307. {
  15308. return std::tie( sType, pNext, flags, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
  15309. }
  15310. #endif
  15311. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15312. auto operator<=>( CopyImageToImageInfoEXT const & ) const = default;
  15313. #else
  15314. bool operator==( CopyImageToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15315. {
  15316. # if defined( VULKAN_HPP_USE_REFLECT )
  15317. return this->reflect() == rhs.reflect();
  15318. # else
  15319. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( srcImage == rhs.srcImage ) &&
  15320. ( srcImageLayout == rhs.srcImageLayout ) && ( dstImage == rhs.dstImage ) && ( dstImageLayout == rhs.dstImageLayout ) &&
  15321. ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  15322. # endif
  15323. }
  15324. bool operator!=( CopyImageToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15325. {
  15326. return !operator==( rhs );
  15327. }
  15328. #endif
  15329. public:
  15330. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToImageInfoEXT;
  15331. const void * pNext = {};
  15332. VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags = {};
  15333. VULKAN_HPP_NAMESPACE::Image srcImage = {};
  15334. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  15335. VULKAN_HPP_NAMESPACE::Image dstImage = {};
  15336. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  15337. uint32_t regionCount = {};
  15338. const VULKAN_HPP_NAMESPACE::ImageCopy2 * pRegions = {};
  15339. };
  15340. template <>
  15341. struct CppType<StructureType, StructureType::eCopyImageToImageInfoEXT>
  15342. {
  15343. using Type = CopyImageToImageInfoEXT;
  15344. };
  15345. struct ImageToMemoryCopyEXT
  15346. {
  15347. using NativeType = VkImageToMemoryCopyEXT;
  15348. static const bool allowDuplicate = false;
  15349. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageToMemoryCopyEXT;
  15350. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15351. VULKAN_HPP_CONSTEXPR ImageToMemoryCopyEXT( void * pHostPointer_ = {},
  15352. uint32_t memoryRowLength_ = {},
  15353. uint32_t memoryImageHeight_ = {},
  15354. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {},
  15355. VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
  15356. VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {},
  15357. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15358. : pNext( pNext_ )
  15359. , pHostPointer( pHostPointer_ )
  15360. , memoryRowLength( memoryRowLength_ )
  15361. , memoryImageHeight( memoryImageHeight_ )
  15362. , imageSubresource( imageSubresource_ )
  15363. , imageOffset( imageOffset_ )
  15364. , imageExtent( imageExtent_ )
  15365. {
  15366. }
  15367. VULKAN_HPP_CONSTEXPR ImageToMemoryCopyEXT( ImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15368. ImageToMemoryCopyEXT( VkImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15369. : ImageToMemoryCopyEXT( *reinterpret_cast<ImageToMemoryCopyEXT const *>( &rhs ) )
  15370. {
  15371. }
  15372. ImageToMemoryCopyEXT & operator=( ImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15373. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15374. ImageToMemoryCopyEXT & operator=( VkImageToMemoryCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15375. {
  15376. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT const *>( &rhs );
  15377. return *this;
  15378. }
  15379. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15380. VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15381. {
  15382. pNext = pNext_;
  15383. return *this;
  15384. }
  15385. VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setPHostPointer( void * pHostPointer_ ) VULKAN_HPP_NOEXCEPT
  15386. {
  15387. pHostPointer = pHostPointer_;
  15388. return *this;
  15389. }
  15390. VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setMemoryRowLength( uint32_t memoryRowLength_ ) VULKAN_HPP_NOEXCEPT
  15391. {
  15392. memoryRowLength = memoryRowLength_;
  15393. return *this;
  15394. }
  15395. VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setMemoryImageHeight( uint32_t memoryImageHeight_ ) VULKAN_HPP_NOEXCEPT
  15396. {
  15397. memoryImageHeight = memoryImageHeight_;
  15398. return *this;
  15399. }
  15400. VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT &
  15401. setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
  15402. {
  15403. imageSubresource = imageSubresource_;
  15404. return *this;
  15405. }
  15406. VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
  15407. {
  15408. imageOffset = imageOffset_;
  15409. return *this;
  15410. }
  15411. VULKAN_HPP_CONSTEXPR_14 ImageToMemoryCopyEXT & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
  15412. {
  15413. imageExtent = imageExtent_;
  15414. return *this;
  15415. }
  15416. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15417. operator VkImageToMemoryCopyEXT const &() const VULKAN_HPP_NOEXCEPT
  15418. {
  15419. return *reinterpret_cast<const VkImageToMemoryCopyEXT *>( this );
  15420. }
  15421. operator VkImageToMemoryCopyEXT &() VULKAN_HPP_NOEXCEPT
  15422. {
  15423. return *reinterpret_cast<VkImageToMemoryCopyEXT *>( this );
  15424. }
  15425. #if defined( VULKAN_HPP_USE_REFLECT )
  15426. # if 14 <= VULKAN_HPP_CPP_VERSION
  15427. auto
  15428. # else
  15429. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  15430. const void * const &,
  15431. void * const &,
  15432. uint32_t const &,
  15433. uint32_t const &,
  15434. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  15435. VULKAN_HPP_NAMESPACE::Offset3D const &,
  15436. VULKAN_HPP_NAMESPACE::Extent3D const &>
  15437. # endif
  15438. reflect() const VULKAN_HPP_NOEXCEPT
  15439. {
  15440. return std::tie( sType, pNext, pHostPointer, memoryRowLength, memoryImageHeight, imageSubresource, imageOffset, imageExtent );
  15441. }
  15442. #endif
  15443. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15444. auto operator<=>( ImageToMemoryCopyEXT const & ) const = default;
  15445. #else
  15446. bool operator==( ImageToMemoryCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15447. {
  15448. # if defined( VULKAN_HPP_USE_REFLECT )
  15449. return this->reflect() == rhs.reflect();
  15450. # else
  15451. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pHostPointer == rhs.pHostPointer ) && ( memoryRowLength == rhs.memoryRowLength ) &&
  15452. ( memoryImageHeight == rhs.memoryImageHeight ) && ( imageSubresource == rhs.imageSubresource ) && ( imageOffset == rhs.imageOffset ) &&
  15453. ( imageExtent == rhs.imageExtent );
  15454. # endif
  15455. }
  15456. bool operator!=( ImageToMemoryCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15457. {
  15458. return !operator==( rhs );
  15459. }
  15460. #endif
  15461. public:
  15462. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageToMemoryCopyEXT;
  15463. const void * pNext = {};
  15464. void * pHostPointer = {};
  15465. uint32_t memoryRowLength = {};
  15466. uint32_t memoryImageHeight = {};
  15467. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
  15468. VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
  15469. VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
  15470. };
  15471. template <>
  15472. struct CppType<StructureType, StructureType::eImageToMemoryCopyEXT>
  15473. {
  15474. using Type = ImageToMemoryCopyEXT;
  15475. };
  15476. struct CopyImageToMemoryInfoEXT
  15477. {
  15478. using NativeType = VkCopyImageToMemoryInfoEXT;
  15479. static const bool allowDuplicate = false;
  15480. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToMemoryInfoEXT;
  15481. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15482. VULKAN_HPP_CONSTEXPR CopyImageToMemoryInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ = {},
  15483. VULKAN_HPP_NAMESPACE::Image srcImage_ = {},
  15484. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  15485. uint32_t regionCount_ = {},
  15486. const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * pRegions_ = {},
  15487. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15488. : pNext( pNext_ )
  15489. , flags( flags_ )
  15490. , srcImage( srcImage_ )
  15491. , srcImageLayout( srcImageLayout_ )
  15492. , regionCount( regionCount_ )
  15493. , pRegions( pRegions_ )
  15494. {
  15495. }
  15496. VULKAN_HPP_CONSTEXPR CopyImageToMemoryInfoEXT( CopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15497. CopyImageToMemoryInfoEXT( VkCopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15498. : CopyImageToMemoryInfoEXT( *reinterpret_cast<CopyImageToMemoryInfoEXT const *>( &rhs ) )
  15499. {
  15500. }
  15501. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  15502. CopyImageToMemoryInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_,
  15503. VULKAN_HPP_NAMESPACE::Image srcImage_,
  15504. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_,
  15505. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT> const & regions_,
  15506. const void * pNext_ = nullptr )
  15507. : pNext( pNext_ )
  15508. , flags( flags_ )
  15509. , srcImage( srcImage_ )
  15510. , srcImageLayout( srcImageLayout_ )
  15511. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  15512. , pRegions( regions_.data() )
  15513. {
  15514. }
  15515. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15516. CopyImageToMemoryInfoEXT & operator=( CopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15517. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15518. CopyImageToMemoryInfoEXT & operator=( VkCopyImageToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15519. {
  15520. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT const *>( &rhs );
  15521. return *this;
  15522. }
  15523. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15524. VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15525. {
  15526. pNext = pNext_;
  15527. return *this;
  15528. }
  15529. VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  15530. {
  15531. flags = flags_;
  15532. return *this;
  15533. }
  15534. VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
  15535. {
  15536. srcImage = srcImage_;
  15537. return *this;
  15538. }
  15539. VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
  15540. {
  15541. srcImageLayout = srcImageLayout_;
  15542. return *this;
  15543. }
  15544. VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  15545. {
  15546. regionCount = regionCount_;
  15547. return *this;
  15548. }
  15549. VULKAN_HPP_CONSTEXPR_14 CopyImageToMemoryInfoEXT & setPRegions( const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * pRegions_ ) VULKAN_HPP_NOEXCEPT
  15550. {
  15551. pRegions = pRegions_;
  15552. return *this;
  15553. }
  15554. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  15555. CopyImageToMemoryInfoEXT &
  15556. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT> const & regions_ ) VULKAN_HPP_NOEXCEPT
  15557. {
  15558. regionCount = static_cast<uint32_t>( regions_.size() );
  15559. pRegions = regions_.data();
  15560. return *this;
  15561. }
  15562. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  15563. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15564. operator VkCopyImageToMemoryInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  15565. {
  15566. return *reinterpret_cast<const VkCopyImageToMemoryInfoEXT *>( this );
  15567. }
  15568. operator VkCopyImageToMemoryInfoEXT &() VULKAN_HPP_NOEXCEPT
  15569. {
  15570. return *reinterpret_cast<VkCopyImageToMemoryInfoEXT *>( this );
  15571. }
  15572. #if defined( VULKAN_HPP_USE_REFLECT )
  15573. # if 14 <= VULKAN_HPP_CPP_VERSION
  15574. auto
  15575. # else
  15576. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  15577. const void * const &,
  15578. VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT const &,
  15579. VULKAN_HPP_NAMESPACE::Image const &,
  15580. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  15581. uint32_t const &,
  15582. const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * const &>
  15583. # endif
  15584. reflect() const VULKAN_HPP_NOEXCEPT
  15585. {
  15586. return std::tie( sType, pNext, flags, srcImage, srcImageLayout, regionCount, pRegions );
  15587. }
  15588. #endif
  15589. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15590. auto operator<=>( CopyImageToMemoryInfoEXT const & ) const = default;
  15591. #else
  15592. bool operator==( CopyImageToMemoryInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15593. {
  15594. # if defined( VULKAN_HPP_USE_REFLECT )
  15595. return this->reflect() == rhs.reflect();
  15596. # else
  15597. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( srcImage == rhs.srcImage ) &&
  15598. ( srcImageLayout == rhs.srcImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  15599. # endif
  15600. }
  15601. bool operator!=( CopyImageToMemoryInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  15602. {
  15603. return !operator==( rhs );
  15604. }
  15605. #endif
  15606. public:
  15607. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToMemoryInfoEXT;
  15608. const void * pNext = {};
  15609. VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags = {};
  15610. VULKAN_HPP_NAMESPACE::Image srcImage = {};
  15611. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  15612. uint32_t regionCount = {};
  15613. const VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT * pRegions = {};
  15614. };
  15615. template <>
  15616. struct CppType<StructureType, StructureType::eCopyImageToMemoryInfoEXT>
  15617. {
  15618. using Type = CopyImageToMemoryInfoEXT;
  15619. };
  15620. struct CopyMemoryIndirectCommandNV
  15621. {
  15622. using NativeType = VkCopyMemoryIndirectCommandNV;
  15623. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15624. VULKAN_HPP_CONSTEXPR CopyMemoryIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ = {},
  15625. VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress_ = {},
  15626. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
  15627. : srcAddress( srcAddress_ )
  15628. , dstAddress( dstAddress_ )
  15629. , size( size_ )
  15630. {
  15631. }
  15632. VULKAN_HPP_CONSTEXPR CopyMemoryIndirectCommandNV( CopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15633. CopyMemoryIndirectCommandNV( VkCopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  15634. : CopyMemoryIndirectCommandNV( *reinterpret_cast<CopyMemoryIndirectCommandNV const *>( &rhs ) )
  15635. {
  15636. }
  15637. CopyMemoryIndirectCommandNV & operator=( CopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15638. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15639. CopyMemoryIndirectCommandNV & operator=( VkCopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  15640. {
  15641. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV const *>( &rhs );
  15642. return *this;
  15643. }
  15644. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15645. VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandNV & setSrcAddress( VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ ) VULKAN_HPP_NOEXCEPT
  15646. {
  15647. srcAddress = srcAddress_;
  15648. return *this;
  15649. }
  15650. VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandNV & setDstAddress( VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress_ ) VULKAN_HPP_NOEXCEPT
  15651. {
  15652. dstAddress = dstAddress_;
  15653. return *this;
  15654. }
  15655. VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandNV & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  15656. {
  15657. size = size_;
  15658. return *this;
  15659. }
  15660. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15661. operator VkCopyMemoryIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  15662. {
  15663. return *reinterpret_cast<const VkCopyMemoryIndirectCommandNV *>( this );
  15664. }
  15665. operator VkCopyMemoryIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  15666. {
  15667. return *reinterpret_cast<VkCopyMemoryIndirectCommandNV *>( this );
  15668. }
  15669. #if defined( VULKAN_HPP_USE_REFLECT )
  15670. # if 14 <= VULKAN_HPP_CPP_VERSION
  15671. auto
  15672. # else
  15673. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  15674. # endif
  15675. reflect() const VULKAN_HPP_NOEXCEPT
  15676. {
  15677. return std::tie( srcAddress, dstAddress, size );
  15678. }
  15679. #endif
  15680. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15681. auto operator<=>( CopyMemoryIndirectCommandNV const & ) const = default;
  15682. #else
  15683. bool operator==( CopyMemoryIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  15684. {
  15685. # if defined( VULKAN_HPP_USE_REFLECT )
  15686. return this->reflect() == rhs.reflect();
  15687. # else
  15688. return ( srcAddress == rhs.srcAddress ) && ( dstAddress == rhs.dstAddress ) && ( size == rhs.size );
  15689. # endif
  15690. }
  15691. bool operator!=( CopyMemoryIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  15692. {
  15693. return !operator==( rhs );
  15694. }
  15695. #endif
  15696. public:
  15697. VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress = {};
  15698. VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress = {};
  15699. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  15700. };
  15701. struct CopyMemoryToAccelerationStructureInfoKHR
  15702. {
  15703. using NativeType = VkCopyMemoryToAccelerationStructureInfoKHR;
  15704. static const bool allowDuplicate = false;
  15705. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
  15706. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15707. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR(
  15708. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {},
  15709. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {},
  15710. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone,
  15711. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15712. : pNext( pNext_ )
  15713. , src( src_ )
  15714. , dst( dst_ )
  15715. , mode( mode_ )
  15716. {
  15717. }
  15718. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15719. CopyMemoryToAccelerationStructureInfoKHR( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  15720. : CopyMemoryToAccelerationStructureInfoKHR( *reinterpret_cast<CopyMemoryToAccelerationStructureInfoKHR const *>( &rhs ) )
  15721. {
  15722. }
  15723. CopyMemoryToAccelerationStructureInfoKHR & operator=( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15724. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15725. CopyMemoryToAccelerationStructureInfoKHR & operator=( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  15726. {
  15727. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR const *>( &rhs );
  15728. return *this;
  15729. }
  15730. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15731. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15732. {
  15733. pNext = pNext_;
  15734. return *this;
  15735. }
  15736. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR &
  15737. setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
  15738. {
  15739. src = src_;
  15740. return *this;
  15741. }
  15742. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT
  15743. {
  15744. dst = dst_;
  15745. return *this;
  15746. }
  15747. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToAccelerationStructureInfoKHR &
  15748. setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
  15749. {
  15750. mode = mode_;
  15751. return *this;
  15752. }
  15753. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15754. operator VkCopyMemoryToAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  15755. {
  15756. return *reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( this );
  15757. }
  15758. operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT
  15759. {
  15760. return *reinterpret_cast<VkCopyMemoryToAccelerationStructureInfoKHR *>( this );
  15761. }
  15762. #if defined( VULKAN_HPP_USE_REFLECT )
  15763. # if 14 <= VULKAN_HPP_CPP_VERSION
  15764. auto
  15765. # else
  15766. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  15767. const void * const &,
  15768. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  15769. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &,
  15770. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR const &>
  15771. # endif
  15772. reflect() const VULKAN_HPP_NOEXCEPT
  15773. {
  15774. return std::tie( sType, pNext, src, dst, mode );
  15775. }
  15776. #endif
  15777. public:
  15778. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR;
  15779. const void * pNext = {};
  15780. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {};
  15781. VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {};
  15782. VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone;
  15783. };
  15784. template <>
  15785. struct CppType<StructureType, StructureType::eCopyMemoryToAccelerationStructureInfoKHR>
  15786. {
  15787. using Type = CopyMemoryToAccelerationStructureInfoKHR;
  15788. };
  15789. struct CopyMemoryToImageIndirectCommandNV
  15790. {
  15791. using NativeType = VkCopyMemoryToImageIndirectCommandNV;
  15792. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15793. VULKAN_HPP_CONSTEXPR CopyMemoryToImageIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ = {},
  15794. uint32_t bufferRowLength_ = {},
  15795. uint32_t bufferImageHeight_ = {},
  15796. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {},
  15797. VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
  15798. VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT
  15799. : srcAddress( srcAddress_ )
  15800. , bufferRowLength( bufferRowLength_ )
  15801. , bufferImageHeight( bufferImageHeight_ )
  15802. , imageSubresource( imageSubresource_ )
  15803. , imageOffset( imageOffset_ )
  15804. , imageExtent( imageExtent_ )
  15805. {
  15806. }
  15807. VULKAN_HPP_CONSTEXPR CopyMemoryToImageIndirectCommandNV( CopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15808. CopyMemoryToImageIndirectCommandNV( VkCopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  15809. : CopyMemoryToImageIndirectCommandNV( *reinterpret_cast<CopyMemoryToImageIndirectCommandNV const *>( &rhs ) )
  15810. {
  15811. }
  15812. CopyMemoryToImageIndirectCommandNV & operator=( CopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15813. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15814. CopyMemoryToImageIndirectCommandNV & operator=( VkCopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  15815. {
  15816. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV const *>( &rhs );
  15817. return *this;
  15818. }
  15819. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15820. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setSrcAddress( VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ ) VULKAN_HPP_NOEXCEPT
  15821. {
  15822. srcAddress = srcAddress_;
  15823. return *this;
  15824. }
  15825. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT
  15826. {
  15827. bufferRowLength = bufferRowLength_;
  15828. return *this;
  15829. }
  15830. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT
  15831. {
  15832. bufferImageHeight = bufferImageHeight_;
  15833. return *this;
  15834. }
  15835. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV &
  15836. setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
  15837. {
  15838. imageSubresource = imageSubresource_;
  15839. return *this;
  15840. }
  15841. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
  15842. {
  15843. imageOffset = imageOffset_;
  15844. return *this;
  15845. }
  15846. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
  15847. {
  15848. imageExtent = imageExtent_;
  15849. return *this;
  15850. }
  15851. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15852. operator VkCopyMemoryToImageIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  15853. {
  15854. return *reinterpret_cast<const VkCopyMemoryToImageIndirectCommandNV *>( this );
  15855. }
  15856. operator VkCopyMemoryToImageIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  15857. {
  15858. return *reinterpret_cast<VkCopyMemoryToImageIndirectCommandNV *>( this );
  15859. }
  15860. #if defined( VULKAN_HPP_USE_REFLECT )
  15861. # if 14 <= VULKAN_HPP_CPP_VERSION
  15862. auto
  15863. # else
  15864. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  15865. uint32_t const &,
  15866. uint32_t const &,
  15867. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  15868. VULKAN_HPP_NAMESPACE::Offset3D const &,
  15869. VULKAN_HPP_NAMESPACE::Extent3D const &>
  15870. # endif
  15871. reflect() const VULKAN_HPP_NOEXCEPT
  15872. {
  15873. return std::tie( srcAddress, bufferRowLength, bufferImageHeight, imageSubresource, imageOffset, imageExtent );
  15874. }
  15875. #endif
  15876. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  15877. auto operator<=>( CopyMemoryToImageIndirectCommandNV const & ) const = default;
  15878. #else
  15879. bool operator==( CopyMemoryToImageIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  15880. {
  15881. # if defined( VULKAN_HPP_USE_REFLECT )
  15882. return this->reflect() == rhs.reflect();
  15883. # else
  15884. return ( srcAddress == rhs.srcAddress ) && ( bufferRowLength == rhs.bufferRowLength ) && ( bufferImageHeight == rhs.bufferImageHeight ) &&
  15885. ( imageSubresource == rhs.imageSubresource ) && ( imageOffset == rhs.imageOffset ) && ( imageExtent == rhs.imageExtent );
  15886. # endif
  15887. }
  15888. bool operator!=( CopyMemoryToImageIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  15889. {
  15890. return !operator==( rhs );
  15891. }
  15892. #endif
  15893. public:
  15894. VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress = {};
  15895. uint32_t bufferRowLength = {};
  15896. uint32_t bufferImageHeight = {};
  15897. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
  15898. VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
  15899. VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
  15900. };
  15901. struct MemoryToImageCopyEXT
  15902. {
  15903. using NativeType = VkMemoryToImageCopyEXT;
  15904. static const bool allowDuplicate = false;
  15905. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryToImageCopyEXT;
  15906. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  15907. VULKAN_HPP_CONSTEXPR MemoryToImageCopyEXT( const void * pHostPointer_ = {},
  15908. uint32_t memoryRowLength_ = {},
  15909. uint32_t memoryImageHeight_ = {},
  15910. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {},
  15911. VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {},
  15912. VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {},
  15913. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  15914. : pNext( pNext_ )
  15915. , pHostPointer( pHostPointer_ )
  15916. , memoryRowLength( memoryRowLength_ )
  15917. , memoryImageHeight( memoryImageHeight_ )
  15918. , imageSubresource( imageSubresource_ )
  15919. , imageOffset( imageOffset_ )
  15920. , imageExtent( imageExtent_ )
  15921. {
  15922. }
  15923. VULKAN_HPP_CONSTEXPR MemoryToImageCopyEXT( MemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15924. MemoryToImageCopyEXT( VkMemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15925. : MemoryToImageCopyEXT( *reinterpret_cast<MemoryToImageCopyEXT const *>( &rhs ) )
  15926. {
  15927. }
  15928. MemoryToImageCopyEXT & operator=( MemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  15929. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  15930. MemoryToImageCopyEXT & operator=( VkMemoryToImageCopyEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  15931. {
  15932. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT const *>( &rhs );
  15933. return *this;
  15934. }
  15935. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  15936. VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  15937. {
  15938. pNext = pNext_;
  15939. return *this;
  15940. }
  15941. VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setPHostPointer( const void * pHostPointer_ ) VULKAN_HPP_NOEXCEPT
  15942. {
  15943. pHostPointer = pHostPointer_;
  15944. return *this;
  15945. }
  15946. VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setMemoryRowLength( uint32_t memoryRowLength_ ) VULKAN_HPP_NOEXCEPT
  15947. {
  15948. memoryRowLength = memoryRowLength_;
  15949. return *this;
  15950. }
  15951. VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setMemoryImageHeight( uint32_t memoryImageHeight_ ) VULKAN_HPP_NOEXCEPT
  15952. {
  15953. memoryImageHeight = memoryImageHeight_;
  15954. return *this;
  15955. }
  15956. VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT &
  15957. setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
  15958. {
  15959. imageSubresource = imageSubresource_;
  15960. return *this;
  15961. }
  15962. VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT
  15963. {
  15964. imageOffset = imageOffset_;
  15965. return *this;
  15966. }
  15967. VULKAN_HPP_CONSTEXPR_14 MemoryToImageCopyEXT & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
  15968. {
  15969. imageExtent = imageExtent_;
  15970. return *this;
  15971. }
  15972. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  15973. operator VkMemoryToImageCopyEXT const &() const VULKAN_HPP_NOEXCEPT
  15974. {
  15975. return *reinterpret_cast<const VkMemoryToImageCopyEXT *>( this );
  15976. }
  15977. operator VkMemoryToImageCopyEXT &() VULKAN_HPP_NOEXCEPT
  15978. {
  15979. return *reinterpret_cast<VkMemoryToImageCopyEXT *>( this );
  15980. }
  15981. #if defined( VULKAN_HPP_USE_REFLECT )
  15982. # if 14 <= VULKAN_HPP_CPP_VERSION
  15983. auto
  15984. # else
  15985. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  15986. const void * const &,
  15987. const void * const &,
  15988. uint32_t const &,
  15989. uint32_t const &,
  15990. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  15991. VULKAN_HPP_NAMESPACE::Offset3D const &,
  15992. VULKAN_HPP_NAMESPACE::Extent3D const &>
  15993. # endif
  15994. reflect() const VULKAN_HPP_NOEXCEPT
  15995. {
  15996. return std::tie( sType, pNext, pHostPointer, memoryRowLength, memoryImageHeight, imageSubresource, imageOffset, imageExtent );
  15997. }
  15998. #endif
  15999. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16000. auto operator<=>( MemoryToImageCopyEXT const & ) const = default;
  16001. #else
  16002. bool operator==( MemoryToImageCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  16003. {
  16004. # if defined( VULKAN_HPP_USE_REFLECT )
  16005. return this->reflect() == rhs.reflect();
  16006. # else
  16007. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pHostPointer == rhs.pHostPointer ) && ( memoryRowLength == rhs.memoryRowLength ) &&
  16008. ( memoryImageHeight == rhs.memoryImageHeight ) && ( imageSubresource == rhs.imageSubresource ) && ( imageOffset == rhs.imageOffset ) &&
  16009. ( imageExtent == rhs.imageExtent );
  16010. # endif
  16011. }
  16012. bool operator!=( MemoryToImageCopyEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  16013. {
  16014. return !operator==( rhs );
  16015. }
  16016. #endif
  16017. public:
  16018. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryToImageCopyEXT;
  16019. const void * pNext = {};
  16020. const void * pHostPointer = {};
  16021. uint32_t memoryRowLength = {};
  16022. uint32_t memoryImageHeight = {};
  16023. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {};
  16024. VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {};
  16025. VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {};
  16026. };
  16027. template <>
  16028. struct CppType<StructureType, StructureType::eMemoryToImageCopyEXT>
  16029. {
  16030. using Type = MemoryToImageCopyEXT;
  16031. };
  16032. struct CopyMemoryToImageInfoEXT
  16033. {
  16034. using NativeType = VkCopyMemoryToImageInfoEXT;
  16035. static const bool allowDuplicate = false;
  16036. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToImageInfoEXT;
  16037. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16038. VULKAN_HPP_CONSTEXPR CopyMemoryToImageInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ = {},
  16039. VULKAN_HPP_NAMESPACE::Image dstImage_ = {},
  16040. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  16041. uint32_t regionCount_ = {},
  16042. const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * pRegions_ = {},
  16043. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16044. : pNext( pNext_ )
  16045. , flags( flags_ )
  16046. , dstImage( dstImage_ )
  16047. , dstImageLayout( dstImageLayout_ )
  16048. , regionCount( regionCount_ )
  16049. , pRegions( pRegions_ )
  16050. {
  16051. }
  16052. VULKAN_HPP_CONSTEXPR CopyMemoryToImageInfoEXT( CopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16053. CopyMemoryToImageInfoEXT( VkCopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  16054. : CopyMemoryToImageInfoEXT( *reinterpret_cast<CopyMemoryToImageInfoEXT const *>( &rhs ) )
  16055. {
  16056. }
  16057. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16058. CopyMemoryToImageInfoEXT( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_,
  16059. VULKAN_HPP_NAMESPACE::Image dstImage_,
  16060. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_,
  16061. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT> const & regions_,
  16062. const void * pNext_ = nullptr )
  16063. : pNext( pNext_ )
  16064. , flags( flags_ )
  16065. , dstImage( dstImage_ )
  16066. , dstImageLayout( dstImageLayout_ )
  16067. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  16068. , pRegions( regions_.data() )
  16069. {
  16070. }
  16071. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16072. CopyMemoryToImageInfoEXT & operator=( CopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16073. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16074. CopyMemoryToImageInfoEXT & operator=( VkCopyMemoryToImageInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  16075. {
  16076. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT const *>( &rhs );
  16077. return *this;
  16078. }
  16079. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16080. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16081. {
  16082. pNext = pNext_;
  16083. return *this;
  16084. }
  16085. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  16086. {
  16087. flags = flags_;
  16088. return *this;
  16089. }
  16090. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
  16091. {
  16092. dstImage = dstImage_;
  16093. return *this;
  16094. }
  16095. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
  16096. {
  16097. dstImageLayout = dstImageLayout_;
  16098. return *this;
  16099. }
  16100. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  16101. {
  16102. regionCount = regionCount_;
  16103. return *this;
  16104. }
  16105. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageInfoEXT & setPRegions( const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * pRegions_ ) VULKAN_HPP_NOEXCEPT
  16106. {
  16107. pRegions = pRegions_;
  16108. return *this;
  16109. }
  16110. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16111. CopyMemoryToImageInfoEXT &
  16112. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT> const & regions_ ) VULKAN_HPP_NOEXCEPT
  16113. {
  16114. regionCount = static_cast<uint32_t>( regions_.size() );
  16115. pRegions = regions_.data();
  16116. return *this;
  16117. }
  16118. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16119. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16120. operator VkCopyMemoryToImageInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  16121. {
  16122. return *reinterpret_cast<const VkCopyMemoryToImageInfoEXT *>( this );
  16123. }
  16124. operator VkCopyMemoryToImageInfoEXT &() VULKAN_HPP_NOEXCEPT
  16125. {
  16126. return *reinterpret_cast<VkCopyMemoryToImageInfoEXT *>( this );
  16127. }
  16128. #if defined( VULKAN_HPP_USE_REFLECT )
  16129. # if 14 <= VULKAN_HPP_CPP_VERSION
  16130. auto
  16131. # else
  16132. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  16133. const void * const &,
  16134. VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT const &,
  16135. VULKAN_HPP_NAMESPACE::Image const &,
  16136. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  16137. uint32_t const &,
  16138. const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * const &>
  16139. # endif
  16140. reflect() const VULKAN_HPP_NOEXCEPT
  16141. {
  16142. return std::tie( sType, pNext, flags, dstImage, dstImageLayout, regionCount, pRegions );
  16143. }
  16144. #endif
  16145. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16146. auto operator<=>( CopyMemoryToImageInfoEXT const & ) const = default;
  16147. #else
  16148. bool operator==( CopyMemoryToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  16149. {
  16150. # if defined( VULKAN_HPP_USE_REFLECT )
  16151. return this->reflect() == rhs.reflect();
  16152. # else
  16153. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dstImage == rhs.dstImage ) &&
  16154. ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  16155. # endif
  16156. }
  16157. bool operator!=( CopyMemoryToImageInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  16158. {
  16159. return !operator==( rhs );
  16160. }
  16161. #endif
  16162. public:
  16163. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToImageInfoEXT;
  16164. const void * pNext = {};
  16165. VULKAN_HPP_NAMESPACE::HostImageCopyFlagsEXT flags = {};
  16166. VULKAN_HPP_NAMESPACE::Image dstImage = {};
  16167. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  16168. uint32_t regionCount = {};
  16169. const VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT * pRegions = {};
  16170. };
  16171. template <>
  16172. struct CppType<StructureType, StructureType::eCopyMemoryToImageInfoEXT>
  16173. {
  16174. using Type = CopyMemoryToImageInfoEXT;
  16175. };
  16176. struct CopyMemoryToMicromapInfoEXT
  16177. {
  16178. using NativeType = VkCopyMemoryToMicromapInfoEXT;
  16179. static const bool allowDuplicate = false;
  16180. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToMicromapInfoEXT;
  16181. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16182. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {},
  16183. VULKAN_HPP_NAMESPACE::MicromapEXT dst_ = {},
  16184. VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone,
  16185. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16186. : pNext( pNext_ )
  16187. , src( src_ )
  16188. , dst( dst_ )
  16189. , mode( mode_ )
  16190. {
  16191. }
  16192. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT( CopyMemoryToMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16193. CopyMemoryToMicromapInfoEXT( VkCopyMemoryToMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  16194. : CopyMemoryToMicromapInfoEXT( *reinterpret_cast<CopyMemoryToMicromapInfoEXT const *>( &rhs ) )
  16195. {
  16196. }
  16197. CopyMemoryToMicromapInfoEXT & operator=( CopyMemoryToMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16198. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16199. CopyMemoryToMicromapInfoEXT & operator=( VkCopyMemoryToMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  16200. {
  16201. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT const *>( &rhs );
  16202. return *this;
  16203. }
  16204. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16205. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16206. {
  16207. pNext = pNext_;
  16208. return *this;
  16209. }
  16210. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT & setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT
  16211. {
  16212. src = src_;
  16213. return *this;
  16214. }
  16215. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT & setDst( VULKAN_HPP_NAMESPACE::MicromapEXT dst_ ) VULKAN_HPP_NOEXCEPT
  16216. {
  16217. dst = dst_;
  16218. return *this;
  16219. }
  16220. VULKAN_HPP_CONSTEXPR_14 CopyMemoryToMicromapInfoEXT & setMode( VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ ) VULKAN_HPP_NOEXCEPT
  16221. {
  16222. mode = mode_;
  16223. return *this;
  16224. }
  16225. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16226. operator VkCopyMemoryToMicromapInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  16227. {
  16228. return *reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( this );
  16229. }
  16230. operator VkCopyMemoryToMicromapInfoEXT &() VULKAN_HPP_NOEXCEPT
  16231. {
  16232. return *reinterpret_cast<VkCopyMemoryToMicromapInfoEXT *>( this );
  16233. }
  16234. #if defined( VULKAN_HPP_USE_REFLECT )
  16235. # if 14 <= VULKAN_HPP_CPP_VERSION
  16236. auto
  16237. # else
  16238. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  16239. const void * const &,
  16240. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  16241. VULKAN_HPP_NAMESPACE::MicromapEXT const &,
  16242. VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT const &>
  16243. # endif
  16244. reflect() const VULKAN_HPP_NOEXCEPT
  16245. {
  16246. return std::tie( sType, pNext, src, dst, mode );
  16247. }
  16248. #endif
  16249. public:
  16250. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToMicromapInfoEXT;
  16251. const void * pNext = {};
  16252. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {};
  16253. VULKAN_HPP_NAMESPACE::MicromapEXT dst = {};
  16254. VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone;
  16255. };
  16256. template <>
  16257. struct CppType<StructureType, StructureType::eCopyMemoryToMicromapInfoEXT>
  16258. {
  16259. using Type = CopyMemoryToMicromapInfoEXT;
  16260. };
  16261. struct CopyMicromapInfoEXT
  16262. {
  16263. using NativeType = VkCopyMicromapInfoEXT;
  16264. static const bool allowDuplicate = false;
  16265. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMicromapInfoEXT;
  16266. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16267. VULKAN_HPP_CONSTEXPR CopyMicromapInfoEXT( VULKAN_HPP_NAMESPACE::MicromapEXT src_ = {},
  16268. VULKAN_HPP_NAMESPACE::MicromapEXT dst_ = {},
  16269. VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone,
  16270. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16271. : pNext( pNext_ )
  16272. , src( src_ )
  16273. , dst( dst_ )
  16274. , mode( mode_ )
  16275. {
  16276. }
  16277. VULKAN_HPP_CONSTEXPR CopyMicromapInfoEXT( CopyMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16278. CopyMicromapInfoEXT( VkCopyMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : CopyMicromapInfoEXT( *reinterpret_cast<CopyMicromapInfoEXT const *>( &rhs ) )
  16279. {
  16280. }
  16281. CopyMicromapInfoEXT & operator=( CopyMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16282. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16283. CopyMicromapInfoEXT & operator=( VkCopyMicromapInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  16284. {
  16285. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT const *>( &rhs );
  16286. return *this;
  16287. }
  16288. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16289. VULKAN_HPP_CONSTEXPR_14 CopyMicromapInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16290. {
  16291. pNext = pNext_;
  16292. return *this;
  16293. }
  16294. VULKAN_HPP_CONSTEXPR_14 CopyMicromapInfoEXT & setSrc( VULKAN_HPP_NAMESPACE::MicromapEXT src_ ) VULKAN_HPP_NOEXCEPT
  16295. {
  16296. src = src_;
  16297. return *this;
  16298. }
  16299. VULKAN_HPP_CONSTEXPR_14 CopyMicromapInfoEXT & setDst( VULKAN_HPP_NAMESPACE::MicromapEXT dst_ ) VULKAN_HPP_NOEXCEPT
  16300. {
  16301. dst = dst_;
  16302. return *this;
  16303. }
  16304. VULKAN_HPP_CONSTEXPR_14 CopyMicromapInfoEXT & setMode( VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ ) VULKAN_HPP_NOEXCEPT
  16305. {
  16306. mode = mode_;
  16307. return *this;
  16308. }
  16309. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16310. operator VkCopyMicromapInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  16311. {
  16312. return *reinterpret_cast<const VkCopyMicromapInfoEXT *>( this );
  16313. }
  16314. operator VkCopyMicromapInfoEXT &() VULKAN_HPP_NOEXCEPT
  16315. {
  16316. return *reinterpret_cast<VkCopyMicromapInfoEXT *>( this );
  16317. }
  16318. #if defined( VULKAN_HPP_USE_REFLECT )
  16319. # if 14 <= VULKAN_HPP_CPP_VERSION
  16320. auto
  16321. # else
  16322. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  16323. const void * const &,
  16324. VULKAN_HPP_NAMESPACE::MicromapEXT const &,
  16325. VULKAN_HPP_NAMESPACE::MicromapEXT const &,
  16326. VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT const &>
  16327. # endif
  16328. reflect() const VULKAN_HPP_NOEXCEPT
  16329. {
  16330. return std::tie( sType, pNext, src, dst, mode );
  16331. }
  16332. #endif
  16333. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16334. auto operator<=>( CopyMicromapInfoEXT const & ) const = default;
  16335. #else
  16336. bool operator==( CopyMicromapInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  16337. {
  16338. # if defined( VULKAN_HPP_USE_REFLECT )
  16339. return this->reflect() == rhs.reflect();
  16340. # else
  16341. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( src == rhs.src ) && ( dst == rhs.dst ) && ( mode == rhs.mode );
  16342. # endif
  16343. }
  16344. bool operator!=( CopyMicromapInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  16345. {
  16346. return !operator==( rhs );
  16347. }
  16348. #endif
  16349. public:
  16350. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMicromapInfoEXT;
  16351. const void * pNext = {};
  16352. VULKAN_HPP_NAMESPACE::MicromapEXT src = {};
  16353. VULKAN_HPP_NAMESPACE::MicromapEXT dst = {};
  16354. VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone;
  16355. };
  16356. template <>
  16357. struct CppType<StructureType, StructureType::eCopyMicromapInfoEXT>
  16358. {
  16359. using Type = CopyMicromapInfoEXT;
  16360. };
  16361. struct CopyMicromapToMemoryInfoEXT
  16362. {
  16363. using NativeType = VkCopyMicromapToMemoryInfoEXT;
  16364. static const bool allowDuplicate = false;
  16365. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMicromapToMemoryInfoEXT;
  16366. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16367. VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT( VULKAN_HPP_NAMESPACE::MicromapEXT src_ = {},
  16368. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {},
  16369. VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone,
  16370. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16371. : pNext( pNext_ )
  16372. , src( src_ )
  16373. , dst( dst_ )
  16374. , mode( mode_ )
  16375. {
  16376. }
  16377. VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT( CopyMicromapToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16378. CopyMicromapToMemoryInfoEXT( VkCopyMicromapToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  16379. : CopyMicromapToMemoryInfoEXT( *reinterpret_cast<CopyMicromapToMemoryInfoEXT const *>( &rhs ) )
  16380. {
  16381. }
  16382. CopyMicromapToMemoryInfoEXT & operator=( CopyMicromapToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16383. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16384. CopyMicromapToMemoryInfoEXT & operator=( VkCopyMicromapToMemoryInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  16385. {
  16386. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT const *>( &rhs );
  16387. return *this;
  16388. }
  16389. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16390. VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16391. {
  16392. pNext = pNext_;
  16393. return *this;
  16394. }
  16395. VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT & setSrc( VULKAN_HPP_NAMESPACE::MicromapEXT src_ ) VULKAN_HPP_NOEXCEPT
  16396. {
  16397. src = src_;
  16398. return *this;
  16399. }
  16400. VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT
  16401. {
  16402. dst = dst_;
  16403. return *this;
  16404. }
  16405. VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT & setMode( VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode_ ) VULKAN_HPP_NOEXCEPT
  16406. {
  16407. mode = mode_;
  16408. return *this;
  16409. }
  16410. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16411. operator VkCopyMicromapToMemoryInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  16412. {
  16413. return *reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( this );
  16414. }
  16415. operator VkCopyMicromapToMemoryInfoEXT &() VULKAN_HPP_NOEXCEPT
  16416. {
  16417. return *reinterpret_cast<VkCopyMicromapToMemoryInfoEXT *>( this );
  16418. }
  16419. #if defined( VULKAN_HPP_USE_REFLECT )
  16420. # if 14 <= VULKAN_HPP_CPP_VERSION
  16421. auto
  16422. # else
  16423. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  16424. const void * const &,
  16425. VULKAN_HPP_NAMESPACE::MicromapEXT const &,
  16426. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const &,
  16427. VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT const &>
  16428. # endif
  16429. reflect() const VULKAN_HPP_NOEXCEPT
  16430. {
  16431. return std::tie( sType, pNext, src, dst, mode );
  16432. }
  16433. #endif
  16434. public:
  16435. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMicromapToMemoryInfoEXT;
  16436. const void * pNext = {};
  16437. VULKAN_HPP_NAMESPACE::MicromapEXT src = {};
  16438. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {};
  16439. VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT mode = VULKAN_HPP_NAMESPACE::CopyMicromapModeEXT::eClone;
  16440. };
  16441. template <>
  16442. struct CppType<StructureType, StructureType::eCopyMicromapToMemoryInfoEXT>
  16443. {
  16444. using Type = CopyMicromapToMemoryInfoEXT;
  16445. };
  16446. struct CuFunctionCreateInfoNVX
  16447. {
  16448. using NativeType = VkCuFunctionCreateInfoNVX;
  16449. static const bool allowDuplicate = false;
  16450. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCuFunctionCreateInfoNVX;
  16451. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16452. VULKAN_HPP_CONSTEXPR
  16453. CuFunctionCreateInfoNVX( VULKAN_HPP_NAMESPACE::CuModuleNVX module_ = {}, const char * pName_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16454. : pNext( pNext_ )
  16455. , module( module_ )
  16456. , pName( pName_ )
  16457. {
  16458. }
  16459. VULKAN_HPP_CONSTEXPR CuFunctionCreateInfoNVX( CuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16460. CuFunctionCreateInfoNVX( VkCuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  16461. : CuFunctionCreateInfoNVX( *reinterpret_cast<CuFunctionCreateInfoNVX const *>( &rhs ) )
  16462. {
  16463. }
  16464. CuFunctionCreateInfoNVX & operator=( CuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16465. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16466. CuFunctionCreateInfoNVX & operator=( VkCuFunctionCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  16467. {
  16468. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const *>( &rhs );
  16469. return *this;
  16470. }
  16471. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16472. VULKAN_HPP_CONSTEXPR_14 CuFunctionCreateInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16473. {
  16474. pNext = pNext_;
  16475. return *this;
  16476. }
  16477. VULKAN_HPP_CONSTEXPR_14 CuFunctionCreateInfoNVX & setModule( VULKAN_HPP_NAMESPACE::CuModuleNVX module_ ) VULKAN_HPP_NOEXCEPT
  16478. {
  16479. module = module_;
  16480. return *this;
  16481. }
  16482. VULKAN_HPP_CONSTEXPR_14 CuFunctionCreateInfoNVX & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
  16483. {
  16484. pName = pName_;
  16485. return *this;
  16486. }
  16487. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16488. operator VkCuFunctionCreateInfoNVX const &() const VULKAN_HPP_NOEXCEPT
  16489. {
  16490. return *reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( this );
  16491. }
  16492. operator VkCuFunctionCreateInfoNVX &() VULKAN_HPP_NOEXCEPT
  16493. {
  16494. return *reinterpret_cast<VkCuFunctionCreateInfoNVX *>( this );
  16495. }
  16496. #if defined( VULKAN_HPP_USE_REFLECT )
  16497. # if 14 <= VULKAN_HPP_CPP_VERSION
  16498. auto
  16499. # else
  16500. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CuModuleNVX const &, const char * const &>
  16501. # endif
  16502. reflect() const VULKAN_HPP_NOEXCEPT
  16503. {
  16504. return std::tie( sType, pNext, module, pName );
  16505. }
  16506. #endif
  16507. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16508. std::strong_ordering operator<=>( CuFunctionCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  16509. {
  16510. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  16511. return cmp;
  16512. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  16513. return cmp;
  16514. if ( auto cmp = module <=> rhs.module; cmp != 0 )
  16515. return cmp;
  16516. if ( pName != rhs.pName )
  16517. if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
  16518. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  16519. return std::strong_ordering::equivalent;
  16520. }
  16521. #endif
  16522. bool operator==( CuFunctionCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  16523. {
  16524. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( module == rhs.module ) && ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) );
  16525. }
  16526. bool operator!=( CuFunctionCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  16527. {
  16528. return !operator==( rhs );
  16529. }
  16530. public:
  16531. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCuFunctionCreateInfoNVX;
  16532. const void * pNext = {};
  16533. VULKAN_HPP_NAMESPACE::CuModuleNVX module = {};
  16534. const char * pName = {};
  16535. };
  16536. template <>
  16537. struct CppType<StructureType, StructureType::eCuFunctionCreateInfoNVX>
  16538. {
  16539. using Type = CuFunctionCreateInfoNVX;
  16540. };
  16541. struct CuLaunchInfoNVX
  16542. {
  16543. using NativeType = VkCuLaunchInfoNVX;
  16544. static const bool allowDuplicate = false;
  16545. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCuLaunchInfoNVX;
  16546. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16547. VULKAN_HPP_CONSTEXPR CuLaunchInfoNVX( VULKAN_HPP_NAMESPACE::CuFunctionNVX function_ = {},
  16548. uint32_t gridDimX_ = {},
  16549. uint32_t gridDimY_ = {},
  16550. uint32_t gridDimZ_ = {},
  16551. uint32_t blockDimX_ = {},
  16552. uint32_t blockDimY_ = {},
  16553. uint32_t blockDimZ_ = {},
  16554. uint32_t sharedMemBytes_ = {},
  16555. size_t paramCount_ = {},
  16556. const void * const * pParams_ = {},
  16557. size_t extraCount_ = {},
  16558. const void * const * pExtras_ = {},
  16559. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16560. : pNext( pNext_ )
  16561. , function( function_ )
  16562. , gridDimX( gridDimX_ )
  16563. , gridDimY( gridDimY_ )
  16564. , gridDimZ( gridDimZ_ )
  16565. , blockDimX( blockDimX_ )
  16566. , blockDimY( blockDimY_ )
  16567. , blockDimZ( blockDimZ_ )
  16568. , sharedMemBytes( sharedMemBytes_ )
  16569. , paramCount( paramCount_ )
  16570. , pParams( pParams_ )
  16571. , extraCount( extraCount_ )
  16572. , pExtras( pExtras_ )
  16573. {
  16574. }
  16575. VULKAN_HPP_CONSTEXPR CuLaunchInfoNVX( CuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16576. CuLaunchInfoNVX( VkCuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT : CuLaunchInfoNVX( *reinterpret_cast<CuLaunchInfoNVX const *>( &rhs ) ) {}
  16577. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16578. CuLaunchInfoNVX( VULKAN_HPP_NAMESPACE::CuFunctionNVX function_,
  16579. uint32_t gridDimX_,
  16580. uint32_t gridDimY_,
  16581. uint32_t gridDimZ_,
  16582. uint32_t blockDimX_,
  16583. uint32_t blockDimY_,
  16584. uint32_t blockDimZ_,
  16585. uint32_t sharedMemBytes_,
  16586. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & params_,
  16587. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & extras_ = {},
  16588. const void * pNext_ = nullptr )
  16589. : pNext( pNext_ )
  16590. , function( function_ )
  16591. , gridDimX( gridDimX_ )
  16592. , gridDimY( gridDimY_ )
  16593. , gridDimZ( gridDimZ_ )
  16594. , blockDimX( blockDimX_ )
  16595. , blockDimY( blockDimY_ )
  16596. , blockDimZ( blockDimZ_ )
  16597. , sharedMemBytes( sharedMemBytes_ )
  16598. , paramCount( params_.size() )
  16599. , pParams( params_.data() )
  16600. , extraCount( extras_.size() )
  16601. , pExtras( extras_.data() )
  16602. {
  16603. }
  16604. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16605. CuLaunchInfoNVX & operator=( CuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16606. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16607. CuLaunchInfoNVX & operator=( VkCuLaunchInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  16608. {
  16609. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX const *>( &rhs );
  16610. return *this;
  16611. }
  16612. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16613. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16614. {
  16615. pNext = pNext_;
  16616. return *this;
  16617. }
  16618. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setFunction( VULKAN_HPP_NAMESPACE::CuFunctionNVX function_ ) VULKAN_HPP_NOEXCEPT
  16619. {
  16620. function = function_;
  16621. return *this;
  16622. }
  16623. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setGridDimX( uint32_t gridDimX_ ) VULKAN_HPP_NOEXCEPT
  16624. {
  16625. gridDimX = gridDimX_;
  16626. return *this;
  16627. }
  16628. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setGridDimY( uint32_t gridDimY_ ) VULKAN_HPP_NOEXCEPT
  16629. {
  16630. gridDimY = gridDimY_;
  16631. return *this;
  16632. }
  16633. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setGridDimZ( uint32_t gridDimZ_ ) VULKAN_HPP_NOEXCEPT
  16634. {
  16635. gridDimZ = gridDimZ_;
  16636. return *this;
  16637. }
  16638. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setBlockDimX( uint32_t blockDimX_ ) VULKAN_HPP_NOEXCEPT
  16639. {
  16640. blockDimX = blockDimX_;
  16641. return *this;
  16642. }
  16643. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setBlockDimY( uint32_t blockDimY_ ) VULKAN_HPP_NOEXCEPT
  16644. {
  16645. blockDimY = blockDimY_;
  16646. return *this;
  16647. }
  16648. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setBlockDimZ( uint32_t blockDimZ_ ) VULKAN_HPP_NOEXCEPT
  16649. {
  16650. blockDimZ = blockDimZ_;
  16651. return *this;
  16652. }
  16653. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setSharedMemBytes( uint32_t sharedMemBytes_ ) VULKAN_HPP_NOEXCEPT
  16654. {
  16655. sharedMemBytes = sharedMemBytes_;
  16656. return *this;
  16657. }
  16658. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setParamCount( size_t paramCount_ ) VULKAN_HPP_NOEXCEPT
  16659. {
  16660. paramCount = paramCount_;
  16661. return *this;
  16662. }
  16663. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setPParams( const void * const * pParams_ ) VULKAN_HPP_NOEXCEPT
  16664. {
  16665. pParams = pParams_;
  16666. return *this;
  16667. }
  16668. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16669. CuLaunchInfoNVX & setParams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & params_ ) VULKAN_HPP_NOEXCEPT
  16670. {
  16671. paramCount = params_.size();
  16672. pParams = params_.data();
  16673. return *this;
  16674. }
  16675. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16676. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setExtraCount( size_t extraCount_ ) VULKAN_HPP_NOEXCEPT
  16677. {
  16678. extraCount = extraCount_;
  16679. return *this;
  16680. }
  16681. VULKAN_HPP_CONSTEXPR_14 CuLaunchInfoNVX & setPExtras( const void * const * pExtras_ ) VULKAN_HPP_NOEXCEPT
  16682. {
  16683. pExtras = pExtras_;
  16684. return *this;
  16685. }
  16686. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16687. CuLaunchInfoNVX & setExtras( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const void * const> const & extras_ ) VULKAN_HPP_NOEXCEPT
  16688. {
  16689. extraCount = extras_.size();
  16690. pExtras = extras_.data();
  16691. return *this;
  16692. }
  16693. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16694. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16695. operator VkCuLaunchInfoNVX const &() const VULKAN_HPP_NOEXCEPT
  16696. {
  16697. return *reinterpret_cast<const VkCuLaunchInfoNVX *>( this );
  16698. }
  16699. operator VkCuLaunchInfoNVX &() VULKAN_HPP_NOEXCEPT
  16700. {
  16701. return *reinterpret_cast<VkCuLaunchInfoNVX *>( this );
  16702. }
  16703. #if defined( VULKAN_HPP_USE_REFLECT )
  16704. # if 14 <= VULKAN_HPP_CPP_VERSION
  16705. auto
  16706. # else
  16707. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  16708. const void * const &,
  16709. VULKAN_HPP_NAMESPACE::CuFunctionNVX const &,
  16710. uint32_t const &,
  16711. uint32_t const &,
  16712. uint32_t const &,
  16713. uint32_t const &,
  16714. uint32_t const &,
  16715. uint32_t const &,
  16716. uint32_t const &,
  16717. size_t const &,
  16718. const void * const * const &,
  16719. size_t const &,
  16720. const void * const * const &>
  16721. # endif
  16722. reflect() const VULKAN_HPP_NOEXCEPT
  16723. {
  16724. return std::tie(
  16725. sType, pNext, function, gridDimX, gridDimY, gridDimZ, blockDimX, blockDimY, blockDimZ, sharedMemBytes, paramCount, pParams, extraCount, pExtras );
  16726. }
  16727. #endif
  16728. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16729. auto operator<=>( CuLaunchInfoNVX const & ) const = default;
  16730. #else
  16731. bool operator==( CuLaunchInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  16732. {
  16733. # if defined( VULKAN_HPP_USE_REFLECT )
  16734. return this->reflect() == rhs.reflect();
  16735. # else
  16736. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( function == rhs.function ) && ( gridDimX == rhs.gridDimX ) && ( gridDimY == rhs.gridDimY ) &&
  16737. ( gridDimZ == rhs.gridDimZ ) && ( blockDimX == rhs.blockDimX ) && ( blockDimY == rhs.blockDimY ) && ( blockDimZ == rhs.blockDimZ ) &&
  16738. ( sharedMemBytes == rhs.sharedMemBytes ) && ( paramCount == rhs.paramCount ) && ( pParams == rhs.pParams ) && ( extraCount == rhs.extraCount ) &&
  16739. ( pExtras == rhs.pExtras );
  16740. # endif
  16741. }
  16742. bool operator!=( CuLaunchInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  16743. {
  16744. return !operator==( rhs );
  16745. }
  16746. #endif
  16747. public:
  16748. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCuLaunchInfoNVX;
  16749. const void * pNext = {};
  16750. VULKAN_HPP_NAMESPACE::CuFunctionNVX function = {};
  16751. uint32_t gridDimX = {};
  16752. uint32_t gridDimY = {};
  16753. uint32_t gridDimZ = {};
  16754. uint32_t blockDimX = {};
  16755. uint32_t blockDimY = {};
  16756. uint32_t blockDimZ = {};
  16757. uint32_t sharedMemBytes = {};
  16758. size_t paramCount = {};
  16759. const void * const * pParams = {};
  16760. size_t extraCount = {};
  16761. const void * const * pExtras = {};
  16762. };
  16763. template <>
  16764. struct CppType<StructureType, StructureType::eCuLaunchInfoNVX>
  16765. {
  16766. using Type = CuLaunchInfoNVX;
  16767. };
  16768. struct CuModuleCreateInfoNVX
  16769. {
  16770. using NativeType = VkCuModuleCreateInfoNVX;
  16771. static const bool allowDuplicate = false;
  16772. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCuModuleCreateInfoNVX;
  16773. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16774. VULKAN_HPP_CONSTEXPR CuModuleCreateInfoNVX( size_t dataSize_ = {}, const void * pData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16775. : pNext( pNext_ )
  16776. , dataSize( dataSize_ )
  16777. , pData( pData_ )
  16778. {
  16779. }
  16780. VULKAN_HPP_CONSTEXPR CuModuleCreateInfoNVX( CuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16781. CuModuleCreateInfoNVX( VkCuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  16782. : CuModuleCreateInfoNVX( *reinterpret_cast<CuModuleCreateInfoNVX const *>( &rhs ) )
  16783. {
  16784. }
  16785. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16786. template <typename T>
  16787. CuModuleCreateInfoNVX( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_, const void * pNext_ = nullptr )
  16788. : pNext( pNext_ ), dataSize( data_.size() * sizeof( T ) ), pData( data_.data() )
  16789. {
  16790. }
  16791. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16792. CuModuleCreateInfoNVX & operator=( CuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16793. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16794. CuModuleCreateInfoNVX & operator=( VkCuModuleCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  16795. {
  16796. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const *>( &rhs );
  16797. return *this;
  16798. }
  16799. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16800. VULKAN_HPP_CONSTEXPR_14 CuModuleCreateInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16801. {
  16802. pNext = pNext_;
  16803. return *this;
  16804. }
  16805. VULKAN_HPP_CONSTEXPR_14 CuModuleCreateInfoNVX & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT
  16806. {
  16807. dataSize = dataSize_;
  16808. return *this;
  16809. }
  16810. VULKAN_HPP_CONSTEXPR_14 CuModuleCreateInfoNVX & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT
  16811. {
  16812. pData = pData_;
  16813. return *this;
  16814. }
  16815. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16816. template <typename T>
  16817. CuModuleCreateInfoNVX & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
  16818. {
  16819. dataSize = data_.size() * sizeof( T );
  16820. pData = data_.data();
  16821. return *this;
  16822. }
  16823. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16824. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16825. operator VkCuModuleCreateInfoNVX const &() const VULKAN_HPP_NOEXCEPT
  16826. {
  16827. return *reinterpret_cast<const VkCuModuleCreateInfoNVX *>( this );
  16828. }
  16829. operator VkCuModuleCreateInfoNVX &() VULKAN_HPP_NOEXCEPT
  16830. {
  16831. return *reinterpret_cast<VkCuModuleCreateInfoNVX *>( this );
  16832. }
  16833. #if defined( VULKAN_HPP_USE_REFLECT )
  16834. # if 14 <= VULKAN_HPP_CPP_VERSION
  16835. auto
  16836. # else
  16837. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, size_t const &, const void * const &>
  16838. # endif
  16839. reflect() const VULKAN_HPP_NOEXCEPT
  16840. {
  16841. return std::tie( sType, pNext, dataSize, pData );
  16842. }
  16843. #endif
  16844. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16845. auto operator<=>( CuModuleCreateInfoNVX const & ) const = default;
  16846. #else
  16847. bool operator==( CuModuleCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  16848. {
  16849. # if defined( VULKAN_HPP_USE_REFLECT )
  16850. return this->reflect() == rhs.reflect();
  16851. # else
  16852. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dataSize == rhs.dataSize ) && ( pData == rhs.pData );
  16853. # endif
  16854. }
  16855. bool operator!=( CuModuleCreateInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  16856. {
  16857. return !operator==( rhs );
  16858. }
  16859. #endif
  16860. public:
  16861. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCuModuleCreateInfoNVX;
  16862. const void * pNext = {};
  16863. size_t dataSize = {};
  16864. const void * pData = {};
  16865. };
  16866. template <>
  16867. struct CppType<StructureType, StructureType::eCuModuleCreateInfoNVX>
  16868. {
  16869. using Type = CuModuleCreateInfoNVX;
  16870. };
  16871. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  16872. struct D3D12FenceSubmitInfoKHR
  16873. {
  16874. using NativeType = VkD3D12FenceSubmitInfoKHR;
  16875. static const bool allowDuplicate = false;
  16876. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eD3D12FenceSubmitInfoKHR;
  16877. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  16878. VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( uint32_t waitSemaphoreValuesCount_ = {},
  16879. const uint64_t * pWaitSemaphoreValues_ = {},
  16880. uint32_t signalSemaphoreValuesCount_ = {},
  16881. const uint64_t * pSignalSemaphoreValues_ = {},
  16882. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  16883. : pNext( pNext_ )
  16884. , waitSemaphoreValuesCount( waitSemaphoreValuesCount_ )
  16885. , pWaitSemaphoreValues( pWaitSemaphoreValues_ )
  16886. , signalSemaphoreValuesCount( signalSemaphoreValuesCount_ )
  16887. , pSignalSemaphoreValues( pSignalSemaphoreValues_ )
  16888. {
  16889. }
  16890. VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16891. D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  16892. : D3D12FenceSubmitInfoKHR( *reinterpret_cast<D3D12FenceSubmitInfoKHR const *>( &rhs ) )
  16893. {
  16894. }
  16895. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16896. D3D12FenceSubmitInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_,
  16897. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {},
  16898. const void * pNext_ = nullptr )
  16899. : pNext( pNext_ )
  16900. , waitSemaphoreValuesCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) )
  16901. , pWaitSemaphoreValues( waitSemaphoreValues_.data() )
  16902. , signalSemaphoreValuesCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) )
  16903. , pSignalSemaphoreValues( signalSemaphoreValues_.data() )
  16904. {
  16905. }
  16906. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16907. D3D12FenceSubmitInfoKHR & operator=( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  16908. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  16909. D3D12FenceSubmitInfoKHR & operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  16910. {
  16911. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR const *>( &rhs );
  16912. return *this;
  16913. }
  16914. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  16915. VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  16916. {
  16917. pNext = pNext_;
  16918. return *this;
  16919. }
  16920. VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
  16921. {
  16922. waitSemaphoreValuesCount = waitSemaphoreValuesCount_;
  16923. return *this;
  16924. }
  16925. VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t * pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  16926. {
  16927. pWaitSemaphoreValues = pWaitSemaphoreValues_;
  16928. return *this;
  16929. }
  16930. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16931. D3D12FenceSubmitInfoKHR &
  16932. setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  16933. {
  16934. waitSemaphoreValuesCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
  16935. pWaitSemaphoreValues = waitSemaphoreValues_.data();
  16936. return *this;
  16937. }
  16938. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16939. VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT
  16940. {
  16941. signalSemaphoreValuesCount = signalSemaphoreValuesCount_;
  16942. return *this;
  16943. }
  16944. VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t * pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  16945. {
  16946. pSignalSemaphoreValues = pSignalSemaphoreValues_;
  16947. return *this;
  16948. }
  16949. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  16950. D3D12FenceSubmitInfoKHR &
  16951. setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  16952. {
  16953. signalSemaphoreValuesCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
  16954. pSignalSemaphoreValues = signalSemaphoreValues_.data();
  16955. return *this;
  16956. }
  16957. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  16958. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  16959. operator VkD3D12FenceSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  16960. {
  16961. return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR *>( this );
  16962. }
  16963. operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
  16964. {
  16965. return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR *>( this );
  16966. }
  16967. # if defined( VULKAN_HPP_USE_REFLECT )
  16968. # if 14 <= VULKAN_HPP_CPP_VERSION
  16969. auto
  16970. # else
  16971. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  16972. const void * const &,
  16973. uint32_t const &,
  16974. const uint64_t * const &,
  16975. uint32_t const &,
  16976. const uint64_t * const &>
  16977. # endif
  16978. reflect() const VULKAN_HPP_NOEXCEPT
  16979. {
  16980. return std::tie( sType, pNext, waitSemaphoreValuesCount, pWaitSemaphoreValues, signalSemaphoreValuesCount, pSignalSemaphoreValues );
  16981. }
  16982. # endif
  16983. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  16984. auto operator<=>( D3D12FenceSubmitInfoKHR const & ) const = default;
  16985. # else
  16986. bool operator==( D3D12FenceSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  16987. {
  16988. # if defined( VULKAN_HPP_USE_REFLECT )
  16989. return this->reflect() == rhs.reflect();
  16990. # else
  16991. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount ) &&
  16992. ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount ) &&
  16993. ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
  16994. # endif
  16995. }
  16996. bool operator!=( D3D12FenceSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  16997. {
  16998. return !operator==( rhs );
  16999. }
  17000. # endif
  17001. public:
  17002. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR;
  17003. const void * pNext = {};
  17004. uint32_t waitSemaphoreValuesCount = {};
  17005. const uint64_t * pWaitSemaphoreValues = {};
  17006. uint32_t signalSemaphoreValuesCount = {};
  17007. const uint64_t * pSignalSemaphoreValues = {};
  17008. };
  17009. template <>
  17010. struct CppType<StructureType, StructureType::eD3D12FenceSubmitInfoKHR>
  17011. {
  17012. using Type = D3D12FenceSubmitInfoKHR;
  17013. };
  17014. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  17015. struct DebugMarkerMarkerInfoEXT
  17016. {
  17017. using NativeType = VkDebugMarkerMarkerInfoEXT;
  17018. static const bool allowDuplicate = false;
  17019. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerMarkerInfoEXT;
  17020. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17021. VULKAN_HPP_CONSTEXPR_14
  17022. DebugMarkerMarkerInfoEXT( const char * pMarkerName_ = {}, std::array<float, 4> const & color_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17023. : pNext( pNext_ )
  17024. , pMarkerName( pMarkerName_ )
  17025. , color( color_ )
  17026. {
  17027. }
  17028. VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17029. DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17030. : DebugMarkerMarkerInfoEXT( *reinterpret_cast<DebugMarkerMarkerInfoEXT const *>( &rhs ) )
  17031. {
  17032. }
  17033. DebugMarkerMarkerInfoEXT & operator=( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17034. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17035. DebugMarkerMarkerInfoEXT & operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17036. {
  17037. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT const *>( &rhs );
  17038. return *this;
  17039. }
  17040. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17041. VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17042. {
  17043. pNext = pNext_;
  17044. return *this;
  17045. }
  17046. VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & setPMarkerName( const char * pMarkerName_ ) VULKAN_HPP_NOEXCEPT
  17047. {
  17048. pMarkerName = pMarkerName_;
  17049. return *this;
  17050. }
  17051. VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & setColor( std::array<float, 4> color_ ) VULKAN_HPP_NOEXCEPT
  17052. {
  17053. color = color_;
  17054. return *this;
  17055. }
  17056. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17057. operator VkDebugMarkerMarkerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  17058. {
  17059. return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( this );
  17060. }
  17061. operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT
  17062. {
  17063. return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT *>( this );
  17064. }
  17065. #if defined( VULKAN_HPP_USE_REFLECT )
  17066. # if 14 <= VULKAN_HPP_CPP_VERSION
  17067. auto
  17068. # else
  17069. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const char * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> const &>
  17070. # endif
  17071. reflect() const VULKAN_HPP_NOEXCEPT
  17072. {
  17073. return std::tie( sType, pNext, pMarkerName, color );
  17074. }
  17075. #endif
  17076. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17077. std::partial_ordering operator<=>( DebugMarkerMarkerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17078. {
  17079. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  17080. return cmp;
  17081. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  17082. return cmp;
  17083. if ( pMarkerName != rhs.pMarkerName )
  17084. if ( auto cmp = strcmp( pMarkerName, rhs.pMarkerName ); cmp != 0 )
  17085. return ( cmp < 0 ) ? std::partial_ordering::less : std::partial_ordering::greater;
  17086. if ( auto cmp = color <=> rhs.color; cmp != 0 )
  17087. return cmp;
  17088. return std::partial_ordering::equivalent;
  17089. }
  17090. #endif
  17091. bool operator==( DebugMarkerMarkerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17092. {
  17093. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ( pMarkerName == rhs.pMarkerName ) || ( strcmp( pMarkerName, rhs.pMarkerName ) == 0 ) ) &&
  17094. ( color == rhs.color );
  17095. }
  17096. bool operator!=( DebugMarkerMarkerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17097. {
  17098. return !operator==( rhs );
  17099. }
  17100. public:
  17101. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT;
  17102. const void * pNext = {};
  17103. const char * pMarkerName = {};
  17104. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
  17105. };
  17106. template <>
  17107. struct CppType<StructureType, StructureType::eDebugMarkerMarkerInfoEXT>
  17108. {
  17109. using Type = DebugMarkerMarkerInfoEXT;
  17110. };
  17111. struct DebugMarkerObjectNameInfoEXT
  17112. {
  17113. using NativeType = VkDebugMarkerObjectNameInfoEXT;
  17114. static const bool allowDuplicate = false;
  17115. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectNameInfoEXT;
  17116. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17117. VULKAN_HPP_CONSTEXPR
  17118. DebugMarkerObjectNameInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown,
  17119. uint64_t object_ = {},
  17120. const char * pObjectName_ = {},
  17121. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17122. : pNext( pNext_ )
  17123. , objectType( objectType_ )
  17124. , object( object_ )
  17125. , pObjectName( pObjectName_ )
  17126. {
  17127. }
  17128. VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17129. DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17130. : DebugMarkerObjectNameInfoEXT( *reinterpret_cast<DebugMarkerObjectNameInfoEXT const *>( &rhs ) )
  17131. {
  17132. }
  17133. DebugMarkerObjectNameInfoEXT & operator=( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17134. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17135. DebugMarkerObjectNameInfoEXT & operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17136. {
  17137. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT const *>( &rhs );
  17138. return *this;
  17139. }
  17140. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17141. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17142. {
  17143. pNext = pNext_;
  17144. return *this;
  17145. }
  17146. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
  17147. {
  17148. objectType = objectType_;
  17149. return *this;
  17150. }
  17151. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
  17152. {
  17153. object = object_;
  17154. return *this;
  17155. }
  17156. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & setPObjectName( const char * pObjectName_ ) VULKAN_HPP_NOEXCEPT
  17157. {
  17158. pObjectName = pObjectName_;
  17159. return *this;
  17160. }
  17161. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17162. operator VkDebugMarkerObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  17163. {
  17164. return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( this );
  17165. }
  17166. operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
  17167. {
  17168. return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT *>( this );
  17169. }
  17170. #if defined( VULKAN_HPP_USE_REFLECT )
  17171. # if 14 <= VULKAN_HPP_CPP_VERSION
  17172. auto
  17173. # else
  17174. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  17175. const void * const &,
  17176. VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT const &,
  17177. uint64_t const &,
  17178. const char * const &>
  17179. # endif
  17180. reflect() const VULKAN_HPP_NOEXCEPT
  17181. {
  17182. return std::tie( sType, pNext, objectType, object, pObjectName );
  17183. }
  17184. #endif
  17185. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17186. std::strong_ordering operator<=>( DebugMarkerObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17187. {
  17188. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  17189. return cmp;
  17190. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  17191. return cmp;
  17192. if ( auto cmp = objectType <=> rhs.objectType; cmp != 0 )
  17193. return cmp;
  17194. if ( auto cmp = object <=> rhs.object; cmp != 0 )
  17195. return cmp;
  17196. if ( pObjectName != rhs.pObjectName )
  17197. if ( auto cmp = strcmp( pObjectName, rhs.pObjectName ); cmp != 0 )
  17198. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  17199. return std::strong_ordering::equivalent;
  17200. }
  17201. #endif
  17202. bool operator==( DebugMarkerObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17203. {
  17204. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && ( object == rhs.object ) &&
  17205. ( ( pObjectName == rhs.pObjectName ) || ( strcmp( pObjectName, rhs.pObjectName ) == 0 ) );
  17206. }
  17207. bool operator!=( DebugMarkerObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17208. {
  17209. return !operator==( rhs );
  17210. }
  17211. public:
  17212. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT;
  17213. const void * pNext = {};
  17214. VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
  17215. uint64_t object = {};
  17216. const char * pObjectName = {};
  17217. };
  17218. template <>
  17219. struct CppType<StructureType, StructureType::eDebugMarkerObjectNameInfoEXT>
  17220. {
  17221. using Type = DebugMarkerObjectNameInfoEXT;
  17222. };
  17223. struct DebugMarkerObjectTagInfoEXT
  17224. {
  17225. using NativeType = VkDebugMarkerObjectTagInfoEXT;
  17226. static const bool allowDuplicate = false;
  17227. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectTagInfoEXT;
  17228. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17229. VULKAN_HPP_CONSTEXPR
  17230. DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown,
  17231. uint64_t object_ = {},
  17232. uint64_t tagName_ = {},
  17233. size_t tagSize_ = {},
  17234. const void * pTag_ = {},
  17235. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17236. : pNext( pNext_ )
  17237. , objectType( objectType_ )
  17238. , object( object_ )
  17239. , tagName( tagName_ )
  17240. , tagSize( tagSize_ )
  17241. , pTag( pTag_ )
  17242. {
  17243. }
  17244. VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17245. DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17246. : DebugMarkerObjectTagInfoEXT( *reinterpret_cast<DebugMarkerObjectTagInfoEXT const *>( &rhs ) )
  17247. {
  17248. }
  17249. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17250. template <typename T>
  17251. DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_,
  17252. uint64_t object_,
  17253. uint64_t tagName_,
  17254. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_,
  17255. const void * pNext_ = nullptr )
  17256. : pNext( pNext_ ), objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof( T ) ), pTag( tag_.data() )
  17257. {
  17258. }
  17259. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17260. DebugMarkerObjectTagInfoEXT & operator=( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17261. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17262. DebugMarkerObjectTagInfoEXT & operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17263. {
  17264. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT const *>( &rhs );
  17265. return *this;
  17266. }
  17267. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17268. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17269. {
  17270. pNext = pNext_;
  17271. return *this;
  17272. }
  17273. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT
  17274. {
  17275. objectType = objectType_;
  17276. return *this;
  17277. }
  17278. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT
  17279. {
  17280. object = object_;
  17281. return *this;
  17282. }
  17283. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
  17284. {
  17285. tagName = tagName_;
  17286. return *this;
  17287. }
  17288. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
  17289. {
  17290. tagSize = tagSize_;
  17291. return *this;
  17292. }
  17293. VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT
  17294. {
  17295. pTag = pTag_;
  17296. return *this;
  17297. }
  17298. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17299. template <typename T>
  17300. DebugMarkerObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
  17301. {
  17302. tagSize = tag_.size() * sizeof( T );
  17303. pTag = tag_.data();
  17304. return *this;
  17305. }
  17306. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17307. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17308. operator VkDebugMarkerObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  17309. {
  17310. return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( this );
  17311. }
  17312. operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
  17313. {
  17314. return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT *>( this );
  17315. }
  17316. #if defined( VULKAN_HPP_USE_REFLECT )
  17317. # if 14 <= VULKAN_HPP_CPP_VERSION
  17318. auto
  17319. # else
  17320. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  17321. const void * const &,
  17322. VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT const &,
  17323. uint64_t const &,
  17324. uint64_t const &,
  17325. size_t const &,
  17326. const void * const &>
  17327. # endif
  17328. reflect() const VULKAN_HPP_NOEXCEPT
  17329. {
  17330. return std::tie( sType, pNext, objectType, object, tagName, tagSize, pTag );
  17331. }
  17332. #endif
  17333. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17334. auto operator<=>( DebugMarkerObjectTagInfoEXT const & ) const = default;
  17335. #else
  17336. bool operator==( DebugMarkerObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17337. {
  17338. # if defined( VULKAN_HPP_USE_REFLECT )
  17339. return this->reflect() == rhs.reflect();
  17340. # else
  17341. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && ( object == rhs.object ) && ( tagName == rhs.tagName ) &&
  17342. ( tagSize == rhs.tagSize ) && ( pTag == rhs.pTag );
  17343. # endif
  17344. }
  17345. bool operator!=( DebugMarkerObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17346. {
  17347. return !operator==( rhs );
  17348. }
  17349. #endif
  17350. public:
  17351. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT;
  17352. const void * pNext = {};
  17353. VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
  17354. uint64_t object = {};
  17355. uint64_t tagName = {};
  17356. size_t tagSize = {};
  17357. const void * pTag = {};
  17358. };
  17359. template <>
  17360. struct CppType<StructureType, StructureType::eDebugMarkerObjectTagInfoEXT>
  17361. {
  17362. using Type = DebugMarkerObjectTagInfoEXT;
  17363. };
  17364. struct DebugReportCallbackCreateInfoEXT
  17365. {
  17366. using NativeType = VkDebugReportCallbackCreateInfoEXT;
  17367. static const bool allowDuplicate = false;
  17368. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugReportCallbackCreateInfoEXT;
  17369. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17370. VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {},
  17371. PFN_vkDebugReportCallbackEXT pfnCallback_ = {},
  17372. void * pUserData_ = {},
  17373. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17374. : pNext( pNext_ )
  17375. , flags( flags_ )
  17376. , pfnCallback( pfnCallback_ )
  17377. , pUserData( pUserData_ )
  17378. {
  17379. }
  17380. VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17381. DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17382. : DebugReportCallbackCreateInfoEXT( *reinterpret_cast<DebugReportCallbackCreateInfoEXT const *>( &rhs ) )
  17383. {
  17384. }
  17385. DebugReportCallbackCreateInfoEXT & operator=( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17386. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17387. DebugReportCallbackCreateInfoEXT & operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17388. {
  17389. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const *>( &rhs );
  17390. return *this;
  17391. }
  17392. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17393. VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17394. {
  17395. pNext = pNext_;
  17396. return *this;
  17397. }
  17398. VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  17399. {
  17400. flags = flags_;
  17401. return *this;
  17402. }
  17403. VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT
  17404. {
  17405. pfnCallback = pfnCallback_;
  17406. return *this;
  17407. }
  17408. VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
  17409. {
  17410. pUserData = pUserData_;
  17411. return *this;
  17412. }
  17413. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17414. operator VkDebugReportCallbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  17415. {
  17416. return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( this );
  17417. }
  17418. operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  17419. {
  17420. return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT *>( this );
  17421. }
  17422. #if defined( VULKAN_HPP_USE_REFLECT )
  17423. # if 14 <= VULKAN_HPP_CPP_VERSION
  17424. auto
  17425. # else
  17426. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  17427. const void * const &,
  17428. VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT const &,
  17429. PFN_vkDebugReportCallbackEXT const &,
  17430. void * const &>
  17431. # endif
  17432. reflect() const VULKAN_HPP_NOEXCEPT
  17433. {
  17434. return std::tie( sType, pNext, flags, pfnCallback, pUserData );
  17435. }
  17436. #endif
  17437. bool operator==( DebugReportCallbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17438. {
  17439. #if defined( VULKAN_HPP_USE_REFLECT )
  17440. return this->reflect() == rhs.reflect();
  17441. #else
  17442. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pfnCallback == rhs.pfnCallback ) && ( pUserData == rhs.pUserData );
  17443. #endif
  17444. }
  17445. bool operator!=( DebugReportCallbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17446. {
  17447. return !operator==( rhs );
  17448. }
  17449. public:
  17450. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT;
  17451. const void * pNext = {};
  17452. VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {};
  17453. PFN_vkDebugReportCallbackEXT pfnCallback = {};
  17454. void * pUserData = {};
  17455. };
  17456. template <>
  17457. struct CppType<StructureType, StructureType::eDebugReportCallbackCreateInfoEXT>
  17458. {
  17459. using Type = DebugReportCallbackCreateInfoEXT;
  17460. };
  17461. struct DebugUtilsLabelEXT
  17462. {
  17463. using NativeType = VkDebugUtilsLabelEXT;
  17464. static const bool allowDuplicate = false;
  17465. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsLabelEXT;
  17466. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17467. VULKAN_HPP_CONSTEXPR_14
  17468. DebugUtilsLabelEXT( const char * pLabelName_ = {}, std::array<float, 4> const & color_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17469. : pNext( pNext_ )
  17470. , pLabelName( pLabelName_ )
  17471. , color( color_ )
  17472. {
  17473. }
  17474. VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17475. DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DebugUtilsLabelEXT( *reinterpret_cast<DebugUtilsLabelEXT const *>( &rhs ) ) {}
  17476. DebugUtilsLabelEXT & operator=( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17477. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17478. DebugUtilsLabelEXT & operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17479. {
  17480. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT const *>( &rhs );
  17481. return *this;
  17482. }
  17483. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17484. VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17485. {
  17486. pNext = pNext_;
  17487. return *this;
  17488. }
  17489. VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & setPLabelName( const char * pLabelName_ ) VULKAN_HPP_NOEXCEPT
  17490. {
  17491. pLabelName = pLabelName_;
  17492. return *this;
  17493. }
  17494. VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & setColor( std::array<float, 4> color_ ) VULKAN_HPP_NOEXCEPT
  17495. {
  17496. color = color_;
  17497. return *this;
  17498. }
  17499. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17500. operator VkDebugUtilsLabelEXT const &() const VULKAN_HPP_NOEXCEPT
  17501. {
  17502. return *reinterpret_cast<const VkDebugUtilsLabelEXT *>( this );
  17503. }
  17504. operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT
  17505. {
  17506. return *reinterpret_cast<VkDebugUtilsLabelEXT *>( this );
  17507. }
  17508. #if defined( VULKAN_HPP_USE_REFLECT )
  17509. # if 14 <= VULKAN_HPP_CPP_VERSION
  17510. auto
  17511. # else
  17512. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const char * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> const &>
  17513. # endif
  17514. reflect() const VULKAN_HPP_NOEXCEPT
  17515. {
  17516. return std::tie( sType, pNext, pLabelName, color );
  17517. }
  17518. #endif
  17519. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17520. std::partial_ordering operator<=>( DebugUtilsLabelEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17521. {
  17522. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  17523. return cmp;
  17524. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  17525. return cmp;
  17526. if ( pLabelName != rhs.pLabelName )
  17527. if ( auto cmp = strcmp( pLabelName, rhs.pLabelName ); cmp != 0 )
  17528. return ( cmp < 0 ) ? std::partial_ordering::less : std::partial_ordering::greater;
  17529. if ( auto cmp = color <=> rhs.color; cmp != 0 )
  17530. return cmp;
  17531. return std::partial_ordering::equivalent;
  17532. }
  17533. #endif
  17534. bool operator==( DebugUtilsLabelEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17535. {
  17536. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ( pLabelName == rhs.pLabelName ) || ( strcmp( pLabelName, rhs.pLabelName ) == 0 ) ) &&
  17537. ( color == rhs.color );
  17538. }
  17539. bool operator!=( DebugUtilsLabelEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17540. {
  17541. return !operator==( rhs );
  17542. }
  17543. public:
  17544. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT;
  17545. const void * pNext = {};
  17546. const char * pLabelName = {};
  17547. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> color = {};
  17548. };
  17549. template <>
  17550. struct CppType<StructureType, StructureType::eDebugUtilsLabelEXT>
  17551. {
  17552. using Type = DebugUtilsLabelEXT;
  17553. };
  17554. struct DebugUtilsObjectNameInfoEXT
  17555. {
  17556. using NativeType = VkDebugUtilsObjectNameInfoEXT;
  17557. static const bool allowDuplicate = false;
  17558. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectNameInfoEXT;
  17559. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17560. VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown,
  17561. uint64_t objectHandle_ = {},
  17562. const char * pObjectName_ = {},
  17563. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17564. : pNext( pNext_ )
  17565. , objectType( objectType_ )
  17566. , objectHandle( objectHandle_ )
  17567. , pObjectName( pObjectName_ )
  17568. {
  17569. }
  17570. VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17571. DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17572. : DebugUtilsObjectNameInfoEXT( *reinterpret_cast<DebugUtilsObjectNameInfoEXT const *>( &rhs ) )
  17573. {
  17574. }
  17575. DebugUtilsObjectNameInfoEXT & operator=( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17576. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17577. DebugUtilsObjectNameInfoEXT & operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17578. {
  17579. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT const *>( &rhs );
  17580. return *this;
  17581. }
  17582. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17583. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17584. {
  17585. pNext = pNext_;
  17586. return *this;
  17587. }
  17588. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
  17589. {
  17590. objectType = objectType_;
  17591. return *this;
  17592. }
  17593. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
  17594. {
  17595. objectHandle = objectHandle_;
  17596. return *this;
  17597. }
  17598. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & setPObjectName( const char * pObjectName_ ) VULKAN_HPP_NOEXCEPT
  17599. {
  17600. pObjectName = pObjectName_;
  17601. return *this;
  17602. }
  17603. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17604. operator VkDebugUtilsObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  17605. {
  17606. return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( this );
  17607. }
  17608. operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT
  17609. {
  17610. return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT *>( this );
  17611. }
  17612. #if defined( VULKAN_HPP_USE_REFLECT )
  17613. # if 14 <= VULKAN_HPP_CPP_VERSION
  17614. auto
  17615. # else
  17616. std::
  17617. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ObjectType const &, uint64_t const &, const char * const &>
  17618. # endif
  17619. reflect() const VULKAN_HPP_NOEXCEPT
  17620. {
  17621. return std::tie( sType, pNext, objectType, objectHandle, pObjectName );
  17622. }
  17623. #endif
  17624. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17625. std::strong_ordering operator<=>( DebugUtilsObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17626. {
  17627. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  17628. return cmp;
  17629. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  17630. return cmp;
  17631. if ( auto cmp = objectType <=> rhs.objectType; cmp != 0 )
  17632. return cmp;
  17633. if ( auto cmp = objectHandle <=> rhs.objectHandle; cmp != 0 )
  17634. return cmp;
  17635. if ( pObjectName != rhs.pObjectName )
  17636. if ( auto cmp = strcmp( pObjectName, rhs.pObjectName ); cmp != 0 )
  17637. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  17638. return std::strong_ordering::equivalent;
  17639. }
  17640. #endif
  17641. bool operator==( DebugUtilsObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17642. {
  17643. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && ( objectHandle == rhs.objectHandle ) &&
  17644. ( ( pObjectName == rhs.pObjectName ) || ( strcmp( pObjectName, rhs.pObjectName ) == 0 ) );
  17645. }
  17646. bool operator!=( DebugUtilsObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17647. {
  17648. return !operator==( rhs );
  17649. }
  17650. public:
  17651. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT;
  17652. const void * pNext = {};
  17653. VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
  17654. uint64_t objectHandle = {};
  17655. const char * pObjectName = {};
  17656. };
  17657. template <>
  17658. struct CppType<StructureType, StructureType::eDebugUtilsObjectNameInfoEXT>
  17659. {
  17660. using Type = DebugUtilsObjectNameInfoEXT;
  17661. };
  17662. struct DebugUtilsMessengerCallbackDataEXT
  17663. {
  17664. using NativeType = VkDebugUtilsMessengerCallbackDataEXT;
  17665. static const bool allowDuplicate = false;
  17666. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
  17667. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17668. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ = {},
  17669. const char * pMessageIdName_ = {},
  17670. int32_t messageIdNumber_ = {},
  17671. const char * pMessage_ = {},
  17672. uint32_t queueLabelCount_ = {},
  17673. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels_ = {},
  17674. uint32_t cmdBufLabelCount_ = {},
  17675. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels_ = {},
  17676. uint32_t objectCount_ = {},
  17677. const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects_ = {},
  17678. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17679. : pNext( pNext_ )
  17680. , flags( flags_ )
  17681. , pMessageIdName( pMessageIdName_ )
  17682. , messageIdNumber( messageIdNumber_ )
  17683. , pMessage( pMessage_ )
  17684. , queueLabelCount( queueLabelCount_ )
  17685. , pQueueLabels( pQueueLabels_ )
  17686. , cmdBufLabelCount( cmdBufLabelCount_ )
  17687. , pCmdBufLabels( pCmdBufLabels_ )
  17688. , objectCount( objectCount_ )
  17689. , pObjects( pObjects_ )
  17690. {
  17691. }
  17692. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17693. DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17694. : DebugUtilsMessengerCallbackDataEXT( *reinterpret_cast<DebugUtilsMessengerCallbackDataEXT const *>( &rhs ) )
  17695. {
  17696. }
  17697. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17698. DebugUtilsMessengerCallbackDataEXT(
  17699. VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_,
  17700. const char * pMessageIdName_,
  17701. int32_t messageIdNumber_,
  17702. const char * pMessage_,
  17703. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & queueLabels_,
  17704. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & cmdBufLabels_ = {},
  17705. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const & objects_ = {},
  17706. const void * pNext_ = nullptr )
  17707. : pNext( pNext_ )
  17708. , flags( flags_ )
  17709. , pMessageIdName( pMessageIdName_ )
  17710. , messageIdNumber( messageIdNumber_ )
  17711. , pMessage( pMessage_ )
  17712. , queueLabelCount( static_cast<uint32_t>( queueLabels_.size() ) )
  17713. , pQueueLabels( queueLabels_.data() )
  17714. , cmdBufLabelCount( static_cast<uint32_t>( cmdBufLabels_.size() ) )
  17715. , pCmdBufLabels( cmdBufLabels_.data() )
  17716. , objectCount( static_cast<uint32_t>( objects_.size() ) )
  17717. , pObjects( objects_.data() )
  17718. {
  17719. }
  17720. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17721. DebugUtilsMessengerCallbackDataEXT & operator=( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17722. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17723. DebugUtilsMessengerCallbackDataEXT & operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17724. {
  17725. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT const *>( &rhs );
  17726. return *this;
  17727. }
  17728. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17729. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17730. {
  17731. pNext = pNext_;
  17732. return *this;
  17733. }
  17734. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
  17735. setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  17736. {
  17737. flags = flags_;
  17738. return *this;
  17739. }
  17740. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char * pMessageIdName_ ) VULKAN_HPP_NOEXCEPT
  17741. {
  17742. pMessageIdName = pMessageIdName_;
  17743. return *this;
  17744. }
  17745. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT
  17746. {
  17747. messageIdNumber = messageIdNumber_;
  17748. return *this;
  17749. }
  17750. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setPMessage( const char * pMessage_ ) VULKAN_HPP_NOEXCEPT
  17751. {
  17752. pMessage = pMessage_;
  17753. return *this;
  17754. }
  17755. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT
  17756. {
  17757. queueLabelCount = queueLabelCount_;
  17758. return *this;
  17759. }
  17760. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
  17761. setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels_ ) VULKAN_HPP_NOEXCEPT
  17762. {
  17763. pQueueLabels = pQueueLabels_;
  17764. return *this;
  17765. }
  17766. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17767. DebugUtilsMessengerCallbackDataEXT &
  17768. setQueueLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & queueLabels_ ) VULKAN_HPP_NOEXCEPT
  17769. {
  17770. queueLabelCount = static_cast<uint32_t>( queueLabels_.size() );
  17771. pQueueLabels = queueLabels_.data();
  17772. return *this;
  17773. }
  17774. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17775. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT
  17776. {
  17777. cmdBufLabelCount = cmdBufLabelCount_;
  17778. return *this;
  17779. }
  17780. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
  17781. setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
  17782. {
  17783. pCmdBufLabels = pCmdBufLabels_;
  17784. return *this;
  17785. }
  17786. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17787. DebugUtilsMessengerCallbackDataEXT &
  17788. setCmdBufLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT> const & cmdBufLabels_ ) VULKAN_HPP_NOEXCEPT
  17789. {
  17790. cmdBufLabelCount = static_cast<uint32_t>( cmdBufLabels_.size() );
  17791. pCmdBufLabels = cmdBufLabels_.data();
  17792. return *this;
  17793. }
  17794. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17795. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT
  17796. {
  17797. objectCount = objectCount_;
  17798. return *this;
  17799. }
  17800. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT &
  17801. setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects_ ) VULKAN_HPP_NOEXCEPT
  17802. {
  17803. pObjects = pObjects_;
  17804. return *this;
  17805. }
  17806. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  17807. DebugUtilsMessengerCallbackDataEXT &
  17808. setObjects( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT> const & objects_ ) VULKAN_HPP_NOEXCEPT
  17809. {
  17810. objectCount = static_cast<uint32_t>( objects_.size() );
  17811. pObjects = objects_.data();
  17812. return *this;
  17813. }
  17814. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  17815. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17816. operator VkDebugUtilsMessengerCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT
  17817. {
  17818. return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( this );
  17819. }
  17820. operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
  17821. {
  17822. return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT *>( this );
  17823. }
  17824. #if defined( VULKAN_HPP_USE_REFLECT )
  17825. # if 14 <= VULKAN_HPP_CPP_VERSION
  17826. auto
  17827. # else
  17828. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  17829. const void * const &,
  17830. VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT const &,
  17831. const char * const &,
  17832. int32_t const &,
  17833. const char * const &,
  17834. uint32_t const &,
  17835. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * const &,
  17836. uint32_t const &,
  17837. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * const &,
  17838. uint32_t const &,
  17839. const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * const &>
  17840. # endif
  17841. reflect() const VULKAN_HPP_NOEXCEPT
  17842. {
  17843. return std::tie(
  17844. sType, pNext, flags, pMessageIdName, messageIdNumber, pMessage, queueLabelCount, pQueueLabels, cmdBufLabelCount, pCmdBufLabels, objectCount, pObjects );
  17845. }
  17846. #endif
  17847. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  17848. std::strong_ordering operator<=>( DebugUtilsMessengerCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17849. {
  17850. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  17851. return cmp;
  17852. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  17853. return cmp;
  17854. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  17855. return cmp;
  17856. if ( pMessageIdName != rhs.pMessageIdName )
  17857. if ( auto cmp = strcmp( pMessageIdName, rhs.pMessageIdName ); cmp != 0 )
  17858. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  17859. if ( auto cmp = messageIdNumber <=> rhs.messageIdNumber; cmp != 0 )
  17860. return cmp;
  17861. if ( pMessage != rhs.pMessage )
  17862. if ( auto cmp = strcmp( pMessage, rhs.pMessage ); cmp != 0 )
  17863. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  17864. if ( auto cmp = queueLabelCount <=> rhs.queueLabelCount; cmp != 0 )
  17865. return cmp;
  17866. if ( auto cmp = pQueueLabels <=> rhs.pQueueLabels; cmp != 0 )
  17867. return cmp;
  17868. if ( auto cmp = cmdBufLabelCount <=> rhs.cmdBufLabelCount; cmp != 0 )
  17869. return cmp;
  17870. if ( auto cmp = pCmdBufLabels <=> rhs.pCmdBufLabels; cmp != 0 )
  17871. return cmp;
  17872. if ( auto cmp = objectCount <=> rhs.objectCount; cmp != 0 )
  17873. return cmp;
  17874. if ( auto cmp = pObjects <=> rhs.pObjects; cmp != 0 )
  17875. return cmp;
  17876. return std::strong_ordering::equivalent;
  17877. }
  17878. #endif
  17879. bool operator==( DebugUtilsMessengerCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17880. {
  17881. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  17882. ( ( pMessageIdName == rhs.pMessageIdName ) || ( strcmp( pMessageIdName, rhs.pMessageIdName ) == 0 ) ) &&
  17883. ( messageIdNumber == rhs.messageIdNumber ) && ( ( pMessage == rhs.pMessage ) || ( strcmp( pMessage, rhs.pMessage ) == 0 ) ) &&
  17884. ( queueLabelCount == rhs.queueLabelCount ) && ( pQueueLabels == rhs.pQueueLabels ) && ( cmdBufLabelCount == rhs.cmdBufLabelCount ) &&
  17885. ( pCmdBufLabels == rhs.pCmdBufLabels ) && ( objectCount == rhs.objectCount ) && ( pObjects == rhs.pObjects );
  17886. }
  17887. bool operator!=( DebugUtilsMessengerCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  17888. {
  17889. return !operator==( rhs );
  17890. }
  17891. public:
  17892. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
  17893. const void * pNext = {};
  17894. VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {};
  17895. const char * pMessageIdName = {};
  17896. int32_t messageIdNumber = {};
  17897. const char * pMessage = {};
  17898. uint32_t queueLabelCount = {};
  17899. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels = {};
  17900. uint32_t cmdBufLabelCount = {};
  17901. const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels = {};
  17902. uint32_t objectCount = {};
  17903. const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects = {};
  17904. };
  17905. template <>
  17906. struct CppType<StructureType, StructureType::eDebugUtilsMessengerCallbackDataEXT>
  17907. {
  17908. using Type = DebugUtilsMessengerCallbackDataEXT;
  17909. };
  17910. struct DebugUtilsMessengerCreateInfoEXT
  17911. {
  17912. using NativeType = VkDebugUtilsMessengerCreateInfoEXT;
  17913. static const bool allowDuplicate = true;
  17914. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
  17915. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  17916. VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ = {},
  17917. VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = {},
  17918. VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ = {},
  17919. PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = {},
  17920. void * pUserData_ = {},
  17921. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  17922. : pNext( pNext_ )
  17923. , flags( flags_ )
  17924. , messageSeverity( messageSeverity_ )
  17925. , messageType( messageType_ )
  17926. , pfnUserCallback( pfnUserCallback_ )
  17927. , pUserData( pUserData_ )
  17928. {
  17929. }
  17930. VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17931. DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17932. : DebugUtilsMessengerCreateInfoEXT( *reinterpret_cast<DebugUtilsMessengerCreateInfoEXT const *>( &rhs ) )
  17933. {
  17934. }
  17935. DebugUtilsMessengerCreateInfoEXT & operator=( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  17936. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  17937. DebugUtilsMessengerCreateInfoEXT & operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  17938. {
  17939. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const *>( &rhs );
  17940. return *this;
  17941. }
  17942. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  17943. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  17944. {
  17945. pNext = pNext_;
  17946. return *this;
  17947. }
  17948. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  17949. {
  17950. flags = flags_;
  17951. return *this;
  17952. }
  17953. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT &
  17954. setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT
  17955. {
  17956. messageSeverity = messageSeverity_;
  17957. return *this;
  17958. }
  17959. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT &
  17960. setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT
  17961. {
  17962. messageType = messageType_;
  17963. return *this;
  17964. }
  17965. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
  17966. {
  17967. pfnUserCallback = pfnUserCallback_;
  17968. return *this;
  17969. }
  17970. VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
  17971. {
  17972. pUserData = pUserData_;
  17973. return *this;
  17974. }
  17975. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  17976. operator VkDebugUtilsMessengerCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  17977. {
  17978. return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( this );
  17979. }
  17980. operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  17981. {
  17982. return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT *>( this );
  17983. }
  17984. #if defined( VULKAN_HPP_USE_REFLECT )
  17985. # if 14 <= VULKAN_HPP_CPP_VERSION
  17986. auto
  17987. # else
  17988. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  17989. const void * const &,
  17990. VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT const &,
  17991. VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT const &,
  17992. VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT const &,
  17993. PFN_vkDebugUtilsMessengerCallbackEXT const &,
  17994. void * const &>
  17995. # endif
  17996. reflect() const VULKAN_HPP_NOEXCEPT
  17997. {
  17998. return std::tie( sType, pNext, flags, messageSeverity, messageType, pfnUserCallback, pUserData );
  17999. }
  18000. #endif
  18001. bool operator==( DebugUtilsMessengerCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  18002. {
  18003. #if defined( VULKAN_HPP_USE_REFLECT )
  18004. return this->reflect() == rhs.reflect();
  18005. #else
  18006. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( messageSeverity == rhs.messageSeverity ) &&
  18007. ( messageType == rhs.messageType ) && ( pfnUserCallback == rhs.pfnUserCallback ) && ( pUserData == rhs.pUserData );
  18008. #endif
  18009. }
  18010. bool operator!=( DebugUtilsMessengerCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  18011. {
  18012. return !operator==( rhs );
  18013. }
  18014. public:
  18015. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
  18016. const void * pNext = {};
  18017. VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {};
  18018. VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {};
  18019. VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {};
  18020. PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {};
  18021. void * pUserData = {};
  18022. };
  18023. template <>
  18024. struct CppType<StructureType, StructureType::eDebugUtilsMessengerCreateInfoEXT>
  18025. {
  18026. using Type = DebugUtilsMessengerCreateInfoEXT;
  18027. };
  18028. struct DebugUtilsObjectTagInfoEXT
  18029. {
  18030. using NativeType = VkDebugUtilsObjectTagInfoEXT;
  18031. static const bool allowDuplicate = false;
  18032. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectTagInfoEXT;
  18033. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18034. VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown,
  18035. uint64_t objectHandle_ = {},
  18036. uint64_t tagName_ = {},
  18037. size_t tagSize_ = {},
  18038. const void * pTag_ = {},
  18039. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  18040. : pNext( pNext_ )
  18041. , objectType( objectType_ )
  18042. , objectHandle( objectHandle_ )
  18043. , tagName( tagName_ )
  18044. , tagSize( tagSize_ )
  18045. , pTag( pTag_ )
  18046. {
  18047. }
  18048. VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18049. DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  18050. : DebugUtilsObjectTagInfoEXT( *reinterpret_cast<DebugUtilsObjectTagInfoEXT const *>( &rhs ) )
  18051. {
  18052. }
  18053. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  18054. template <typename T>
  18055. DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_,
  18056. uint64_t objectHandle_,
  18057. uint64_t tagName_,
  18058. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_,
  18059. const void * pNext_ = nullptr )
  18060. : pNext( pNext_ )
  18061. , objectType( objectType_ )
  18062. , objectHandle( objectHandle_ )
  18063. , tagName( tagName_ )
  18064. , tagSize( tag_.size() * sizeof( T ) )
  18065. , pTag( tag_.data() )
  18066. {
  18067. }
  18068. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  18069. DebugUtilsObjectTagInfoEXT & operator=( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18070. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18071. DebugUtilsObjectTagInfoEXT & operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  18072. {
  18073. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT const *>( &rhs );
  18074. return *this;
  18075. }
  18076. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18077. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  18078. {
  18079. pNext = pNext_;
  18080. return *this;
  18081. }
  18082. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT
  18083. {
  18084. objectType = objectType_;
  18085. return *this;
  18086. }
  18087. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT
  18088. {
  18089. objectHandle = objectHandle_;
  18090. return *this;
  18091. }
  18092. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
  18093. {
  18094. tagName = tagName_;
  18095. return *this;
  18096. }
  18097. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
  18098. {
  18099. tagSize = tagSize_;
  18100. return *this;
  18101. }
  18102. VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT
  18103. {
  18104. pTag = pTag_;
  18105. return *this;
  18106. }
  18107. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  18108. template <typename T>
  18109. DebugUtilsObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
  18110. {
  18111. tagSize = tag_.size() * sizeof( T );
  18112. pTag = tag_.data();
  18113. return *this;
  18114. }
  18115. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  18116. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  18117. operator VkDebugUtilsObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  18118. {
  18119. return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( this );
  18120. }
  18121. operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT
  18122. {
  18123. return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT *>( this );
  18124. }
  18125. #if defined( VULKAN_HPP_USE_REFLECT )
  18126. # if 14 <= VULKAN_HPP_CPP_VERSION
  18127. auto
  18128. # else
  18129. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  18130. const void * const &,
  18131. VULKAN_HPP_NAMESPACE::ObjectType const &,
  18132. uint64_t const &,
  18133. uint64_t const &,
  18134. size_t const &,
  18135. const void * const &>
  18136. # endif
  18137. reflect() const VULKAN_HPP_NOEXCEPT
  18138. {
  18139. return std::tie( sType, pNext, objectType, objectHandle, tagName, tagSize, pTag );
  18140. }
  18141. #endif
  18142. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  18143. auto operator<=>( DebugUtilsObjectTagInfoEXT const & ) const = default;
  18144. #else
  18145. bool operator==( DebugUtilsObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  18146. {
  18147. # if defined( VULKAN_HPP_USE_REFLECT )
  18148. return this->reflect() == rhs.reflect();
  18149. # else
  18150. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && ( objectHandle == rhs.objectHandle ) &&
  18151. ( tagName == rhs.tagName ) && ( tagSize == rhs.tagSize ) && ( pTag == rhs.pTag );
  18152. # endif
  18153. }
  18154. bool operator!=( DebugUtilsObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  18155. {
  18156. return !operator==( rhs );
  18157. }
  18158. #endif
  18159. public:
  18160. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT;
  18161. const void * pNext = {};
  18162. VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
  18163. uint64_t objectHandle = {};
  18164. uint64_t tagName = {};
  18165. size_t tagSize = {};
  18166. const void * pTag = {};
  18167. };
  18168. template <>
  18169. struct CppType<StructureType, StructureType::eDebugUtilsObjectTagInfoEXT>
  18170. {
  18171. using Type = DebugUtilsObjectTagInfoEXT;
  18172. };
  18173. struct DecompressMemoryRegionNV
  18174. {
  18175. using NativeType = VkDecompressMemoryRegionNV;
  18176. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18177. VULKAN_HPP_CONSTEXPR DecompressMemoryRegionNV( VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ = {},
  18178. VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress_ = {},
  18179. VULKAN_HPP_NAMESPACE::DeviceSize compressedSize_ = {},
  18180. VULKAN_HPP_NAMESPACE::DeviceSize decompressedSize_ = {},
  18181. VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethod_ = {} ) VULKAN_HPP_NOEXCEPT
  18182. : srcAddress( srcAddress_ )
  18183. , dstAddress( dstAddress_ )
  18184. , compressedSize( compressedSize_ )
  18185. , decompressedSize( decompressedSize_ )
  18186. , decompressionMethod( decompressionMethod_ )
  18187. {
  18188. }
  18189. VULKAN_HPP_CONSTEXPR DecompressMemoryRegionNV( DecompressMemoryRegionNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18190. DecompressMemoryRegionNV( VkDecompressMemoryRegionNV const & rhs ) VULKAN_HPP_NOEXCEPT
  18191. : DecompressMemoryRegionNV( *reinterpret_cast<DecompressMemoryRegionNV const *>( &rhs ) )
  18192. {
  18193. }
  18194. DecompressMemoryRegionNV & operator=( DecompressMemoryRegionNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18195. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18196. DecompressMemoryRegionNV & operator=( VkDecompressMemoryRegionNV const & rhs ) VULKAN_HPP_NOEXCEPT
  18197. {
  18198. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV const *>( &rhs );
  18199. return *this;
  18200. }
  18201. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18202. VULKAN_HPP_CONSTEXPR_14 DecompressMemoryRegionNV & setSrcAddress( VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress_ ) VULKAN_HPP_NOEXCEPT
  18203. {
  18204. srcAddress = srcAddress_;
  18205. return *this;
  18206. }
  18207. VULKAN_HPP_CONSTEXPR_14 DecompressMemoryRegionNV & setDstAddress( VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress_ ) VULKAN_HPP_NOEXCEPT
  18208. {
  18209. dstAddress = dstAddress_;
  18210. return *this;
  18211. }
  18212. VULKAN_HPP_CONSTEXPR_14 DecompressMemoryRegionNV & setCompressedSize( VULKAN_HPP_NAMESPACE::DeviceSize compressedSize_ ) VULKAN_HPP_NOEXCEPT
  18213. {
  18214. compressedSize = compressedSize_;
  18215. return *this;
  18216. }
  18217. VULKAN_HPP_CONSTEXPR_14 DecompressMemoryRegionNV & setDecompressedSize( VULKAN_HPP_NAMESPACE::DeviceSize decompressedSize_ ) VULKAN_HPP_NOEXCEPT
  18218. {
  18219. decompressedSize = decompressedSize_;
  18220. return *this;
  18221. }
  18222. VULKAN_HPP_CONSTEXPR_14 DecompressMemoryRegionNV &
  18223. setDecompressionMethod( VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethod_ ) VULKAN_HPP_NOEXCEPT
  18224. {
  18225. decompressionMethod = decompressionMethod_;
  18226. return *this;
  18227. }
  18228. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  18229. operator VkDecompressMemoryRegionNV const &() const VULKAN_HPP_NOEXCEPT
  18230. {
  18231. return *reinterpret_cast<const VkDecompressMemoryRegionNV *>( this );
  18232. }
  18233. operator VkDecompressMemoryRegionNV &() VULKAN_HPP_NOEXCEPT
  18234. {
  18235. return *reinterpret_cast<VkDecompressMemoryRegionNV *>( this );
  18236. }
  18237. #if defined( VULKAN_HPP_USE_REFLECT )
  18238. # if 14 <= VULKAN_HPP_CPP_VERSION
  18239. auto
  18240. # else
  18241. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  18242. VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  18243. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  18244. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  18245. VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV const &>
  18246. # endif
  18247. reflect() const VULKAN_HPP_NOEXCEPT
  18248. {
  18249. return std::tie( srcAddress, dstAddress, compressedSize, decompressedSize, decompressionMethod );
  18250. }
  18251. #endif
  18252. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  18253. auto operator<=>( DecompressMemoryRegionNV const & ) const = default;
  18254. #else
  18255. bool operator==( DecompressMemoryRegionNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  18256. {
  18257. # if defined( VULKAN_HPP_USE_REFLECT )
  18258. return this->reflect() == rhs.reflect();
  18259. # else
  18260. return ( srcAddress == rhs.srcAddress ) && ( dstAddress == rhs.dstAddress ) && ( compressedSize == rhs.compressedSize ) &&
  18261. ( decompressedSize == rhs.decompressedSize ) && ( decompressionMethod == rhs.decompressionMethod );
  18262. # endif
  18263. }
  18264. bool operator!=( DecompressMemoryRegionNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  18265. {
  18266. return !operator==( rhs );
  18267. }
  18268. #endif
  18269. public:
  18270. VULKAN_HPP_NAMESPACE::DeviceAddress srcAddress = {};
  18271. VULKAN_HPP_NAMESPACE::DeviceAddress dstAddress = {};
  18272. VULKAN_HPP_NAMESPACE::DeviceSize compressedSize = {};
  18273. VULKAN_HPP_NAMESPACE::DeviceSize decompressedSize = {};
  18274. VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethod = {};
  18275. };
  18276. struct DedicatedAllocationBufferCreateInfoNV
  18277. {
  18278. using NativeType = VkDedicatedAllocationBufferCreateInfoNV;
  18279. static const bool allowDuplicate = false;
  18280. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
  18281. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18282. VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {},
  18283. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  18284. : pNext( pNext_ )
  18285. , dedicatedAllocation( dedicatedAllocation_ )
  18286. {
  18287. }
  18288. VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18289. DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  18290. : DedicatedAllocationBufferCreateInfoNV( *reinterpret_cast<DedicatedAllocationBufferCreateInfoNV const *>( &rhs ) )
  18291. {
  18292. }
  18293. DedicatedAllocationBufferCreateInfoNV & operator=( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18294. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18295. DedicatedAllocationBufferCreateInfoNV & operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  18296. {
  18297. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV const *>( &rhs );
  18298. return *this;
  18299. }
  18300. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18301. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationBufferCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  18302. {
  18303. pNext = pNext_;
  18304. return *this;
  18305. }
  18306. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationBufferCreateInfoNV &
  18307. setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
  18308. {
  18309. dedicatedAllocation = dedicatedAllocation_;
  18310. return *this;
  18311. }
  18312. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  18313. operator VkDedicatedAllocationBufferCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  18314. {
  18315. return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV *>( this );
  18316. }
  18317. operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  18318. {
  18319. return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV *>( this );
  18320. }
  18321. #if defined( VULKAN_HPP_USE_REFLECT )
  18322. # if 14 <= VULKAN_HPP_CPP_VERSION
  18323. auto
  18324. # else
  18325. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  18326. # endif
  18327. reflect() const VULKAN_HPP_NOEXCEPT
  18328. {
  18329. return std::tie( sType, pNext, dedicatedAllocation );
  18330. }
  18331. #endif
  18332. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  18333. auto operator<=>( DedicatedAllocationBufferCreateInfoNV const & ) const = default;
  18334. #else
  18335. bool operator==( DedicatedAllocationBufferCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  18336. {
  18337. # if defined( VULKAN_HPP_USE_REFLECT )
  18338. return this->reflect() == rhs.reflect();
  18339. # else
  18340. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dedicatedAllocation == rhs.dedicatedAllocation );
  18341. # endif
  18342. }
  18343. bool operator!=( DedicatedAllocationBufferCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  18344. {
  18345. return !operator==( rhs );
  18346. }
  18347. #endif
  18348. public:
  18349. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
  18350. const void * pNext = {};
  18351. VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
  18352. };
  18353. template <>
  18354. struct CppType<StructureType, StructureType::eDedicatedAllocationBufferCreateInfoNV>
  18355. {
  18356. using Type = DedicatedAllocationBufferCreateInfoNV;
  18357. };
  18358. struct DedicatedAllocationImageCreateInfoNV
  18359. {
  18360. using NativeType = VkDedicatedAllocationImageCreateInfoNV;
  18361. static const bool allowDuplicate = false;
  18362. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationImageCreateInfoNV;
  18363. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18364. VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {},
  18365. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  18366. : pNext( pNext_ )
  18367. , dedicatedAllocation( dedicatedAllocation_ )
  18368. {
  18369. }
  18370. VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18371. DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  18372. : DedicatedAllocationImageCreateInfoNV( *reinterpret_cast<DedicatedAllocationImageCreateInfoNV const *>( &rhs ) )
  18373. {
  18374. }
  18375. DedicatedAllocationImageCreateInfoNV & operator=( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18376. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18377. DedicatedAllocationImageCreateInfoNV & operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  18378. {
  18379. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV const *>( &rhs );
  18380. return *this;
  18381. }
  18382. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18383. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationImageCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  18384. {
  18385. pNext = pNext_;
  18386. return *this;
  18387. }
  18388. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationImageCreateInfoNV &
  18389. setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT
  18390. {
  18391. dedicatedAllocation = dedicatedAllocation_;
  18392. return *this;
  18393. }
  18394. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  18395. operator VkDedicatedAllocationImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  18396. {
  18397. return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV *>( this );
  18398. }
  18399. operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  18400. {
  18401. return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV *>( this );
  18402. }
  18403. #if defined( VULKAN_HPP_USE_REFLECT )
  18404. # if 14 <= VULKAN_HPP_CPP_VERSION
  18405. auto
  18406. # else
  18407. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  18408. # endif
  18409. reflect() const VULKAN_HPP_NOEXCEPT
  18410. {
  18411. return std::tie( sType, pNext, dedicatedAllocation );
  18412. }
  18413. #endif
  18414. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  18415. auto operator<=>( DedicatedAllocationImageCreateInfoNV const & ) const = default;
  18416. #else
  18417. bool operator==( DedicatedAllocationImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  18418. {
  18419. # if defined( VULKAN_HPP_USE_REFLECT )
  18420. return this->reflect() == rhs.reflect();
  18421. # else
  18422. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dedicatedAllocation == rhs.dedicatedAllocation );
  18423. # endif
  18424. }
  18425. bool operator!=( DedicatedAllocationImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  18426. {
  18427. return !operator==( rhs );
  18428. }
  18429. #endif
  18430. public:
  18431. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV;
  18432. const void * pNext = {};
  18433. VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {};
  18434. };
  18435. template <>
  18436. struct CppType<StructureType, StructureType::eDedicatedAllocationImageCreateInfoNV>
  18437. {
  18438. using Type = DedicatedAllocationImageCreateInfoNV;
  18439. };
  18440. struct DedicatedAllocationMemoryAllocateInfoNV
  18441. {
  18442. using NativeType = VkDedicatedAllocationMemoryAllocateInfoNV;
  18443. static const bool allowDuplicate = false;
  18444. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
  18445. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18446. VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( VULKAN_HPP_NAMESPACE::Image image_ = {},
  18447. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  18448. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  18449. : pNext( pNext_ )
  18450. , image( image_ )
  18451. , buffer( buffer_ )
  18452. {
  18453. }
  18454. VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18455. DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  18456. : DedicatedAllocationMemoryAllocateInfoNV( *reinterpret_cast<DedicatedAllocationMemoryAllocateInfoNV const *>( &rhs ) )
  18457. {
  18458. }
  18459. DedicatedAllocationMemoryAllocateInfoNV & operator=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18460. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18461. DedicatedAllocationMemoryAllocateInfoNV & operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  18462. {
  18463. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV const *>( &rhs );
  18464. return *this;
  18465. }
  18466. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18467. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  18468. {
  18469. pNext = pNext_;
  18470. return *this;
  18471. }
  18472. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  18473. {
  18474. image = image_;
  18475. return *this;
  18476. }
  18477. VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  18478. {
  18479. buffer = buffer_;
  18480. return *this;
  18481. }
  18482. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  18483. operator VkDedicatedAllocationMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  18484. {
  18485. return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV *>( this );
  18486. }
  18487. operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
  18488. {
  18489. return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV *>( this );
  18490. }
  18491. #if defined( VULKAN_HPP_USE_REFLECT )
  18492. # if 14 <= VULKAN_HPP_CPP_VERSION
  18493. auto
  18494. # else
  18495. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::Buffer const &>
  18496. # endif
  18497. reflect() const VULKAN_HPP_NOEXCEPT
  18498. {
  18499. return std::tie( sType, pNext, image, buffer );
  18500. }
  18501. #endif
  18502. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  18503. auto operator<=>( DedicatedAllocationMemoryAllocateInfoNV const & ) const = default;
  18504. #else
  18505. bool operator==( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  18506. {
  18507. # if defined( VULKAN_HPP_USE_REFLECT )
  18508. return this->reflect() == rhs.reflect();
  18509. # else
  18510. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( buffer == rhs.buffer );
  18511. # endif
  18512. }
  18513. bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  18514. {
  18515. return !operator==( rhs );
  18516. }
  18517. #endif
  18518. public:
  18519. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
  18520. const void * pNext = {};
  18521. VULKAN_HPP_NAMESPACE::Image image = {};
  18522. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  18523. };
  18524. template <>
  18525. struct CppType<StructureType, StructureType::eDedicatedAllocationMemoryAllocateInfoNV>
  18526. {
  18527. using Type = DedicatedAllocationMemoryAllocateInfoNV;
  18528. };
  18529. struct MemoryBarrier2
  18530. {
  18531. using NativeType = VkMemoryBarrier2;
  18532. static const bool allowDuplicate = false;
  18533. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier2;
  18534. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18535. VULKAN_HPP_CONSTEXPR MemoryBarrier2( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ = {},
  18536. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ = {},
  18537. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ = {},
  18538. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ = {},
  18539. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  18540. : pNext( pNext_ )
  18541. , srcStageMask( srcStageMask_ )
  18542. , srcAccessMask( srcAccessMask_ )
  18543. , dstStageMask( dstStageMask_ )
  18544. , dstAccessMask( dstAccessMask_ )
  18545. {
  18546. }
  18547. VULKAN_HPP_CONSTEXPR MemoryBarrier2( MemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18548. MemoryBarrier2( VkMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryBarrier2( *reinterpret_cast<MemoryBarrier2 const *>( &rhs ) ) {}
  18549. MemoryBarrier2 & operator=( MemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18550. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18551. MemoryBarrier2 & operator=( VkMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
  18552. {
  18553. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier2 const *>( &rhs );
  18554. return *this;
  18555. }
  18556. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18557. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  18558. {
  18559. pNext = pNext_;
  18560. return *this;
  18561. }
  18562. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ ) VULKAN_HPP_NOEXCEPT
  18563. {
  18564. srcStageMask = srcStageMask_;
  18565. return *this;
  18566. }
  18567. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  18568. {
  18569. srcAccessMask = srcAccessMask_;
  18570. return *this;
  18571. }
  18572. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ ) VULKAN_HPP_NOEXCEPT
  18573. {
  18574. dstStageMask = dstStageMask_;
  18575. return *this;
  18576. }
  18577. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  18578. {
  18579. dstAccessMask = dstAccessMask_;
  18580. return *this;
  18581. }
  18582. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  18583. operator VkMemoryBarrier2 const &() const VULKAN_HPP_NOEXCEPT
  18584. {
  18585. return *reinterpret_cast<const VkMemoryBarrier2 *>( this );
  18586. }
  18587. operator VkMemoryBarrier2 &() VULKAN_HPP_NOEXCEPT
  18588. {
  18589. return *reinterpret_cast<VkMemoryBarrier2 *>( this );
  18590. }
  18591. #if defined( VULKAN_HPP_USE_REFLECT )
  18592. # if 14 <= VULKAN_HPP_CPP_VERSION
  18593. auto
  18594. # else
  18595. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  18596. const void * const &,
  18597. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  18598. VULKAN_HPP_NAMESPACE::AccessFlags2 const &,
  18599. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  18600. VULKAN_HPP_NAMESPACE::AccessFlags2 const &>
  18601. # endif
  18602. reflect() const VULKAN_HPP_NOEXCEPT
  18603. {
  18604. return std::tie( sType, pNext, srcStageMask, srcAccessMask, dstStageMask, dstAccessMask );
  18605. }
  18606. #endif
  18607. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  18608. auto operator<=>( MemoryBarrier2 const & ) const = default;
  18609. #else
  18610. bool operator==( MemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  18611. {
  18612. # if defined( VULKAN_HPP_USE_REFLECT )
  18613. return this->reflect() == rhs.reflect();
  18614. # else
  18615. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcStageMask == rhs.srcStageMask ) && ( srcAccessMask == rhs.srcAccessMask ) &&
  18616. ( dstStageMask == rhs.dstStageMask ) && ( dstAccessMask == rhs.dstAccessMask );
  18617. # endif
  18618. }
  18619. bool operator!=( MemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  18620. {
  18621. return !operator==( rhs );
  18622. }
  18623. #endif
  18624. public:
  18625. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier2;
  18626. const void * pNext = {};
  18627. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask = {};
  18628. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask = {};
  18629. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask = {};
  18630. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask = {};
  18631. };
  18632. template <>
  18633. struct CppType<StructureType, StructureType::eMemoryBarrier2>
  18634. {
  18635. using Type = MemoryBarrier2;
  18636. };
  18637. using MemoryBarrier2KHR = MemoryBarrier2;
  18638. struct ImageSubresourceRange
  18639. {
  18640. using NativeType = VkImageSubresourceRange;
  18641. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18642. VULKAN_HPP_CONSTEXPR ImageSubresourceRange( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
  18643. uint32_t baseMipLevel_ = {},
  18644. uint32_t levelCount_ = {},
  18645. uint32_t baseArrayLayer_ = {},
  18646. uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT
  18647. : aspectMask( aspectMask_ )
  18648. , baseMipLevel( baseMipLevel_ )
  18649. , levelCount( levelCount_ )
  18650. , baseArrayLayer( baseArrayLayer_ )
  18651. , layerCount( layerCount_ )
  18652. {
  18653. }
  18654. VULKAN_HPP_CONSTEXPR ImageSubresourceRange( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18655. ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
  18656. : ImageSubresourceRange( *reinterpret_cast<ImageSubresourceRange const *>( &rhs ) )
  18657. {
  18658. }
  18659. ImageSubresourceRange & operator=( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18660. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18661. ImageSubresourceRange & operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT
  18662. {
  18663. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresourceRange const *>( &rhs );
  18664. return *this;
  18665. }
  18666. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18667. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  18668. {
  18669. aspectMask = aspectMask_;
  18670. return *this;
  18671. }
  18672. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT
  18673. {
  18674. baseMipLevel = baseMipLevel_;
  18675. return *this;
  18676. }
  18677. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT
  18678. {
  18679. levelCount = levelCount_;
  18680. return *this;
  18681. }
  18682. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
  18683. {
  18684. baseArrayLayer = baseArrayLayer_;
  18685. return *this;
  18686. }
  18687. VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  18688. {
  18689. layerCount = layerCount_;
  18690. return *this;
  18691. }
  18692. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  18693. operator VkImageSubresourceRange const &() const VULKAN_HPP_NOEXCEPT
  18694. {
  18695. return *reinterpret_cast<const VkImageSubresourceRange *>( this );
  18696. }
  18697. operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT
  18698. {
  18699. return *reinterpret_cast<VkImageSubresourceRange *>( this );
  18700. }
  18701. #if defined( VULKAN_HPP_USE_REFLECT )
  18702. # if 14 <= VULKAN_HPP_CPP_VERSION
  18703. auto
  18704. # else
  18705. std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
  18706. # endif
  18707. reflect() const VULKAN_HPP_NOEXCEPT
  18708. {
  18709. return std::tie( aspectMask, baseMipLevel, levelCount, baseArrayLayer, layerCount );
  18710. }
  18711. #endif
  18712. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  18713. auto operator<=>( ImageSubresourceRange const & ) const = default;
  18714. #else
  18715. bool operator==( ImageSubresourceRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  18716. {
  18717. # if defined( VULKAN_HPP_USE_REFLECT )
  18718. return this->reflect() == rhs.reflect();
  18719. # else
  18720. return ( aspectMask == rhs.aspectMask ) && ( baseMipLevel == rhs.baseMipLevel ) && ( levelCount == rhs.levelCount ) &&
  18721. ( baseArrayLayer == rhs.baseArrayLayer ) && ( layerCount == rhs.layerCount );
  18722. # endif
  18723. }
  18724. bool operator!=( ImageSubresourceRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  18725. {
  18726. return !operator==( rhs );
  18727. }
  18728. #endif
  18729. public:
  18730. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  18731. uint32_t baseMipLevel = {};
  18732. uint32_t levelCount = {};
  18733. uint32_t baseArrayLayer = {};
  18734. uint32_t layerCount = {};
  18735. };
  18736. struct ImageMemoryBarrier2
  18737. {
  18738. using NativeType = VkImageMemoryBarrier2;
  18739. static const bool allowDuplicate = false;
  18740. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier2;
  18741. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18742. VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ = {},
  18743. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ = {},
  18744. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ = {},
  18745. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ = {},
  18746. VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  18747. VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  18748. uint32_t srcQueueFamilyIndex_ = {},
  18749. uint32_t dstQueueFamilyIndex_ = {},
  18750. VULKAN_HPP_NAMESPACE::Image image_ = {},
  18751. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
  18752. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  18753. : pNext( pNext_ )
  18754. , srcStageMask( srcStageMask_ )
  18755. , srcAccessMask( srcAccessMask_ )
  18756. , dstStageMask( dstStageMask_ )
  18757. , dstAccessMask( dstAccessMask_ )
  18758. , oldLayout( oldLayout_ )
  18759. , newLayout( newLayout_ )
  18760. , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
  18761. , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
  18762. , image( image_ )
  18763. , subresourceRange( subresourceRange_ )
  18764. {
  18765. }
  18766. VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2( ImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18767. ImageMemoryBarrier2( VkImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT : ImageMemoryBarrier2( *reinterpret_cast<ImageMemoryBarrier2 const *>( &rhs ) )
  18768. {
  18769. }
  18770. ImageMemoryBarrier2 & operator=( ImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18771. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18772. ImageMemoryBarrier2 & operator=( VkImageMemoryBarrier2 const & rhs ) VULKAN_HPP_NOEXCEPT
  18773. {
  18774. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 const *>( &rhs );
  18775. return *this;
  18776. }
  18777. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18778. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  18779. {
  18780. pNext = pNext_;
  18781. return *this;
  18782. }
  18783. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ ) VULKAN_HPP_NOEXCEPT
  18784. {
  18785. srcStageMask = srcStageMask_;
  18786. return *this;
  18787. }
  18788. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  18789. {
  18790. srcAccessMask = srcAccessMask_;
  18791. return *this;
  18792. }
  18793. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ ) VULKAN_HPP_NOEXCEPT
  18794. {
  18795. dstStageMask = dstStageMask_;
  18796. return *this;
  18797. }
  18798. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  18799. {
  18800. dstAccessMask = dstAccessMask_;
  18801. return *this;
  18802. }
  18803. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
  18804. {
  18805. oldLayout = oldLayout_;
  18806. return *this;
  18807. }
  18808. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
  18809. {
  18810. newLayout = newLayout_;
  18811. return *this;
  18812. }
  18813. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  18814. {
  18815. srcQueueFamilyIndex = srcQueueFamilyIndex_;
  18816. return *this;
  18817. }
  18818. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  18819. {
  18820. dstQueueFamilyIndex = dstQueueFamilyIndex_;
  18821. return *this;
  18822. }
  18823. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  18824. {
  18825. image = image_;
  18826. return *this;
  18827. }
  18828. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2 &
  18829. setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
  18830. {
  18831. subresourceRange = subresourceRange_;
  18832. return *this;
  18833. }
  18834. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  18835. operator VkImageMemoryBarrier2 const &() const VULKAN_HPP_NOEXCEPT
  18836. {
  18837. return *reinterpret_cast<const VkImageMemoryBarrier2 *>( this );
  18838. }
  18839. operator VkImageMemoryBarrier2 &() VULKAN_HPP_NOEXCEPT
  18840. {
  18841. return *reinterpret_cast<VkImageMemoryBarrier2 *>( this );
  18842. }
  18843. #if defined( VULKAN_HPP_USE_REFLECT )
  18844. # if 14 <= VULKAN_HPP_CPP_VERSION
  18845. auto
  18846. # else
  18847. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  18848. const void * const &,
  18849. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  18850. VULKAN_HPP_NAMESPACE::AccessFlags2 const &,
  18851. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  18852. VULKAN_HPP_NAMESPACE::AccessFlags2 const &,
  18853. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  18854. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  18855. uint32_t const &,
  18856. uint32_t const &,
  18857. VULKAN_HPP_NAMESPACE::Image const &,
  18858. VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
  18859. # endif
  18860. reflect() const VULKAN_HPP_NOEXCEPT
  18861. {
  18862. return std::tie( sType,
  18863. pNext,
  18864. srcStageMask,
  18865. srcAccessMask,
  18866. dstStageMask,
  18867. dstAccessMask,
  18868. oldLayout,
  18869. newLayout,
  18870. srcQueueFamilyIndex,
  18871. dstQueueFamilyIndex,
  18872. image,
  18873. subresourceRange );
  18874. }
  18875. #endif
  18876. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  18877. auto operator<=>( ImageMemoryBarrier2 const & ) const = default;
  18878. #else
  18879. bool operator==( ImageMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  18880. {
  18881. # if defined( VULKAN_HPP_USE_REFLECT )
  18882. return this->reflect() == rhs.reflect();
  18883. # else
  18884. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcStageMask == rhs.srcStageMask ) && ( srcAccessMask == rhs.srcAccessMask ) &&
  18885. ( dstStageMask == rhs.dstStageMask ) && ( dstAccessMask == rhs.dstAccessMask ) && ( oldLayout == rhs.oldLayout ) &&
  18886. ( newLayout == rhs.newLayout ) && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) &&
  18887. ( image == rhs.image ) && ( subresourceRange == rhs.subresourceRange );
  18888. # endif
  18889. }
  18890. bool operator!=( ImageMemoryBarrier2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  18891. {
  18892. return !operator==( rhs );
  18893. }
  18894. #endif
  18895. public:
  18896. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier2;
  18897. const void * pNext = {};
  18898. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask = {};
  18899. VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask = {};
  18900. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask = {};
  18901. VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask = {};
  18902. VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  18903. VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  18904. uint32_t srcQueueFamilyIndex = {};
  18905. uint32_t dstQueueFamilyIndex = {};
  18906. VULKAN_HPP_NAMESPACE::Image image = {};
  18907. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
  18908. };
  18909. template <>
  18910. struct CppType<StructureType, StructureType::eImageMemoryBarrier2>
  18911. {
  18912. using Type = ImageMemoryBarrier2;
  18913. };
  18914. using ImageMemoryBarrier2KHR = ImageMemoryBarrier2;
  18915. struct DependencyInfo
  18916. {
  18917. using NativeType = VkDependencyInfo;
  18918. static const bool allowDuplicate = false;
  18919. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDependencyInfo;
  18920. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  18921. VULKAN_HPP_CONSTEXPR DependencyInfo( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {},
  18922. uint32_t memoryBarrierCount_ = {},
  18923. const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * pMemoryBarriers_ = {},
  18924. uint32_t bufferMemoryBarrierCount_ = {},
  18925. const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * pBufferMemoryBarriers_ = {},
  18926. uint32_t imageMemoryBarrierCount_ = {},
  18927. const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers_ = {},
  18928. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  18929. : pNext( pNext_ )
  18930. , dependencyFlags( dependencyFlags_ )
  18931. , memoryBarrierCount( memoryBarrierCount_ )
  18932. , pMemoryBarriers( pMemoryBarriers_ )
  18933. , bufferMemoryBarrierCount( bufferMemoryBarrierCount_ )
  18934. , pBufferMemoryBarriers( pBufferMemoryBarriers_ )
  18935. , imageMemoryBarrierCount( imageMemoryBarrierCount_ )
  18936. , pImageMemoryBarriers( pImageMemoryBarriers_ )
  18937. {
  18938. }
  18939. VULKAN_HPP_CONSTEXPR DependencyInfo( DependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18940. DependencyInfo( VkDependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT : DependencyInfo( *reinterpret_cast<DependencyInfo const *>( &rhs ) ) {}
  18941. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  18942. DependencyInfo( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_,
  18943. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryBarrier2> const & memoryBarriers_,
  18944. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2> const & bufferMemoryBarriers_ = {},
  18945. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2> const & imageMemoryBarriers_ = {},
  18946. const void * pNext_ = nullptr )
  18947. : pNext( pNext_ )
  18948. , dependencyFlags( dependencyFlags_ )
  18949. , memoryBarrierCount( static_cast<uint32_t>( memoryBarriers_.size() ) )
  18950. , pMemoryBarriers( memoryBarriers_.data() )
  18951. , bufferMemoryBarrierCount( static_cast<uint32_t>( bufferMemoryBarriers_.size() ) )
  18952. , pBufferMemoryBarriers( bufferMemoryBarriers_.data() )
  18953. , imageMemoryBarrierCount( static_cast<uint32_t>( imageMemoryBarriers_.size() ) )
  18954. , pImageMemoryBarriers( imageMemoryBarriers_.data() )
  18955. {
  18956. }
  18957. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  18958. DependencyInfo & operator=( DependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  18959. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  18960. DependencyInfo & operator=( VkDependencyInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  18961. {
  18962. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DependencyInfo const *>( &rhs );
  18963. return *this;
  18964. }
  18965. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  18966. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  18967. {
  18968. pNext = pNext_;
  18969. return *this;
  18970. }
  18971. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
  18972. {
  18973. dependencyFlags = dependencyFlags_;
  18974. return *this;
  18975. }
  18976. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setMemoryBarrierCount( uint32_t memoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
  18977. {
  18978. memoryBarrierCount = memoryBarrierCount_;
  18979. return *this;
  18980. }
  18981. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setPMemoryBarriers( const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * pMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  18982. {
  18983. pMemoryBarriers = pMemoryBarriers_;
  18984. return *this;
  18985. }
  18986. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  18987. DependencyInfo &
  18988. setMemoryBarriers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MemoryBarrier2> const & memoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  18989. {
  18990. memoryBarrierCount = static_cast<uint32_t>( memoryBarriers_.size() );
  18991. pMemoryBarriers = memoryBarriers_.data();
  18992. return *this;
  18993. }
  18994. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  18995. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setBufferMemoryBarrierCount( uint32_t bufferMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
  18996. {
  18997. bufferMemoryBarrierCount = bufferMemoryBarrierCount_;
  18998. return *this;
  18999. }
  19000. VULKAN_HPP_CONSTEXPR_14 DependencyInfo &
  19001. setPBufferMemoryBarriers( const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * pBufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  19002. {
  19003. pBufferMemoryBarriers = pBufferMemoryBarriers_;
  19004. return *this;
  19005. }
  19006. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19007. DependencyInfo & setBufferMemoryBarriers(
  19008. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2> const & bufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  19009. {
  19010. bufferMemoryBarrierCount = static_cast<uint32_t>( bufferMemoryBarriers_.size() );
  19011. pBufferMemoryBarriers = bufferMemoryBarriers_.data();
  19012. return *this;
  19013. }
  19014. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19015. VULKAN_HPP_CONSTEXPR_14 DependencyInfo & setImageMemoryBarrierCount( uint32_t imageMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT
  19016. {
  19017. imageMemoryBarrierCount = imageMemoryBarrierCount_;
  19018. return *this;
  19019. }
  19020. VULKAN_HPP_CONSTEXPR_14 DependencyInfo &
  19021. setPImageMemoryBarriers( const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  19022. {
  19023. pImageMemoryBarriers = pImageMemoryBarriers_;
  19024. return *this;
  19025. }
  19026. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  19027. DependencyInfo & setImageMemoryBarriers(
  19028. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2> const & imageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT
  19029. {
  19030. imageMemoryBarrierCount = static_cast<uint32_t>( imageMemoryBarriers_.size() );
  19031. pImageMemoryBarriers = imageMemoryBarriers_.data();
  19032. return *this;
  19033. }
  19034. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  19035. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19036. operator VkDependencyInfo const &() const VULKAN_HPP_NOEXCEPT
  19037. {
  19038. return *reinterpret_cast<const VkDependencyInfo *>( this );
  19039. }
  19040. operator VkDependencyInfo &() VULKAN_HPP_NOEXCEPT
  19041. {
  19042. return *reinterpret_cast<VkDependencyInfo *>( this );
  19043. }
  19044. #if defined( VULKAN_HPP_USE_REFLECT )
  19045. # if 14 <= VULKAN_HPP_CPP_VERSION
  19046. auto
  19047. # else
  19048. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  19049. const void * const &,
  19050. VULKAN_HPP_NAMESPACE::DependencyFlags const &,
  19051. uint32_t const &,
  19052. const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * const &,
  19053. uint32_t const &,
  19054. const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * const &,
  19055. uint32_t const &,
  19056. const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * const &>
  19057. # endif
  19058. reflect() const VULKAN_HPP_NOEXCEPT
  19059. {
  19060. return std::tie( sType,
  19061. pNext,
  19062. dependencyFlags,
  19063. memoryBarrierCount,
  19064. pMemoryBarriers,
  19065. bufferMemoryBarrierCount,
  19066. pBufferMemoryBarriers,
  19067. imageMemoryBarrierCount,
  19068. pImageMemoryBarriers );
  19069. }
  19070. #endif
  19071. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19072. auto operator<=>( DependencyInfo const & ) const = default;
  19073. #else
  19074. bool operator==( DependencyInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19075. {
  19076. # if defined( VULKAN_HPP_USE_REFLECT )
  19077. return this->reflect() == rhs.reflect();
  19078. # else
  19079. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dependencyFlags == rhs.dependencyFlags ) &&
  19080. ( memoryBarrierCount == rhs.memoryBarrierCount ) && ( pMemoryBarriers == rhs.pMemoryBarriers ) &&
  19081. ( bufferMemoryBarrierCount == rhs.bufferMemoryBarrierCount ) && ( pBufferMemoryBarriers == rhs.pBufferMemoryBarriers ) &&
  19082. ( imageMemoryBarrierCount == rhs.imageMemoryBarrierCount ) && ( pImageMemoryBarriers == rhs.pImageMemoryBarriers );
  19083. # endif
  19084. }
  19085. bool operator!=( DependencyInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19086. {
  19087. return !operator==( rhs );
  19088. }
  19089. #endif
  19090. public:
  19091. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDependencyInfo;
  19092. const void * pNext = {};
  19093. VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
  19094. uint32_t memoryBarrierCount = {};
  19095. const VULKAN_HPP_NAMESPACE::MemoryBarrier2 * pMemoryBarriers = {};
  19096. uint32_t bufferMemoryBarrierCount = {};
  19097. const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 * pBufferMemoryBarriers = {};
  19098. uint32_t imageMemoryBarrierCount = {};
  19099. const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 * pImageMemoryBarriers = {};
  19100. };
  19101. template <>
  19102. struct CppType<StructureType, StructureType::eDependencyInfo>
  19103. {
  19104. using Type = DependencyInfo;
  19105. };
  19106. using DependencyInfoKHR = DependencyInfo;
  19107. struct DepthBiasInfoEXT
  19108. {
  19109. using NativeType = VkDepthBiasInfoEXT;
  19110. static const bool allowDuplicate = false;
  19111. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDepthBiasInfoEXT;
  19112. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19113. VULKAN_HPP_CONSTEXPR DepthBiasInfoEXT( float depthBiasConstantFactor_ = {},
  19114. float depthBiasClamp_ = {},
  19115. float depthBiasSlopeFactor_ = {},
  19116. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19117. : pNext( pNext_ )
  19118. , depthBiasConstantFactor( depthBiasConstantFactor_ )
  19119. , depthBiasClamp( depthBiasClamp_ )
  19120. , depthBiasSlopeFactor( depthBiasSlopeFactor_ )
  19121. {
  19122. }
  19123. VULKAN_HPP_CONSTEXPR DepthBiasInfoEXT( DepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19124. DepthBiasInfoEXT( VkDepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DepthBiasInfoEXT( *reinterpret_cast<DepthBiasInfoEXT const *>( &rhs ) ) {}
  19125. DepthBiasInfoEXT & operator=( DepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19126. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19127. DepthBiasInfoEXT & operator=( VkDepthBiasInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19128. {
  19129. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT const *>( &rhs );
  19130. return *this;
  19131. }
  19132. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19133. VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19134. {
  19135. pNext = pNext_;
  19136. return *this;
  19137. }
  19138. VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT
  19139. {
  19140. depthBiasConstantFactor = depthBiasConstantFactor_;
  19141. return *this;
  19142. }
  19143. VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
  19144. {
  19145. depthBiasClamp = depthBiasClamp_;
  19146. return *this;
  19147. }
  19148. VULKAN_HPP_CONSTEXPR_14 DepthBiasInfoEXT & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT
  19149. {
  19150. depthBiasSlopeFactor = depthBiasSlopeFactor_;
  19151. return *this;
  19152. }
  19153. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19154. operator VkDepthBiasInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  19155. {
  19156. return *reinterpret_cast<const VkDepthBiasInfoEXT *>( this );
  19157. }
  19158. operator VkDepthBiasInfoEXT &() VULKAN_HPP_NOEXCEPT
  19159. {
  19160. return *reinterpret_cast<VkDepthBiasInfoEXT *>( this );
  19161. }
  19162. #if defined( VULKAN_HPP_USE_REFLECT )
  19163. # if 14 <= VULKAN_HPP_CPP_VERSION
  19164. auto
  19165. # else
  19166. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, float const &, float const &, float const &>
  19167. # endif
  19168. reflect() const VULKAN_HPP_NOEXCEPT
  19169. {
  19170. return std::tie( sType, pNext, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
  19171. }
  19172. #endif
  19173. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19174. auto operator<=>( DepthBiasInfoEXT const & ) const = default;
  19175. #else
  19176. bool operator==( DepthBiasInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19177. {
  19178. # if defined( VULKAN_HPP_USE_REFLECT )
  19179. return this->reflect() == rhs.reflect();
  19180. # else
  19181. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor ) &&
  19182. ( depthBiasClamp == rhs.depthBiasClamp ) && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor );
  19183. # endif
  19184. }
  19185. bool operator!=( DepthBiasInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19186. {
  19187. return !operator==( rhs );
  19188. }
  19189. #endif
  19190. public:
  19191. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDepthBiasInfoEXT;
  19192. const void * pNext = {};
  19193. float depthBiasConstantFactor = {};
  19194. float depthBiasClamp = {};
  19195. float depthBiasSlopeFactor = {};
  19196. };
  19197. template <>
  19198. struct CppType<StructureType, StructureType::eDepthBiasInfoEXT>
  19199. {
  19200. using Type = DepthBiasInfoEXT;
  19201. };
  19202. struct DepthBiasRepresentationInfoEXT
  19203. {
  19204. using NativeType = VkDepthBiasRepresentationInfoEXT;
  19205. static const bool allowDuplicate = false;
  19206. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDepthBiasRepresentationInfoEXT;
  19207. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19208. VULKAN_HPP_CONSTEXPR DepthBiasRepresentationInfoEXT( VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT depthBiasRepresentation_ =
  19209. VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT::eLeastRepresentableValueFormat,
  19210. VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ = {},
  19211. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19212. : pNext( pNext_ )
  19213. , depthBiasRepresentation( depthBiasRepresentation_ )
  19214. , depthBiasExact( depthBiasExact_ )
  19215. {
  19216. }
  19217. VULKAN_HPP_CONSTEXPR DepthBiasRepresentationInfoEXT( DepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19218. DepthBiasRepresentationInfoEXT( VkDepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19219. : DepthBiasRepresentationInfoEXT( *reinterpret_cast<DepthBiasRepresentationInfoEXT const *>( &rhs ) )
  19220. {
  19221. }
  19222. DepthBiasRepresentationInfoEXT & operator=( DepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19223. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19224. DepthBiasRepresentationInfoEXT & operator=( VkDepthBiasRepresentationInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19225. {
  19226. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT const *>( &rhs );
  19227. return *this;
  19228. }
  19229. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19230. VULKAN_HPP_CONSTEXPR_14 DepthBiasRepresentationInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19231. {
  19232. pNext = pNext_;
  19233. return *this;
  19234. }
  19235. VULKAN_HPP_CONSTEXPR_14 DepthBiasRepresentationInfoEXT &
  19236. setDepthBiasRepresentation( VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT depthBiasRepresentation_ ) VULKAN_HPP_NOEXCEPT
  19237. {
  19238. depthBiasRepresentation = depthBiasRepresentation_;
  19239. return *this;
  19240. }
  19241. VULKAN_HPP_CONSTEXPR_14 DepthBiasRepresentationInfoEXT & setDepthBiasExact( VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ ) VULKAN_HPP_NOEXCEPT
  19242. {
  19243. depthBiasExact = depthBiasExact_;
  19244. return *this;
  19245. }
  19246. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19247. operator VkDepthBiasRepresentationInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  19248. {
  19249. return *reinterpret_cast<const VkDepthBiasRepresentationInfoEXT *>( this );
  19250. }
  19251. operator VkDepthBiasRepresentationInfoEXT &() VULKAN_HPP_NOEXCEPT
  19252. {
  19253. return *reinterpret_cast<VkDepthBiasRepresentationInfoEXT *>( this );
  19254. }
  19255. #if defined( VULKAN_HPP_USE_REFLECT )
  19256. # if 14 <= VULKAN_HPP_CPP_VERSION
  19257. auto
  19258. # else
  19259. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  19260. const void * const &,
  19261. VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT const &,
  19262. VULKAN_HPP_NAMESPACE::Bool32 const &>
  19263. # endif
  19264. reflect() const VULKAN_HPP_NOEXCEPT
  19265. {
  19266. return std::tie( sType, pNext, depthBiasRepresentation, depthBiasExact );
  19267. }
  19268. #endif
  19269. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19270. auto operator<=>( DepthBiasRepresentationInfoEXT const & ) const = default;
  19271. #else
  19272. bool operator==( DepthBiasRepresentationInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19273. {
  19274. # if defined( VULKAN_HPP_USE_REFLECT )
  19275. return this->reflect() == rhs.reflect();
  19276. # else
  19277. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthBiasRepresentation == rhs.depthBiasRepresentation ) &&
  19278. ( depthBiasExact == rhs.depthBiasExact );
  19279. # endif
  19280. }
  19281. bool operator!=( DepthBiasRepresentationInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19282. {
  19283. return !operator==( rhs );
  19284. }
  19285. #endif
  19286. public:
  19287. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDepthBiasRepresentationInfoEXT;
  19288. const void * pNext = {};
  19289. VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT depthBiasRepresentation = VULKAN_HPP_NAMESPACE::DepthBiasRepresentationEXT::eLeastRepresentableValueFormat;
  19290. VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact = {};
  19291. };
  19292. template <>
  19293. struct CppType<StructureType, StructureType::eDepthBiasRepresentationInfoEXT>
  19294. {
  19295. using Type = DepthBiasRepresentationInfoEXT;
  19296. };
  19297. struct DescriptorAddressInfoEXT
  19298. {
  19299. using NativeType = VkDescriptorAddressInfoEXT;
  19300. static const bool allowDuplicate = false;
  19301. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorAddressInfoEXT;
  19302. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19303. VULKAN_HPP_CONSTEXPR DescriptorAddressInfoEXT( VULKAN_HPP_NAMESPACE::DeviceAddress address_ = {},
  19304. VULKAN_HPP_NAMESPACE::DeviceSize range_ = {},
  19305. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  19306. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19307. : pNext( pNext_ )
  19308. , address( address_ )
  19309. , range( range_ )
  19310. , format( format_ )
  19311. {
  19312. }
  19313. VULKAN_HPP_CONSTEXPR DescriptorAddressInfoEXT( DescriptorAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19314. DescriptorAddressInfoEXT( VkDescriptorAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19315. : DescriptorAddressInfoEXT( *reinterpret_cast<DescriptorAddressInfoEXT const *>( &rhs ) )
  19316. {
  19317. }
  19318. DescriptorAddressInfoEXT & operator=( DescriptorAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19319. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19320. DescriptorAddressInfoEXT & operator=( VkDescriptorAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19321. {
  19322. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT const *>( &rhs );
  19323. return *this;
  19324. }
  19325. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19326. VULKAN_HPP_CONSTEXPR_14 DescriptorAddressInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19327. {
  19328. pNext = pNext_;
  19329. return *this;
  19330. }
  19331. VULKAN_HPP_CONSTEXPR_14 DescriptorAddressInfoEXT & setAddress( VULKAN_HPP_NAMESPACE::DeviceAddress address_ ) VULKAN_HPP_NOEXCEPT
  19332. {
  19333. address = address_;
  19334. return *this;
  19335. }
  19336. VULKAN_HPP_CONSTEXPR_14 DescriptorAddressInfoEXT & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
  19337. {
  19338. range = range_;
  19339. return *this;
  19340. }
  19341. VULKAN_HPP_CONSTEXPR_14 DescriptorAddressInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  19342. {
  19343. format = format_;
  19344. return *this;
  19345. }
  19346. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19347. operator VkDescriptorAddressInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  19348. {
  19349. return *reinterpret_cast<const VkDescriptorAddressInfoEXT *>( this );
  19350. }
  19351. operator VkDescriptorAddressInfoEXT &() VULKAN_HPP_NOEXCEPT
  19352. {
  19353. return *reinterpret_cast<VkDescriptorAddressInfoEXT *>( this );
  19354. }
  19355. #if defined( VULKAN_HPP_USE_REFLECT )
  19356. # if 14 <= VULKAN_HPP_CPP_VERSION
  19357. auto
  19358. # else
  19359. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  19360. void * const &,
  19361. VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  19362. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  19363. VULKAN_HPP_NAMESPACE::Format const &>
  19364. # endif
  19365. reflect() const VULKAN_HPP_NOEXCEPT
  19366. {
  19367. return std::tie( sType, pNext, address, range, format );
  19368. }
  19369. #endif
  19370. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19371. auto operator<=>( DescriptorAddressInfoEXT const & ) const = default;
  19372. #else
  19373. bool operator==( DescriptorAddressInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19374. {
  19375. # if defined( VULKAN_HPP_USE_REFLECT )
  19376. return this->reflect() == rhs.reflect();
  19377. # else
  19378. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( address == rhs.address ) && ( range == rhs.range ) && ( format == rhs.format );
  19379. # endif
  19380. }
  19381. bool operator!=( DescriptorAddressInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19382. {
  19383. return !operator==( rhs );
  19384. }
  19385. #endif
  19386. public:
  19387. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorAddressInfoEXT;
  19388. void * pNext = {};
  19389. VULKAN_HPP_NAMESPACE::DeviceAddress address = {};
  19390. VULKAN_HPP_NAMESPACE::DeviceSize range = {};
  19391. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  19392. };
  19393. template <>
  19394. struct CppType<StructureType, StructureType::eDescriptorAddressInfoEXT>
  19395. {
  19396. using Type = DescriptorAddressInfoEXT;
  19397. };
  19398. struct DescriptorBufferBindingInfoEXT
  19399. {
  19400. using NativeType = VkDescriptorBufferBindingInfoEXT;
  19401. static const bool allowDuplicate = false;
  19402. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorBufferBindingInfoEXT;
  19403. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19404. VULKAN_HPP_CONSTEXPR DescriptorBufferBindingInfoEXT( VULKAN_HPP_NAMESPACE::DeviceAddress address_ = {},
  19405. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {},
  19406. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19407. : pNext( pNext_ )
  19408. , address( address_ )
  19409. , usage( usage_ )
  19410. {
  19411. }
  19412. VULKAN_HPP_CONSTEXPR DescriptorBufferBindingInfoEXT( DescriptorBufferBindingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19413. DescriptorBufferBindingInfoEXT( VkDescriptorBufferBindingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19414. : DescriptorBufferBindingInfoEXT( *reinterpret_cast<DescriptorBufferBindingInfoEXT const *>( &rhs ) )
  19415. {
  19416. }
  19417. DescriptorBufferBindingInfoEXT & operator=( DescriptorBufferBindingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19418. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19419. DescriptorBufferBindingInfoEXT & operator=( VkDescriptorBufferBindingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19420. {
  19421. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT const *>( &rhs );
  19422. return *this;
  19423. }
  19424. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19425. VULKAN_HPP_CONSTEXPR_14 DescriptorBufferBindingInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19426. {
  19427. pNext = pNext_;
  19428. return *this;
  19429. }
  19430. VULKAN_HPP_CONSTEXPR_14 DescriptorBufferBindingInfoEXT & setAddress( VULKAN_HPP_NAMESPACE::DeviceAddress address_ ) VULKAN_HPP_NOEXCEPT
  19431. {
  19432. address = address_;
  19433. return *this;
  19434. }
  19435. VULKAN_HPP_CONSTEXPR_14 DescriptorBufferBindingInfoEXT & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  19436. {
  19437. usage = usage_;
  19438. return *this;
  19439. }
  19440. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19441. operator VkDescriptorBufferBindingInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  19442. {
  19443. return *reinterpret_cast<const VkDescriptorBufferBindingInfoEXT *>( this );
  19444. }
  19445. operator VkDescriptorBufferBindingInfoEXT &() VULKAN_HPP_NOEXCEPT
  19446. {
  19447. return *reinterpret_cast<VkDescriptorBufferBindingInfoEXT *>( this );
  19448. }
  19449. #if defined( VULKAN_HPP_USE_REFLECT )
  19450. # if 14 <= VULKAN_HPP_CPP_VERSION
  19451. auto
  19452. # else
  19453. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  19454. void * const &,
  19455. VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  19456. VULKAN_HPP_NAMESPACE::BufferUsageFlags const &>
  19457. # endif
  19458. reflect() const VULKAN_HPP_NOEXCEPT
  19459. {
  19460. return std::tie( sType, pNext, address, usage );
  19461. }
  19462. #endif
  19463. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19464. auto operator<=>( DescriptorBufferBindingInfoEXT const & ) const = default;
  19465. #else
  19466. bool operator==( DescriptorBufferBindingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19467. {
  19468. # if defined( VULKAN_HPP_USE_REFLECT )
  19469. return this->reflect() == rhs.reflect();
  19470. # else
  19471. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( address == rhs.address ) && ( usage == rhs.usage );
  19472. # endif
  19473. }
  19474. bool operator!=( DescriptorBufferBindingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19475. {
  19476. return !operator==( rhs );
  19477. }
  19478. #endif
  19479. public:
  19480. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorBufferBindingInfoEXT;
  19481. void * pNext = {};
  19482. VULKAN_HPP_NAMESPACE::DeviceAddress address = {};
  19483. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
  19484. };
  19485. template <>
  19486. struct CppType<StructureType, StructureType::eDescriptorBufferBindingInfoEXT>
  19487. {
  19488. using Type = DescriptorBufferBindingInfoEXT;
  19489. };
  19490. struct DescriptorBufferBindingPushDescriptorBufferHandleEXT
  19491. {
  19492. using NativeType = VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
  19493. static const bool allowDuplicate = false;
  19494. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorBufferBindingPushDescriptorBufferHandleEXT;
  19495. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19496. VULKAN_HPP_CONSTEXPR DescriptorBufferBindingPushDescriptorBufferHandleEXT( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  19497. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19498. : pNext( pNext_ )
  19499. , buffer( buffer_ )
  19500. {
  19501. }
  19502. VULKAN_HPP_CONSTEXPR
  19503. DescriptorBufferBindingPushDescriptorBufferHandleEXT( DescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19504. DescriptorBufferBindingPushDescriptorBufferHandleEXT( VkDescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19505. : DescriptorBufferBindingPushDescriptorBufferHandleEXT( *reinterpret_cast<DescriptorBufferBindingPushDescriptorBufferHandleEXT const *>( &rhs ) )
  19506. {
  19507. }
  19508. DescriptorBufferBindingPushDescriptorBufferHandleEXT &
  19509. operator=( DescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19510. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19511. DescriptorBufferBindingPushDescriptorBufferHandleEXT & operator=( VkDescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19512. {
  19513. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT const *>( &rhs );
  19514. return *this;
  19515. }
  19516. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19517. VULKAN_HPP_CONSTEXPR_14 DescriptorBufferBindingPushDescriptorBufferHandleEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19518. {
  19519. pNext = pNext_;
  19520. return *this;
  19521. }
  19522. VULKAN_HPP_CONSTEXPR_14 DescriptorBufferBindingPushDescriptorBufferHandleEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  19523. {
  19524. buffer = buffer_;
  19525. return *this;
  19526. }
  19527. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19528. operator VkDescriptorBufferBindingPushDescriptorBufferHandleEXT const &() const VULKAN_HPP_NOEXCEPT
  19529. {
  19530. return *reinterpret_cast<const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT *>( this );
  19531. }
  19532. operator VkDescriptorBufferBindingPushDescriptorBufferHandleEXT &() VULKAN_HPP_NOEXCEPT
  19533. {
  19534. return *reinterpret_cast<VkDescriptorBufferBindingPushDescriptorBufferHandleEXT *>( this );
  19535. }
  19536. #if defined( VULKAN_HPP_USE_REFLECT )
  19537. # if 14 <= VULKAN_HPP_CPP_VERSION
  19538. auto
  19539. # else
  19540. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Buffer const &>
  19541. # endif
  19542. reflect() const VULKAN_HPP_NOEXCEPT
  19543. {
  19544. return std::tie( sType, pNext, buffer );
  19545. }
  19546. #endif
  19547. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19548. auto operator<=>( DescriptorBufferBindingPushDescriptorBufferHandleEXT const & ) const = default;
  19549. #else
  19550. bool operator==( DescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19551. {
  19552. # if defined( VULKAN_HPP_USE_REFLECT )
  19553. return this->reflect() == rhs.reflect();
  19554. # else
  19555. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer );
  19556. # endif
  19557. }
  19558. bool operator!=( DescriptorBufferBindingPushDescriptorBufferHandleEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  19559. {
  19560. return !operator==( rhs );
  19561. }
  19562. #endif
  19563. public:
  19564. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorBufferBindingPushDescriptorBufferHandleEXT;
  19565. void * pNext = {};
  19566. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  19567. };
  19568. template <>
  19569. struct CppType<StructureType, StructureType::eDescriptorBufferBindingPushDescriptorBufferHandleEXT>
  19570. {
  19571. using Type = DescriptorBufferBindingPushDescriptorBufferHandleEXT;
  19572. };
  19573. struct DescriptorBufferInfo
  19574. {
  19575. using NativeType = VkDescriptorBufferInfo;
  19576. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19577. VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  19578. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  19579. VULKAN_HPP_NAMESPACE::DeviceSize range_ = {} ) VULKAN_HPP_NOEXCEPT
  19580. : buffer( buffer_ )
  19581. , offset( offset_ )
  19582. , range( range_ )
  19583. {
  19584. }
  19585. VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19586. DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19587. : DescriptorBufferInfo( *reinterpret_cast<DescriptorBufferInfo const *>( &rhs ) )
  19588. {
  19589. }
  19590. DescriptorBufferInfo & operator=( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19591. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19592. DescriptorBufferInfo & operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19593. {
  19594. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorBufferInfo const *>( &rhs );
  19595. return *this;
  19596. }
  19597. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19598. VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  19599. {
  19600. buffer = buffer_;
  19601. return *this;
  19602. }
  19603. VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  19604. {
  19605. offset = offset_;
  19606. return *this;
  19607. }
  19608. VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT
  19609. {
  19610. range = range_;
  19611. return *this;
  19612. }
  19613. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19614. operator VkDescriptorBufferInfo const &() const VULKAN_HPP_NOEXCEPT
  19615. {
  19616. return *reinterpret_cast<const VkDescriptorBufferInfo *>( this );
  19617. }
  19618. operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT
  19619. {
  19620. return *reinterpret_cast<VkDescriptorBufferInfo *>( this );
  19621. }
  19622. #if defined( VULKAN_HPP_USE_REFLECT )
  19623. # if 14 <= VULKAN_HPP_CPP_VERSION
  19624. auto
  19625. # else
  19626. std::tuple<VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  19627. # endif
  19628. reflect() const VULKAN_HPP_NOEXCEPT
  19629. {
  19630. return std::tie( buffer, offset, range );
  19631. }
  19632. #endif
  19633. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19634. auto operator<=>( DescriptorBufferInfo const & ) const = default;
  19635. #else
  19636. bool operator==( DescriptorBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19637. {
  19638. # if defined( VULKAN_HPP_USE_REFLECT )
  19639. return this->reflect() == rhs.reflect();
  19640. # else
  19641. return ( buffer == rhs.buffer ) && ( offset == rhs.offset ) && ( range == rhs.range );
  19642. # endif
  19643. }
  19644. bool operator!=( DescriptorBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19645. {
  19646. return !operator==( rhs );
  19647. }
  19648. #endif
  19649. public:
  19650. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  19651. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  19652. VULKAN_HPP_NAMESPACE::DeviceSize range = {};
  19653. };
  19654. struct DescriptorImageInfo
  19655. {
  19656. using NativeType = VkDescriptorImageInfo;
  19657. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19658. VULKAN_HPP_CONSTEXPR
  19659. DescriptorImageInfo( VULKAN_HPP_NAMESPACE::Sampler sampler_ = {},
  19660. VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  19661. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT
  19662. : sampler( sampler_ )
  19663. , imageView( imageView_ )
  19664. , imageLayout( imageLayout_ )
  19665. {
  19666. }
  19667. VULKAN_HPP_CONSTEXPR DescriptorImageInfo( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19668. DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT : DescriptorImageInfo( *reinterpret_cast<DescriptorImageInfo const *>( &rhs ) )
  19669. {
  19670. }
  19671. DescriptorImageInfo & operator=( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19672. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19673. DescriptorImageInfo & operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  19674. {
  19675. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorImageInfo const *>( &rhs );
  19676. return *this;
  19677. }
  19678. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19679. VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
  19680. {
  19681. sampler = sampler_;
  19682. return *this;
  19683. }
  19684. VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  19685. {
  19686. imageView = imageView_;
  19687. return *this;
  19688. }
  19689. VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
  19690. {
  19691. imageLayout = imageLayout_;
  19692. return *this;
  19693. }
  19694. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19695. operator VkDescriptorImageInfo const &() const VULKAN_HPP_NOEXCEPT
  19696. {
  19697. return *reinterpret_cast<const VkDescriptorImageInfo *>( this );
  19698. }
  19699. operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT
  19700. {
  19701. return *reinterpret_cast<VkDescriptorImageInfo *>( this );
  19702. }
  19703. #if defined( VULKAN_HPP_USE_REFLECT )
  19704. # if 14 <= VULKAN_HPP_CPP_VERSION
  19705. auto
  19706. # else
  19707. std::tuple<VULKAN_HPP_NAMESPACE::Sampler const &, VULKAN_HPP_NAMESPACE::ImageView const &, VULKAN_HPP_NAMESPACE::ImageLayout const &>
  19708. # endif
  19709. reflect() const VULKAN_HPP_NOEXCEPT
  19710. {
  19711. return std::tie( sampler, imageView, imageLayout );
  19712. }
  19713. #endif
  19714. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19715. auto operator<=>( DescriptorImageInfo const & ) const = default;
  19716. #else
  19717. bool operator==( DescriptorImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19718. {
  19719. # if defined( VULKAN_HPP_USE_REFLECT )
  19720. return this->reflect() == rhs.reflect();
  19721. # else
  19722. return ( sampler == rhs.sampler ) && ( imageView == rhs.imageView ) && ( imageLayout == rhs.imageLayout );
  19723. # endif
  19724. }
  19725. bool operator!=( DescriptorImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  19726. {
  19727. return !operator==( rhs );
  19728. }
  19729. #endif
  19730. public:
  19731. VULKAN_HPP_NAMESPACE::Sampler sampler = {};
  19732. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  19733. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  19734. };
  19735. union DescriptorDataEXT
  19736. {
  19737. using NativeType = VkDescriptorDataEXT;
  19738. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  19739. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT( const VULKAN_HPP_NAMESPACE::Sampler * pSampler_ = {} ) : pSampler( pSampler_ ) {}
  19740. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pDescriptorImageInfo_ )
  19741. : pCombinedImageSampler( pDescriptorImageInfo_ )
  19742. {
  19743. }
  19744. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pDescriptorAddressInfoEXT_ )
  19745. : pUniformTexelBuffer( pDescriptorAddressInfoEXT_ )
  19746. {
  19747. }
  19748. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT( VULKAN_HPP_NAMESPACE::DeviceAddress accelerationStructure_ ) : accelerationStructure( accelerationStructure_ ) {}
  19749. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  19750. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  19751. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPSampler( const VULKAN_HPP_NAMESPACE::Sampler * pSampler_ ) VULKAN_HPP_NOEXCEPT
  19752. {
  19753. pSampler = pSampler_;
  19754. return *this;
  19755. }
  19756. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT &
  19757. setPCombinedImageSampler( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pCombinedImageSampler_ ) VULKAN_HPP_NOEXCEPT
  19758. {
  19759. pCombinedImageSampler = pCombinedImageSampler_;
  19760. return *this;
  19761. }
  19762. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT &
  19763. setPInputAttachmentImage( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pInputAttachmentImage_ ) VULKAN_HPP_NOEXCEPT
  19764. {
  19765. pInputAttachmentImage = pInputAttachmentImage_;
  19766. return *this;
  19767. }
  19768. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPSampledImage( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pSampledImage_ ) VULKAN_HPP_NOEXCEPT
  19769. {
  19770. pSampledImage = pSampledImage_;
  19771. return *this;
  19772. }
  19773. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPStorageImage( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pStorageImage_ ) VULKAN_HPP_NOEXCEPT
  19774. {
  19775. pStorageImage = pStorageImage_;
  19776. return *this;
  19777. }
  19778. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT &
  19779. setPUniformTexelBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformTexelBuffer_ ) VULKAN_HPP_NOEXCEPT
  19780. {
  19781. pUniformTexelBuffer = pUniformTexelBuffer_;
  19782. return *this;
  19783. }
  19784. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT &
  19785. setPStorageTexelBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageTexelBuffer_ ) VULKAN_HPP_NOEXCEPT
  19786. {
  19787. pStorageTexelBuffer = pStorageTexelBuffer_;
  19788. return *this;
  19789. }
  19790. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPUniformBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformBuffer_ ) VULKAN_HPP_NOEXCEPT
  19791. {
  19792. pUniformBuffer = pUniformBuffer_;
  19793. return *this;
  19794. }
  19795. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setPStorageBuffer( const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
  19796. {
  19797. pStorageBuffer = pStorageBuffer_;
  19798. return *this;
  19799. }
  19800. VULKAN_HPP_CONSTEXPR_14 DescriptorDataEXT & setAccelerationStructure( VULKAN_HPP_NAMESPACE::DeviceAddress accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  19801. {
  19802. accelerationStructure = accelerationStructure_;
  19803. return *this;
  19804. }
  19805. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  19806. operator VkDescriptorDataEXT const &() const
  19807. {
  19808. return *reinterpret_cast<const VkDescriptorDataEXT *>( this );
  19809. }
  19810. operator VkDescriptorDataEXT &()
  19811. {
  19812. return *reinterpret_cast<VkDescriptorDataEXT *>( this );
  19813. }
  19814. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  19815. const VULKAN_HPP_NAMESPACE::Sampler * pSampler;
  19816. const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pCombinedImageSampler;
  19817. const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pInputAttachmentImage;
  19818. const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pSampledImage;
  19819. const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pStorageImage;
  19820. const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformTexelBuffer;
  19821. const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageTexelBuffer;
  19822. const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pUniformBuffer;
  19823. const VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT * pStorageBuffer;
  19824. VULKAN_HPP_NAMESPACE::DeviceAddress accelerationStructure;
  19825. #else
  19826. const VkSampler * pSampler;
  19827. const VkDescriptorImageInfo * pCombinedImageSampler;
  19828. const VkDescriptorImageInfo * pInputAttachmentImage;
  19829. const VkDescriptorImageInfo * pSampledImage;
  19830. const VkDescriptorImageInfo * pStorageImage;
  19831. const VkDescriptorAddressInfoEXT * pUniformTexelBuffer;
  19832. const VkDescriptorAddressInfoEXT * pStorageTexelBuffer;
  19833. const VkDescriptorAddressInfoEXT * pUniformBuffer;
  19834. const VkDescriptorAddressInfoEXT * pStorageBuffer;
  19835. VkDeviceAddress accelerationStructure;
  19836. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  19837. };
  19838. struct DescriptorGetInfoEXT
  19839. {
  19840. using NativeType = VkDescriptorGetInfoEXT;
  19841. static const bool allowDuplicate = false;
  19842. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorGetInfoEXT;
  19843. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19844. VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT( VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
  19845. VULKAN_HPP_NAMESPACE::DescriptorDataEXT data_ = {},
  19846. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19847. : pNext( pNext_ )
  19848. , type( type_ )
  19849. , data( data_ )
  19850. {
  19851. }
  19852. VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT( DescriptorGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19853. DescriptorGetInfoEXT( VkDescriptorGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19854. : DescriptorGetInfoEXT( *reinterpret_cast<DescriptorGetInfoEXT const *>( &rhs ) )
  19855. {
  19856. }
  19857. DescriptorGetInfoEXT & operator=( DescriptorGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19858. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19859. DescriptorGetInfoEXT & operator=( VkDescriptorGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  19860. {
  19861. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT const *>( &rhs );
  19862. return *this;
  19863. }
  19864. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19865. VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  19866. {
  19867. pNext = pNext_;
  19868. return *this;
  19869. }
  19870. VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT
  19871. {
  19872. type = type_;
  19873. return *this;
  19874. }
  19875. VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT & setData( VULKAN_HPP_NAMESPACE::DescriptorDataEXT const & data_ ) VULKAN_HPP_NOEXCEPT
  19876. {
  19877. data = data_;
  19878. return *this;
  19879. }
  19880. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19881. operator VkDescriptorGetInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  19882. {
  19883. return *reinterpret_cast<const VkDescriptorGetInfoEXT *>( this );
  19884. }
  19885. operator VkDescriptorGetInfoEXT &() VULKAN_HPP_NOEXCEPT
  19886. {
  19887. return *reinterpret_cast<VkDescriptorGetInfoEXT *>( this );
  19888. }
  19889. #if defined( VULKAN_HPP_USE_REFLECT )
  19890. # if 14 <= VULKAN_HPP_CPP_VERSION
  19891. auto
  19892. # else
  19893. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  19894. const void * const &,
  19895. VULKAN_HPP_NAMESPACE::DescriptorType const &,
  19896. VULKAN_HPP_NAMESPACE::DescriptorDataEXT const &>
  19897. # endif
  19898. reflect() const VULKAN_HPP_NOEXCEPT
  19899. {
  19900. return std::tie( sType, pNext, type, data );
  19901. }
  19902. #endif
  19903. public:
  19904. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorGetInfoEXT;
  19905. const void * pNext = {};
  19906. VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
  19907. VULKAN_HPP_NAMESPACE::DescriptorDataEXT data = {};
  19908. };
  19909. template <>
  19910. struct CppType<StructureType, StructureType::eDescriptorGetInfoEXT>
  19911. {
  19912. using Type = DescriptorGetInfoEXT;
  19913. };
  19914. struct DescriptorPoolSize
  19915. {
  19916. using NativeType = VkDescriptorPoolSize;
  19917. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19918. VULKAN_HPP_CONSTEXPR DescriptorPoolSize( VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
  19919. uint32_t descriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT
  19920. : type( type_ )
  19921. , descriptorCount( descriptorCount_ )
  19922. {
  19923. }
  19924. VULKAN_HPP_CONSTEXPR DescriptorPoolSize( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19925. DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT : DescriptorPoolSize( *reinterpret_cast<DescriptorPoolSize const *>( &rhs ) ) {}
  19926. DescriptorPoolSize & operator=( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  19927. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  19928. DescriptorPoolSize & operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT
  19929. {
  19930. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolSize const *>( &rhs );
  19931. return *this;
  19932. }
  19933. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  19934. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT
  19935. {
  19936. type = type_;
  19937. return *this;
  19938. }
  19939. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
  19940. {
  19941. descriptorCount = descriptorCount_;
  19942. return *this;
  19943. }
  19944. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  19945. operator VkDescriptorPoolSize const &() const VULKAN_HPP_NOEXCEPT
  19946. {
  19947. return *reinterpret_cast<const VkDescriptorPoolSize *>( this );
  19948. }
  19949. operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT
  19950. {
  19951. return *reinterpret_cast<VkDescriptorPoolSize *>( this );
  19952. }
  19953. #if defined( VULKAN_HPP_USE_REFLECT )
  19954. # if 14 <= VULKAN_HPP_CPP_VERSION
  19955. auto
  19956. # else
  19957. std::tuple<VULKAN_HPP_NAMESPACE::DescriptorType const &, uint32_t const &>
  19958. # endif
  19959. reflect() const VULKAN_HPP_NOEXCEPT
  19960. {
  19961. return std::tie( type, descriptorCount );
  19962. }
  19963. #endif
  19964. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  19965. auto operator<=>( DescriptorPoolSize const & ) const = default;
  19966. #else
  19967. bool operator==( DescriptorPoolSize const & rhs ) const VULKAN_HPP_NOEXCEPT
  19968. {
  19969. # if defined( VULKAN_HPP_USE_REFLECT )
  19970. return this->reflect() == rhs.reflect();
  19971. # else
  19972. return ( type == rhs.type ) && ( descriptorCount == rhs.descriptorCount );
  19973. # endif
  19974. }
  19975. bool operator!=( DescriptorPoolSize const & rhs ) const VULKAN_HPP_NOEXCEPT
  19976. {
  19977. return !operator==( rhs );
  19978. }
  19979. #endif
  19980. public:
  19981. VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
  19982. uint32_t descriptorCount = {};
  19983. };
  19984. struct DescriptorPoolCreateInfo
  19985. {
  19986. using NativeType = VkDescriptorPoolCreateInfo;
  19987. static const bool allowDuplicate = false;
  19988. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolCreateInfo;
  19989. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  19990. VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {},
  19991. uint32_t maxSets_ = {},
  19992. uint32_t poolSizeCount_ = {},
  19993. const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes_ = {},
  19994. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  19995. : pNext( pNext_ )
  19996. , flags( flags_ )
  19997. , maxSets( maxSets_ )
  19998. , poolSizeCount( poolSizeCount_ )
  19999. , pPoolSizes( pPoolSizes_ )
  20000. {
  20001. }
  20002. VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20003. DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20004. : DescriptorPoolCreateInfo( *reinterpret_cast<DescriptorPoolCreateInfo const *>( &rhs ) )
  20005. {
  20006. }
  20007. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20008. DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_,
  20009. uint32_t maxSets_,
  20010. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_,
  20011. const void * pNext_ = nullptr )
  20012. : pNext( pNext_ ), flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( static_cast<uint32_t>( poolSizes_.size() ) ), pPoolSizes( poolSizes_.data() )
  20013. {
  20014. }
  20015. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20016. DescriptorPoolCreateInfo & operator=( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20017. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20018. DescriptorPoolCreateInfo & operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20019. {
  20020. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const *>( &rhs );
  20021. return *this;
  20022. }
  20023. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20024. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20025. {
  20026. pNext = pNext_;
  20027. return *this;
  20028. }
  20029. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  20030. {
  20031. flags = flags_;
  20032. return *this;
  20033. }
  20034. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT
  20035. {
  20036. maxSets = maxSets_;
  20037. return *this;
  20038. }
  20039. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT
  20040. {
  20041. poolSizeCount = poolSizeCount_;
  20042. return *this;
  20043. }
  20044. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes_ ) VULKAN_HPP_NOEXCEPT
  20045. {
  20046. pPoolSizes = pPoolSizes_;
  20047. return *this;
  20048. }
  20049. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20050. DescriptorPoolCreateInfo &
  20051. setPoolSizes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorPoolSize> const & poolSizes_ ) VULKAN_HPP_NOEXCEPT
  20052. {
  20053. poolSizeCount = static_cast<uint32_t>( poolSizes_.size() );
  20054. pPoolSizes = poolSizes_.data();
  20055. return *this;
  20056. }
  20057. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20058. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20059. operator VkDescriptorPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  20060. {
  20061. return *reinterpret_cast<const VkDescriptorPoolCreateInfo *>( this );
  20062. }
  20063. operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
  20064. {
  20065. return *reinterpret_cast<VkDescriptorPoolCreateInfo *>( this );
  20066. }
  20067. #if defined( VULKAN_HPP_USE_REFLECT )
  20068. # if 14 <= VULKAN_HPP_CPP_VERSION
  20069. auto
  20070. # else
  20071. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  20072. const void * const &,
  20073. VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags const &,
  20074. uint32_t const &,
  20075. uint32_t const &,
  20076. const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * const &>
  20077. # endif
  20078. reflect() const VULKAN_HPP_NOEXCEPT
  20079. {
  20080. return std::tie( sType, pNext, flags, maxSets, poolSizeCount, pPoolSizes );
  20081. }
  20082. #endif
  20083. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20084. auto operator<=>( DescriptorPoolCreateInfo const & ) const = default;
  20085. #else
  20086. bool operator==( DescriptorPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20087. {
  20088. # if defined( VULKAN_HPP_USE_REFLECT )
  20089. return this->reflect() == rhs.reflect();
  20090. # else
  20091. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( maxSets == rhs.maxSets ) &&
  20092. ( poolSizeCount == rhs.poolSizeCount ) && ( pPoolSizes == rhs.pPoolSizes );
  20093. # endif
  20094. }
  20095. bool operator!=( DescriptorPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20096. {
  20097. return !operator==( rhs );
  20098. }
  20099. #endif
  20100. public:
  20101. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo;
  20102. const void * pNext = {};
  20103. VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {};
  20104. uint32_t maxSets = {};
  20105. uint32_t poolSizeCount = {};
  20106. const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes = {};
  20107. };
  20108. template <>
  20109. struct CppType<StructureType, StructureType::eDescriptorPoolCreateInfo>
  20110. {
  20111. using Type = DescriptorPoolCreateInfo;
  20112. };
  20113. struct DescriptorPoolInlineUniformBlockCreateInfo
  20114. {
  20115. using NativeType = VkDescriptorPoolInlineUniformBlockCreateInfo;
  20116. static const bool allowDuplicate = false;
  20117. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfo;
  20118. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20119. VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfo( uint32_t maxInlineUniformBlockBindings_ = {},
  20120. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20121. : pNext( pNext_ )
  20122. , maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ )
  20123. {
  20124. }
  20125. VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfo( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20126. DescriptorPoolInlineUniformBlockCreateInfo( VkDescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20127. : DescriptorPoolInlineUniformBlockCreateInfo( *reinterpret_cast<DescriptorPoolInlineUniformBlockCreateInfo const *>( &rhs ) )
  20128. {
  20129. }
  20130. DescriptorPoolInlineUniformBlockCreateInfo & operator=( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20131. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20132. DescriptorPoolInlineUniformBlockCreateInfo & operator=( VkDescriptorPoolInlineUniformBlockCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20133. {
  20134. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo const *>( &rhs );
  20135. return *this;
  20136. }
  20137. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20138. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolInlineUniformBlockCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20139. {
  20140. pNext = pNext_;
  20141. return *this;
  20142. }
  20143. VULKAN_HPP_CONSTEXPR_14 DescriptorPoolInlineUniformBlockCreateInfo &
  20144. setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT
  20145. {
  20146. maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
  20147. return *this;
  20148. }
  20149. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20150. operator VkDescriptorPoolInlineUniformBlockCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  20151. {
  20152. return *reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfo *>( this );
  20153. }
  20154. operator VkDescriptorPoolInlineUniformBlockCreateInfo &() VULKAN_HPP_NOEXCEPT
  20155. {
  20156. return *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfo *>( this );
  20157. }
  20158. #if defined( VULKAN_HPP_USE_REFLECT )
  20159. # if 14 <= VULKAN_HPP_CPP_VERSION
  20160. auto
  20161. # else
  20162. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  20163. # endif
  20164. reflect() const VULKAN_HPP_NOEXCEPT
  20165. {
  20166. return std::tie( sType, pNext, maxInlineUniformBlockBindings );
  20167. }
  20168. #endif
  20169. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20170. auto operator<=>( DescriptorPoolInlineUniformBlockCreateInfo const & ) const = default;
  20171. #else
  20172. bool operator==( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20173. {
  20174. # if defined( VULKAN_HPP_USE_REFLECT )
  20175. return this->reflect() == rhs.reflect();
  20176. # else
  20177. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings );
  20178. # endif
  20179. }
  20180. bool operator!=( DescriptorPoolInlineUniformBlockCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20181. {
  20182. return !operator==( rhs );
  20183. }
  20184. #endif
  20185. public:
  20186. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfo;
  20187. const void * pNext = {};
  20188. uint32_t maxInlineUniformBlockBindings = {};
  20189. };
  20190. template <>
  20191. struct CppType<StructureType, StructureType::eDescriptorPoolInlineUniformBlockCreateInfo>
  20192. {
  20193. using Type = DescriptorPoolInlineUniformBlockCreateInfo;
  20194. };
  20195. using DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfo;
  20196. struct DescriptorSetAllocateInfo
  20197. {
  20198. using NativeType = VkDescriptorSetAllocateInfo;
  20199. static const bool allowDuplicate = false;
  20200. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetAllocateInfo;
  20201. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20202. VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {},
  20203. uint32_t descriptorSetCount_ = {},
  20204. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ = {},
  20205. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20206. : pNext( pNext_ )
  20207. , descriptorPool( descriptorPool_ )
  20208. , descriptorSetCount( descriptorSetCount_ )
  20209. , pSetLayouts( pSetLayouts_ )
  20210. {
  20211. }
  20212. VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20213. DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20214. : DescriptorSetAllocateInfo( *reinterpret_cast<DescriptorSetAllocateInfo const *>( &rhs ) )
  20215. {
  20216. }
  20217. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20218. DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_,
  20219. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_,
  20220. const void * pNext_ = nullptr )
  20221. : pNext( pNext_ ), descriptorPool( descriptorPool_ ), descriptorSetCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() )
  20222. {
  20223. }
  20224. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20225. DescriptorSetAllocateInfo & operator=( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20226. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20227. DescriptorSetAllocateInfo & operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20228. {
  20229. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const *>( &rhs );
  20230. return *this;
  20231. }
  20232. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20233. VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20234. {
  20235. pNext = pNext_;
  20236. return *this;
  20237. }
  20238. VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT
  20239. {
  20240. descriptorPool = descriptorPool_;
  20241. return *this;
  20242. }
  20243. VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
  20244. {
  20245. descriptorSetCount = descriptorSetCount_;
  20246. return *this;
  20247. }
  20248. VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
  20249. {
  20250. pSetLayouts = pSetLayouts_;
  20251. return *this;
  20252. }
  20253. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20254. DescriptorSetAllocateInfo &
  20255. setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
  20256. {
  20257. descriptorSetCount = static_cast<uint32_t>( setLayouts_.size() );
  20258. pSetLayouts = setLayouts_.data();
  20259. return *this;
  20260. }
  20261. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20262. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20263. operator VkDescriptorSetAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  20264. {
  20265. return *reinterpret_cast<const VkDescriptorSetAllocateInfo *>( this );
  20266. }
  20267. operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT
  20268. {
  20269. return *reinterpret_cast<VkDescriptorSetAllocateInfo *>( this );
  20270. }
  20271. #if defined( VULKAN_HPP_USE_REFLECT )
  20272. # if 14 <= VULKAN_HPP_CPP_VERSION
  20273. auto
  20274. # else
  20275. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  20276. const void * const &,
  20277. VULKAN_HPP_NAMESPACE::DescriptorPool const &,
  20278. uint32_t const &,
  20279. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * const &>
  20280. # endif
  20281. reflect() const VULKAN_HPP_NOEXCEPT
  20282. {
  20283. return std::tie( sType, pNext, descriptorPool, descriptorSetCount, pSetLayouts );
  20284. }
  20285. #endif
  20286. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20287. auto operator<=>( DescriptorSetAllocateInfo const & ) const = default;
  20288. #else
  20289. bool operator==( DescriptorSetAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20290. {
  20291. # if defined( VULKAN_HPP_USE_REFLECT )
  20292. return this->reflect() == rhs.reflect();
  20293. # else
  20294. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorPool == rhs.descriptorPool ) && ( descriptorSetCount == rhs.descriptorSetCount ) &&
  20295. ( pSetLayouts == rhs.pSetLayouts );
  20296. # endif
  20297. }
  20298. bool operator!=( DescriptorSetAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20299. {
  20300. return !operator==( rhs );
  20301. }
  20302. #endif
  20303. public:
  20304. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo;
  20305. const void * pNext = {};
  20306. VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {};
  20307. uint32_t descriptorSetCount = {};
  20308. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts = {};
  20309. };
  20310. template <>
  20311. struct CppType<StructureType, StructureType::eDescriptorSetAllocateInfo>
  20312. {
  20313. using Type = DescriptorSetAllocateInfo;
  20314. };
  20315. struct DescriptorSetBindingReferenceVALVE
  20316. {
  20317. using NativeType = VkDescriptorSetBindingReferenceVALVE;
  20318. static const bool allowDuplicate = false;
  20319. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetBindingReferenceVALVE;
  20320. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20321. VULKAN_HPP_CONSTEXPR DescriptorSetBindingReferenceVALVE( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {},
  20322. uint32_t binding_ = {},
  20323. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20324. : pNext( pNext_ )
  20325. , descriptorSetLayout( descriptorSetLayout_ )
  20326. , binding( binding_ )
  20327. {
  20328. }
  20329. VULKAN_HPP_CONSTEXPR DescriptorSetBindingReferenceVALVE( DescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20330. DescriptorSetBindingReferenceVALVE( VkDescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  20331. : DescriptorSetBindingReferenceVALVE( *reinterpret_cast<DescriptorSetBindingReferenceVALVE const *>( &rhs ) )
  20332. {
  20333. }
  20334. DescriptorSetBindingReferenceVALVE & operator=( DescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20335. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20336. DescriptorSetBindingReferenceVALVE & operator=( VkDescriptorSetBindingReferenceVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  20337. {
  20338. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE const *>( &rhs );
  20339. return *this;
  20340. }
  20341. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20342. VULKAN_HPP_CONSTEXPR_14 DescriptorSetBindingReferenceVALVE & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20343. {
  20344. pNext = pNext_;
  20345. return *this;
  20346. }
  20347. VULKAN_HPP_CONSTEXPR_14 DescriptorSetBindingReferenceVALVE &
  20348. setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
  20349. {
  20350. descriptorSetLayout = descriptorSetLayout_;
  20351. return *this;
  20352. }
  20353. VULKAN_HPP_CONSTEXPR_14 DescriptorSetBindingReferenceVALVE & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  20354. {
  20355. binding = binding_;
  20356. return *this;
  20357. }
  20358. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20359. operator VkDescriptorSetBindingReferenceVALVE const &() const VULKAN_HPP_NOEXCEPT
  20360. {
  20361. return *reinterpret_cast<const VkDescriptorSetBindingReferenceVALVE *>( this );
  20362. }
  20363. operator VkDescriptorSetBindingReferenceVALVE &() VULKAN_HPP_NOEXCEPT
  20364. {
  20365. return *reinterpret_cast<VkDescriptorSetBindingReferenceVALVE *>( this );
  20366. }
  20367. #if defined( VULKAN_HPP_USE_REFLECT )
  20368. # if 14 <= VULKAN_HPP_CPP_VERSION
  20369. auto
  20370. # else
  20371. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DescriptorSetLayout const &, uint32_t const &>
  20372. # endif
  20373. reflect() const VULKAN_HPP_NOEXCEPT
  20374. {
  20375. return std::tie( sType, pNext, descriptorSetLayout, binding );
  20376. }
  20377. #endif
  20378. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20379. auto operator<=>( DescriptorSetBindingReferenceVALVE const & ) const = default;
  20380. #else
  20381. bool operator==( DescriptorSetBindingReferenceVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  20382. {
  20383. # if defined( VULKAN_HPP_USE_REFLECT )
  20384. return this->reflect() == rhs.reflect();
  20385. # else
  20386. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorSetLayout == rhs.descriptorSetLayout ) && ( binding == rhs.binding );
  20387. # endif
  20388. }
  20389. bool operator!=( DescriptorSetBindingReferenceVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  20390. {
  20391. return !operator==( rhs );
  20392. }
  20393. #endif
  20394. public:
  20395. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetBindingReferenceVALVE;
  20396. const void * pNext = {};
  20397. VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {};
  20398. uint32_t binding = {};
  20399. };
  20400. template <>
  20401. struct CppType<StructureType, StructureType::eDescriptorSetBindingReferenceVALVE>
  20402. {
  20403. using Type = DescriptorSetBindingReferenceVALVE;
  20404. };
  20405. struct DescriptorSetLayoutBinding
  20406. {
  20407. using NativeType = VkDescriptorSetLayoutBinding;
  20408. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20409. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( uint32_t binding_ = {},
  20410. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
  20411. uint32_t descriptorCount_ = {},
  20412. VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {},
  20413. const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers_ = {} ) VULKAN_HPP_NOEXCEPT
  20414. : binding( binding_ )
  20415. , descriptorType( descriptorType_ )
  20416. , descriptorCount( descriptorCount_ )
  20417. , stageFlags( stageFlags_ )
  20418. , pImmutableSamplers( pImmutableSamplers_ )
  20419. {
  20420. }
  20421. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20422. DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
  20423. : DescriptorSetLayoutBinding( *reinterpret_cast<DescriptorSetLayoutBinding const *>( &rhs ) )
  20424. {
  20425. }
  20426. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20427. DescriptorSetLayoutBinding( uint32_t binding_,
  20428. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_,
  20429. VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_,
  20430. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ )
  20431. : binding( binding_ )
  20432. , descriptorType( descriptorType_ )
  20433. , descriptorCount( static_cast<uint32_t>( immutableSamplers_.size() ) )
  20434. , stageFlags( stageFlags_ )
  20435. , pImmutableSamplers( immutableSamplers_.data() )
  20436. {
  20437. }
  20438. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20439. DescriptorSetLayoutBinding & operator=( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20440. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20441. DescriptorSetLayoutBinding & operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT
  20442. {
  20443. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding const *>( &rhs );
  20444. return *this;
  20445. }
  20446. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20447. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  20448. {
  20449. binding = binding_;
  20450. return *this;
  20451. }
  20452. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
  20453. {
  20454. descriptorType = descriptorType_;
  20455. return *this;
  20456. }
  20457. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
  20458. {
  20459. descriptorCount = descriptorCount_;
  20460. return *this;
  20461. }
  20462. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
  20463. {
  20464. stageFlags = stageFlags_;
  20465. return *this;
  20466. }
  20467. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT
  20468. {
  20469. pImmutableSamplers = pImmutableSamplers_;
  20470. return *this;
  20471. }
  20472. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20473. DescriptorSetLayoutBinding &
  20474. setImmutableSamplers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Sampler> const & immutableSamplers_ ) VULKAN_HPP_NOEXCEPT
  20475. {
  20476. descriptorCount = static_cast<uint32_t>( immutableSamplers_.size() );
  20477. pImmutableSamplers = immutableSamplers_.data();
  20478. return *this;
  20479. }
  20480. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20481. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20482. operator VkDescriptorSetLayoutBinding const &() const VULKAN_HPP_NOEXCEPT
  20483. {
  20484. return *reinterpret_cast<const VkDescriptorSetLayoutBinding *>( this );
  20485. }
  20486. operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT
  20487. {
  20488. return *reinterpret_cast<VkDescriptorSetLayoutBinding *>( this );
  20489. }
  20490. #if defined( VULKAN_HPP_USE_REFLECT )
  20491. # if 14 <= VULKAN_HPP_CPP_VERSION
  20492. auto
  20493. # else
  20494. std::tuple<uint32_t const &,
  20495. VULKAN_HPP_NAMESPACE::DescriptorType const &,
  20496. uint32_t const &,
  20497. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  20498. const VULKAN_HPP_NAMESPACE::Sampler * const &>
  20499. # endif
  20500. reflect() const VULKAN_HPP_NOEXCEPT
  20501. {
  20502. return std::tie( binding, descriptorType, descriptorCount, stageFlags, pImmutableSamplers );
  20503. }
  20504. #endif
  20505. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20506. auto operator<=>( DescriptorSetLayoutBinding const & ) const = default;
  20507. #else
  20508. bool operator==( DescriptorSetLayoutBinding const & rhs ) const VULKAN_HPP_NOEXCEPT
  20509. {
  20510. # if defined( VULKAN_HPP_USE_REFLECT )
  20511. return this->reflect() == rhs.reflect();
  20512. # else
  20513. return ( binding == rhs.binding ) && ( descriptorType == rhs.descriptorType ) && ( descriptorCount == rhs.descriptorCount ) &&
  20514. ( stageFlags == rhs.stageFlags ) && ( pImmutableSamplers == rhs.pImmutableSamplers );
  20515. # endif
  20516. }
  20517. bool operator!=( DescriptorSetLayoutBinding const & rhs ) const VULKAN_HPP_NOEXCEPT
  20518. {
  20519. return !operator==( rhs );
  20520. }
  20521. #endif
  20522. public:
  20523. uint32_t binding = {};
  20524. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
  20525. uint32_t descriptorCount = {};
  20526. VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
  20527. const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers = {};
  20528. };
  20529. struct DescriptorSetLayoutBindingFlagsCreateInfo
  20530. {
  20531. using NativeType = VkDescriptorSetLayoutBindingFlagsCreateInfo;
  20532. static const bool allowDuplicate = false;
  20533. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
  20534. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20535. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( uint32_t bindingCount_ = {},
  20536. const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags_ = {},
  20537. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20538. : pNext( pNext_ )
  20539. , bindingCount( bindingCount_ )
  20540. , pBindingFlags( pBindingFlags_ )
  20541. {
  20542. }
  20543. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20544. DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20545. : DescriptorSetLayoutBindingFlagsCreateInfo( *reinterpret_cast<DescriptorSetLayoutBindingFlagsCreateInfo const *>( &rhs ) )
  20546. {
  20547. }
  20548. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20549. DescriptorSetLayoutBindingFlagsCreateInfo(
  20550. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_, const void * pNext_ = nullptr )
  20551. : pNext( pNext_ ), bindingCount( static_cast<uint32_t>( bindingFlags_.size() ) ), pBindingFlags( bindingFlags_.data() )
  20552. {
  20553. }
  20554. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20555. DescriptorSetLayoutBindingFlagsCreateInfo & operator=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20556. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20557. DescriptorSetLayoutBindingFlagsCreateInfo & operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20558. {
  20559. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo const *>( &rhs );
  20560. return *this;
  20561. }
  20562. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20563. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20564. {
  20565. pNext = pNext_;
  20566. return *this;
  20567. }
  20568. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
  20569. {
  20570. bindingCount = bindingCount_;
  20571. return *this;
  20572. }
  20573. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo &
  20574. setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags_ ) VULKAN_HPP_NOEXCEPT
  20575. {
  20576. pBindingFlags = pBindingFlags_;
  20577. return *this;
  20578. }
  20579. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20580. DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags(
  20581. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags> const & bindingFlags_ ) VULKAN_HPP_NOEXCEPT
  20582. {
  20583. bindingCount = static_cast<uint32_t>( bindingFlags_.size() );
  20584. pBindingFlags = bindingFlags_.data();
  20585. return *this;
  20586. }
  20587. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20588. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20589. operator VkDescriptorSetLayoutBindingFlagsCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  20590. {
  20591. return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo *>( this );
  20592. }
  20593. operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT
  20594. {
  20595. return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo *>( this );
  20596. }
  20597. #if defined( VULKAN_HPP_USE_REFLECT )
  20598. # if 14 <= VULKAN_HPP_CPP_VERSION
  20599. auto
  20600. # else
  20601. std::
  20602. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * const &>
  20603. # endif
  20604. reflect() const VULKAN_HPP_NOEXCEPT
  20605. {
  20606. return std::tie( sType, pNext, bindingCount, pBindingFlags );
  20607. }
  20608. #endif
  20609. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20610. auto operator<=>( DescriptorSetLayoutBindingFlagsCreateInfo const & ) const = default;
  20611. #else
  20612. bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20613. {
  20614. # if defined( VULKAN_HPP_USE_REFLECT )
  20615. return this->reflect() == rhs.reflect();
  20616. # else
  20617. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bindingCount == rhs.bindingCount ) && ( pBindingFlags == rhs.pBindingFlags );
  20618. # endif
  20619. }
  20620. bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20621. {
  20622. return !operator==( rhs );
  20623. }
  20624. #endif
  20625. public:
  20626. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo;
  20627. const void * pNext = {};
  20628. uint32_t bindingCount = {};
  20629. const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags = {};
  20630. };
  20631. template <>
  20632. struct CppType<StructureType, StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo>
  20633. {
  20634. using Type = DescriptorSetLayoutBindingFlagsCreateInfo;
  20635. };
  20636. using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
  20637. struct DescriptorSetLayoutCreateInfo
  20638. {
  20639. using NativeType = VkDescriptorSetLayoutCreateInfo;
  20640. static const bool allowDuplicate = false;
  20641. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutCreateInfo;
  20642. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20643. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {},
  20644. uint32_t bindingCount_ = {},
  20645. const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings_ = {},
  20646. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20647. : pNext( pNext_ )
  20648. , flags( flags_ )
  20649. , bindingCount( bindingCount_ )
  20650. , pBindings( pBindings_ )
  20651. {
  20652. }
  20653. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20654. DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20655. : DescriptorSetLayoutCreateInfo( *reinterpret_cast<DescriptorSetLayoutCreateInfo const *>( &rhs ) )
  20656. {
  20657. }
  20658. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20659. DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_,
  20660. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_,
  20661. const void * pNext_ = nullptr )
  20662. : pNext( pNext_ ), flags( flags_ ), bindingCount( static_cast<uint32_t>( bindings_.size() ) ), pBindings( bindings_.data() )
  20663. {
  20664. }
  20665. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20666. DescriptorSetLayoutCreateInfo & operator=( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20667. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20668. DescriptorSetLayoutCreateInfo & operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20669. {
  20670. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const *>( &rhs );
  20671. return *this;
  20672. }
  20673. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20674. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20675. {
  20676. pNext = pNext_;
  20677. return *this;
  20678. }
  20679. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  20680. {
  20681. flags = flags_;
  20682. return *this;
  20683. }
  20684. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT
  20685. {
  20686. bindingCount = bindingCount_;
  20687. return *this;
  20688. }
  20689. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo &
  20690. setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings_ ) VULKAN_HPP_NOEXCEPT
  20691. {
  20692. pBindings = pBindings_;
  20693. return *this;
  20694. }
  20695. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20696. DescriptorSetLayoutCreateInfo &
  20697. setBindings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding> const & bindings_ ) VULKAN_HPP_NOEXCEPT
  20698. {
  20699. bindingCount = static_cast<uint32_t>( bindings_.size() );
  20700. pBindings = bindings_.data();
  20701. return *this;
  20702. }
  20703. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20704. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20705. operator VkDescriptorSetLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  20706. {
  20707. return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( this );
  20708. }
  20709. operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
  20710. {
  20711. return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo *>( this );
  20712. }
  20713. #if defined( VULKAN_HPP_USE_REFLECT )
  20714. # if 14 <= VULKAN_HPP_CPP_VERSION
  20715. auto
  20716. # else
  20717. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  20718. const void * const &,
  20719. VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags const &,
  20720. uint32_t const &,
  20721. const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * const &>
  20722. # endif
  20723. reflect() const VULKAN_HPP_NOEXCEPT
  20724. {
  20725. return std::tie( sType, pNext, flags, bindingCount, pBindings );
  20726. }
  20727. #endif
  20728. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20729. auto operator<=>( DescriptorSetLayoutCreateInfo const & ) const = default;
  20730. #else
  20731. bool operator==( DescriptorSetLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20732. {
  20733. # if defined( VULKAN_HPP_USE_REFLECT )
  20734. return this->reflect() == rhs.reflect();
  20735. # else
  20736. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( bindingCount == rhs.bindingCount ) &&
  20737. ( pBindings == rhs.pBindings );
  20738. # endif
  20739. }
  20740. bool operator!=( DescriptorSetLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20741. {
  20742. return !operator==( rhs );
  20743. }
  20744. #endif
  20745. public:
  20746. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo;
  20747. const void * pNext = {};
  20748. VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {};
  20749. uint32_t bindingCount = {};
  20750. const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings = {};
  20751. };
  20752. template <>
  20753. struct CppType<StructureType, StructureType::eDescriptorSetLayoutCreateInfo>
  20754. {
  20755. using Type = DescriptorSetLayoutCreateInfo;
  20756. };
  20757. struct DescriptorSetLayoutHostMappingInfoVALVE
  20758. {
  20759. using NativeType = VkDescriptorSetLayoutHostMappingInfoVALVE;
  20760. static const bool allowDuplicate = false;
  20761. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutHostMappingInfoVALVE;
  20762. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20763. VULKAN_HPP_CONSTEXPR
  20764. DescriptorSetLayoutHostMappingInfoVALVE( size_t descriptorOffset_ = {}, uint32_t descriptorSize_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20765. : pNext( pNext_ )
  20766. , descriptorOffset( descriptorOffset_ )
  20767. , descriptorSize( descriptorSize_ )
  20768. {
  20769. }
  20770. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutHostMappingInfoVALVE( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20771. DescriptorSetLayoutHostMappingInfoVALVE( VkDescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  20772. : DescriptorSetLayoutHostMappingInfoVALVE( *reinterpret_cast<DescriptorSetLayoutHostMappingInfoVALVE const *>( &rhs ) )
  20773. {
  20774. }
  20775. DescriptorSetLayoutHostMappingInfoVALVE & operator=( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20776. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20777. DescriptorSetLayoutHostMappingInfoVALVE & operator=( VkDescriptorSetLayoutHostMappingInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  20778. {
  20779. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE const *>( &rhs );
  20780. return *this;
  20781. }
  20782. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20783. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutHostMappingInfoVALVE & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20784. {
  20785. pNext = pNext_;
  20786. return *this;
  20787. }
  20788. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutHostMappingInfoVALVE & setDescriptorOffset( size_t descriptorOffset_ ) VULKAN_HPP_NOEXCEPT
  20789. {
  20790. descriptorOffset = descriptorOffset_;
  20791. return *this;
  20792. }
  20793. VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutHostMappingInfoVALVE & setDescriptorSize( uint32_t descriptorSize_ ) VULKAN_HPP_NOEXCEPT
  20794. {
  20795. descriptorSize = descriptorSize_;
  20796. return *this;
  20797. }
  20798. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20799. operator VkDescriptorSetLayoutHostMappingInfoVALVE const &() const VULKAN_HPP_NOEXCEPT
  20800. {
  20801. return *reinterpret_cast<const VkDescriptorSetLayoutHostMappingInfoVALVE *>( this );
  20802. }
  20803. operator VkDescriptorSetLayoutHostMappingInfoVALVE &() VULKAN_HPP_NOEXCEPT
  20804. {
  20805. return *reinterpret_cast<VkDescriptorSetLayoutHostMappingInfoVALVE *>( this );
  20806. }
  20807. #if defined( VULKAN_HPP_USE_REFLECT )
  20808. # if 14 <= VULKAN_HPP_CPP_VERSION
  20809. auto
  20810. # else
  20811. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, size_t const &, uint32_t const &>
  20812. # endif
  20813. reflect() const VULKAN_HPP_NOEXCEPT
  20814. {
  20815. return std::tie( sType, pNext, descriptorOffset, descriptorSize );
  20816. }
  20817. #endif
  20818. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20819. auto operator<=>( DescriptorSetLayoutHostMappingInfoVALVE const & ) const = default;
  20820. #else
  20821. bool operator==( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  20822. {
  20823. # if defined( VULKAN_HPP_USE_REFLECT )
  20824. return this->reflect() == rhs.reflect();
  20825. # else
  20826. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorOffset == rhs.descriptorOffset ) && ( descriptorSize == rhs.descriptorSize );
  20827. # endif
  20828. }
  20829. bool operator!=( DescriptorSetLayoutHostMappingInfoVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  20830. {
  20831. return !operator==( rhs );
  20832. }
  20833. #endif
  20834. public:
  20835. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutHostMappingInfoVALVE;
  20836. void * pNext = {};
  20837. size_t descriptorOffset = {};
  20838. uint32_t descriptorSize = {};
  20839. };
  20840. template <>
  20841. struct CppType<StructureType, StructureType::eDescriptorSetLayoutHostMappingInfoVALVE>
  20842. {
  20843. using Type = DescriptorSetLayoutHostMappingInfoVALVE;
  20844. };
  20845. struct DescriptorSetLayoutSupport
  20846. {
  20847. using NativeType = VkDescriptorSetLayoutSupport;
  20848. static const bool allowDuplicate = false;
  20849. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutSupport;
  20850. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20851. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( VULKAN_HPP_NAMESPACE::Bool32 supported_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20852. : pNext( pNext_ )
  20853. , supported( supported_ )
  20854. {
  20855. }
  20856. VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20857. DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
  20858. : DescriptorSetLayoutSupport( *reinterpret_cast<DescriptorSetLayoutSupport const *>( &rhs ) )
  20859. {
  20860. }
  20861. DescriptorSetLayoutSupport & operator=( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20862. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20863. DescriptorSetLayoutSupport & operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
  20864. {
  20865. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport const *>( &rhs );
  20866. return *this;
  20867. }
  20868. operator VkDescriptorSetLayoutSupport const &() const VULKAN_HPP_NOEXCEPT
  20869. {
  20870. return *reinterpret_cast<const VkDescriptorSetLayoutSupport *>( this );
  20871. }
  20872. operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT
  20873. {
  20874. return *reinterpret_cast<VkDescriptorSetLayoutSupport *>( this );
  20875. }
  20876. #if defined( VULKAN_HPP_USE_REFLECT )
  20877. # if 14 <= VULKAN_HPP_CPP_VERSION
  20878. auto
  20879. # else
  20880. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  20881. # endif
  20882. reflect() const VULKAN_HPP_NOEXCEPT
  20883. {
  20884. return std::tie( sType, pNext, supported );
  20885. }
  20886. #endif
  20887. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20888. auto operator<=>( DescriptorSetLayoutSupport const & ) const = default;
  20889. #else
  20890. bool operator==( DescriptorSetLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
  20891. {
  20892. # if defined( VULKAN_HPP_USE_REFLECT )
  20893. return this->reflect() == rhs.reflect();
  20894. # else
  20895. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supported == rhs.supported );
  20896. # endif
  20897. }
  20898. bool operator!=( DescriptorSetLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
  20899. {
  20900. return !operator==( rhs );
  20901. }
  20902. #endif
  20903. public:
  20904. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport;
  20905. void * pNext = {};
  20906. VULKAN_HPP_NAMESPACE::Bool32 supported = {};
  20907. };
  20908. template <>
  20909. struct CppType<StructureType, StructureType::eDescriptorSetLayoutSupport>
  20910. {
  20911. using Type = DescriptorSetLayoutSupport;
  20912. };
  20913. using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
  20914. struct DescriptorSetVariableDescriptorCountAllocateInfo
  20915. {
  20916. using NativeType = VkDescriptorSetVariableDescriptorCountAllocateInfo;
  20917. static const bool allowDuplicate = false;
  20918. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
  20919. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  20920. VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( uint32_t descriptorSetCount_ = {},
  20921. const uint32_t * pDescriptorCounts_ = {},
  20922. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  20923. : pNext( pNext_ )
  20924. , descriptorSetCount( descriptorSetCount_ )
  20925. , pDescriptorCounts( pDescriptorCounts_ )
  20926. {
  20927. }
  20928. VULKAN_HPP_CONSTEXPR
  20929. DescriptorSetVariableDescriptorCountAllocateInfo( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20930. DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20931. : DescriptorSetVariableDescriptorCountAllocateInfo( *reinterpret_cast<DescriptorSetVariableDescriptorCountAllocateInfo const *>( &rhs ) )
  20932. {
  20933. }
  20934. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20935. DescriptorSetVariableDescriptorCountAllocateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_,
  20936. const void * pNext_ = nullptr )
  20937. : pNext( pNext_ ), descriptorSetCount( static_cast<uint32_t>( descriptorCounts_.size() ) ), pDescriptorCounts( descriptorCounts_.data() )
  20938. {
  20939. }
  20940. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20941. DescriptorSetVariableDescriptorCountAllocateInfo & operator=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  20942. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  20943. DescriptorSetVariableDescriptorCountAllocateInfo & operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  20944. {
  20945. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo const *>( &rhs );
  20946. return *this;
  20947. }
  20948. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  20949. VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  20950. {
  20951. pNext = pNext_;
  20952. return *this;
  20953. }
  20954. VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT
  20955. {
  20956. descriptorSetCount = descriptorSetCount_;
  20957. return *this;
  20958. }
  20959. VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & setPDescriptorCounts( const uint32_t * pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT
  20960. {
  20961. pDescriptorCounts = pDescriptorCounts_;
  20962. return *this;
  20963. }
  20964. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  20965. DescriptorSetVariableDescriptorCountAllocateInfo &
  20966. setDescriptorCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & descriptorCounts_ ) VULKAN_HPP_NOEXCEPT
  20967. {
  20968. descriptorSetCount = static_cast<uint32_t>( descriptorCounts_.size() );
  20969. pDescriptorCounts = descriptorCounts_.data();
  20970. return *this;
  20971. }
  20972. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  20973. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  20974. operator VkDescriptorSetVariableDescriptorCountAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  20975. {
  20976. return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo *>( this );
  20977. }
  20978. operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT
  20979. {
  20980. return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo *>( this );
  20981. }
  20982. #if defined( VULKAN_HPP_USE_REFLECT )
  20983. # if 14 <= VULKAN_HPP_CPP_VERSION
  20984. auto
  20985. # else
  20986. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint32_t * const &>
  20987. # endif
  20988. reflect() const VULKAN_HPP_NOEXCEPT
  20989. {
  20990. return std::tie( sType, pNext, descriptorSetCount, pDescriptorCounts );
  20991. }
  20992. #endif
  20993. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  20994. auto operator<=>( DescriptorSetVariableDescriptorCountAllocateInfo const & ) const = default;
  20995. #else
  20996. bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  20997. {
  20998. # if defined( VULKAN_HPP_USE_REFLECT )
  20999. return this->reflect() == rhs.reflect();
  21000. # else
  21001. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorSetCount == rhs.descriptorSetCount ) &&
  21002. ( pDescriptorCounts == rhs.pDescriptorCounts );
  21003. # endif
  21004. }
  21005. bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  21006. {
  21007. return !operator==( rhs );
  21008. }
  21009. #endif
  21010. public:
  21011. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo;
  21012. const void * pNext = {};
  21013. uint32_t descriptorSetCount = {};
  21014. const uint32_t * pDescriptorCounts = {};
  21015. };
  21016. template <>
  21017. struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo>
  21018. {
  21019. using Type = DescriptorSetVariableDescriptorCountAllocateInfo;
  21020. };
  21021. using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
  21022. struct DescriptorSetVariableDescriptorCountLayoutSupport
  21023. {
  21024. using NativeType = VkDescriptorSetVariableDescriptorCountLayoutSupport;
  21025. static const bool allowDuplicate = false;
  21026. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
  21027. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21028. VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( uint32_t maxVariableDescriptorCount_ = {},
  21029. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21030. : pNext( pNext_ )
  21031. , maxVariableDescriptorCount( maxVariableDescriptorCount_ )
  21032. {
  21033. }
  21034. VULKAN_HPP_CONSTEXPR
  21035. DescriptorSetVariableDescriptorCountLayoutSupport( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21036. DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
  21037. : DescriptorSetVariableDescriptorCountLayoutSupport( *reinterpret_cast<DescriptorSetVariableDescriptorCountLayoutSupport const *>( &rhs ) )
  21038. {
  21039. }
  21040. DescriptorSetVariableDescriptorCountLayoutSupport &
  21041. operator=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21042. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21043. DescriptorSetVariableDescriptorCountLayoutSupport & operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT
  21044. {
  21045. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport const *>( &rhs );
  21046. return *this;
  21047. }
  21048. operator VkDescriptorSetVariableDescriptorCountLayoutSupport const &() const VULKAN_HPP_NOEXCEPT
  21049. {
  21050. return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport *>( this );
  21051. }
  21052. operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT
  21053. {
  21054. return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport *>( this );
  21055. }
  21056. #if defined( VULKAN_HPP_USE_REFLECT )
  21057. # if 14 <= VULKAN_HPP_CPP_VERSION
  21058. auto
  21059. # else
  21060. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  21061. # endif
  21062. reflect() const VULKAN_HPP_NOEXCEPT
  21063. {
  21064. return std::tie( sType, pNext, maxVariableDescriptorCount );
  21065. }
  21066. #endif
  21067. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21068. auto operator<=>( DescriptorSetVariableDescriptorCountLayoutSupport const & ) const = default;
  21069. #else
  21070. bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
  21071. {
  21072. # if defined( VULKAN_HPP_USE_REFLECT )
  21073. return this->reflect() == rhs.reflect();
  21074. # else
  21075. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount );
  21076. # endif
  21077. }
  21078. bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT
  21079. {
  21080. return !operator==( rhs );
  21081. }
  21082. #endif
  21083. public:
  21084. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport;
  21085. void * pNext = {};
  21086. uint32_t maxVariableDescriptorCount = {};
  21087. };
  21088. template <>
  21089. struct CppType<StructureType, StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport>
  21090. {
  21091. using Type = DescriptorSetVariableDescriptorCountLayoutSupport;
  21092. };
  21093. using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
  21094. struct DescriptorUpdateTemplateEntry
  21095. {
  21096. using NativeType = VkDescriptorUpdateTemplateEntry;
  21097. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21098. VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( uint32_t dstBinding_ = {},
  21099. uint32_t dstArrayElement_ = {},
  21100. uint32_t descriptorCount_ = {},
  21101. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
  21102. size_t offset_ = {},
  21103. size_t stride_ = {} ) VULKAN_HPP_NOEXCEPT
  21104. : dstBinding( dstBinding_ )
  21105. , dstArrayElement( dstArrayElement_ )
  21106. , descriptorCount( descriptorCount_ )
  21107. , descriptorType( descriptorType_ )
  21108. , offset( offset_ )
  21109. , stride( stride_ )
  21110. {
  21111. }
  21112. VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21113. DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
  21114. : DescriptorUpdateTemplateEntry( *reinterpret_cast<DescriptorUpdateTemplateEntry const *>( &rhs ) )
  21115. {
  21116. }
  21117. DescriptorUpdateTemplateEntry & operator=( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21118. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21119. DescriptorUpdateTemplateEntry & operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT
  21120. {
  21121. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry const *>( &rhs );
  21122. return *this;
  21123. }
  21124. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21125. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
  21126. {
  21127. dstBinding = dstBinding_;
  21128. return *this;
  21129. }
  21130. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
  21131. {
  21132. dstArrayElement = dstArrayElement_;
  21133. return *this;
  21134. }
  21135. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
  21136. {
  21137. descriptorCount = descriptorCount_;
  21138. return *this;
  21139. }
  21140. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
  21141. {
  21142. descriptorType = descriptorType_;
  21143. return *this;
  21144. }
  21145. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT
  21146. {
  21147. offset = offset_;
  21148. return *this;
  21149. }
  21150. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT
  21151. {
  21152. stride = stride_;
  21153. return *this;
  21154. }
  21155. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  21156. operator VkDescriptorUpdateTemplateEntry const &() const VULKAN_HPP_NOEXCEPT
  21157. {
  21158. return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry *>( this );
  21159. }
  21160. operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT
  21161. {
  21162. return *reinterpret_cast<VkDescriptorUpdateTemplateEntry *>( this );
  21163. }
  21164. #if defined( VULKAN_HPP_USE_REFLECT )
  21165. # if 14 <= VULKAN_HPP_CPP_VERSION
  21166. auto
  21167. # else
  21168. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DescriptorType const &, size_t const &, size_t const &>
  21169. # endif
  21170. reflect() const VULKAN_HPP_NOEXCEPT
  21171. {
  21172. return std::tie( dstBinding, dstArrayElement, descriptorCount, descriptorType, offset, stride );
  21173. }
  21174. #endif
  21175. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21176. auto operator<=>( DescriptorUpdateTemplateEntry const & ) const = default;
  21177. #else
  21178. bool operator==( DescriptorUpdateTemplateEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
  21179. {
  21180. # if defined( VULKAN_HPP_USE_REFLECT )
  21181. return this->reflect() == rhs.reflect();
  21182. # else
  21183. return ( dstBinding == rhs.dstBinding ) && ( dstArrayElement == rhs.dstArrayElement ) && ( descriptorCount == rhs.descriptorCount ) &&
  21184. ( descriptorType == rhs.descriptorType ) && ( offset == rhs.offset ) && ( stride == rhs.stride );
  21185. # endif
  21186. }
  21187. bool operator!=( DescriptorUpdateTemplateEntry const & rhs ) const VULKAN_HPP_NOEXCEPT
  21188. {
  21189. return !operator==( rhs );
  21190. }
  21191. #endif
  21192. public:
  21193. uint32_t dstBinding = {};
  21194. uint32_t dstArrayElement = {};
  21195. uint32_t descriptorCount = {};
  21196. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
  21197. size_t offset = {};
  21198. size_t stride = {};
  21199. };
  21200. using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
  21201. struct DescriptorUpdateTemplateCreateInfo
  21202. {
  21203. using NativeType = VkDescriptorUpdateTemplateCreateInfo;
  21204. static const bool allowDuplicate = false;
  21205. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorUpdateTemplateCreateInfo;
  21206. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21207. VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo(
  21208. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ = {},
  21209. uint32_t descriptorUpdateEntryCount_ = {},
  21210. const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries_ = {},
  21211. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet,
  21212. VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {},
  21213. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  21214. VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {},
  21215. uint32_t set_ = {},
  21216. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21217. : pNext( pNext_ )
  21218. , flags( flags_ )
  21219. , descriptorUpdateEntryCount( descriptorUpdateEntryCount_ )
  21220. , pDescriptorUpdateEntries( pDescriptorUpdateEntries_ )
  21221. , templateType( templateType_ )
  21222. , descriptorSetLayout( descriptorSetLayout_ )
  21223. , pipelineBindPoint( pipelineBindPoint_ )
  21224. , pipelineLayout( pipelineLayout_ )
  21225. , set( set_ )
  21226. {
  21227. }
  21228. VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21229. DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  21230. : DescriptorUpdateTemplateCreateInfo( *reinterpret_cast<DescriptorUpdateTemplateCreateInfo const *>( &rhs ) )
  21231. {
  21232. }
  21233. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  21234. DescriptorUpdateTemplateCreateInfo(
  21235. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_,
  21236. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const & descriptorUpdateEntries_,
  21237. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet,
  21238. VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {},
  21239. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  21240. VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {},
  21241. uint32_t set_ = {},
  21242. const void * pNext_ = nullptr )
  21243. : pNext( pNext_ )
  21244. , flags( flags_ )
  21245. , descriptorUpdateEntryCount( static_cast<uint32_t>( descriptorUpdateEntries_.size() ) )
  21246. , pDescriptorUpdateEntries( descriptorUpdateEntries_.data() )
  21247. , templateType( templateType_ )
  21248. , descriptorSetLayout( descriptorSetLayout_ )
  21249. , pipelineBindPoint( pipelineBindPoint_ )
  21250. , pipelineLayout( pipelineLayout_ )
  21251. , set( set_ )
  21252. {
  21253. }
  21254. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  21255. DescriptorUpdateTemplateCreateInfo & operator=( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21256. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21257. DescriptorUpdateTemplateCreateInfo & operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  21258. {
  21259. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const *>( &rhs );
  21260. return *this;
  21261. }
  21262. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21263. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  21264. {
  21265. pNext = pNext_;
  21266. return *this;
  21267. }
  21268. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
  21269. setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  21270. {
  21271. flags = flags_;
  21272. return *this;
  21273. }
  21274. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT
  21275. {
  21276. descriptorUpdateEntryCount = descriptorUpdateEntryCount_;
  21277. return *this;
  21278. }
  21279. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
  21280. setPDescriptorUpdateEntries( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT
  21281. {
  21282. pDescriptorUpdateEntries = pDescriptorUpdateEntries_;
  21283. return *this;
  21284. }
  21285. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  21286. DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries(
  21287. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry> const & descriptorUpdateEntries_ )
  21288. VULKAN_HPP_NOEXCEPT
  21289. {
  21290. descriptorUpdateEntryCount = static_cast<uint32_t>( descriptorUpdateEntries_.size() );
  21291. pDescriptorUpdateEntries = descriptorUpdateEntries_.data();
  21292. return *this;
  21293. }
  21294. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  21295. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
  21296. setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT
  21297. {
  21298. templateType = templateType_;
  21299. return *this;
  21300. }
  21301. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
  21302. setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT
  21303. {
  21304. descriptorSetLayout = descriptorSetLayout_;
  21305. return *this;
  21306. }
  21307. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo &
  21308. setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  21309. {
  21310. pipelineBindPoint = pipelineBindPoint_;
  21311. return *this;
  21312. }
  21313. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT
  21314. {
  21315. pipelineLayout = pipelineLayout_;
  21316. return *this;
  21317. }
  21318. VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT
  21319. {
  21320. set = set_;
  21321. return *this;
  21322. }
  21323. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  21324. operator VkDescriptorUpdateTemplateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  21325. {
  21326. return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( this );
  21327. }
  21328. operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT
  21329. {
  21330. return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo *>( this );
  21331. }
  21332. #if defined( VULKAN_HPP_USE_REFLECT )
  21333. # if 14 <= VULKAN_HPP_CPP_VERSION
  21334. auto
  21335. # else
  21336. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  21337. const void * const &,
  21338. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags const &,
  21339. uint32_t const &,
  21340. const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * const &,
  21341. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType const &,
  21342. VULKAN_HPP_NAMESPACE::DescriptorSetLayout const &,
  21343. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  21344. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  21345. uint32_t const &>
  21346. # endif
  21347. reflect() const VULKAN_HPP_NOEXCEPT
  21348. {
  21349. return std::tie(
  21350. sType, pNext, flags, descriptorUpdateEntryCount, pDescriptorUpdateEntries, templateType, descriptorSetLayout, pipelineBindPoint, pipelineLayout, set );
  21351. }
  21352. #endif
  21353. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21354. auto operator<=>( DescriptorUpdateTemplateCreateInfo const & ) const = default;
  21355. #else
  21356. bool operator==( DescriptorUpdateTemplateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  21357. {
  21358. # if defined( VULKAN_HPP_USE_REFLECT )
  21359. return this->reflect() == rhs.reflect();
  21360. # else
  21361. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount ) &&
  21362. ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries ) && ( templateType == rhs.templateType ) &&
  21363. ( descriptorSetLayout == rhs.descriptorSetLayout ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( pipelineLayout == rhs.pipelineLayout ) &&
  21364. ( set == rhs.set );
  21365. # endif
  21366. }
  21367. bool operator!=( DescriptorUpdateTemplateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  21368. {
  21369. return !operator==( rhs );
  21370. }
  21371. #endif
  21372. public:
  21373. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo;
  21374. const void * pNext = {};
  21375. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {};
  21376. uint32_t descriptorUpdateEntryCount = {};
  21377. const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries = {};
  21378. VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet;
  21379. VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {};
  21380. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  21381. VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {};
  21382. uint32_t set = {};
  21383. };
  21384. template <>
  21385. struct CppType<StructureType, StructureType::eDescriptorUpdateTemplateCreateInfo>
  21386. {
  21387. using Type = DescriptorUpdateTemplateCreateInfo;
  21388. };
  21389. using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
  21390. struct DeviceAddressBindingCallbackDataEXT
  21391. {
  21392. using NativeType = VkDeviceAddressBindingCallbackDataEXT;
  21393. static const bool allowDuplicate = false;
  21394. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceAddressBindingCallbackDataEXT;
  21395. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21396. VULKAN_HPP_CONSTEXPR DeviceAddressBindingCallbackDataEXT(
  21397. VULKAN_HPP_NAMESPACE::DeviceAddressBindingFlagsEXT flags_ = {},
  21398. VULKAN_HPP_NAMESPACE::DeviceAddress baseAddress_ = {},
  21399. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  21400. VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT bindingType_ = VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT::eBind,
  21401. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21402. : pNext( pNext_ )
  21403. , flags( flags_ )
  21404. , baseAddress( baseAddress_ )
  21405. , size( size_ )
  21406. , bindingType( bindingType_ )
  21407. {
  21408. }
  21409. VULKAN_HPP_CONSTEXPR DeviceAddressBindingCallbackDataEXT( DeviceAddressBindingCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21410. DeviceAddressBindingCallbackDataEXT( VkDeviceAddressBindingCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  21411. : DeviceAddressBindingCallbackDataEXT( *reinterpret_cast<DeviceAddressBindingCallbackDataEXT const *>( &rhs ) )
  21412. {
  21413. }
  21414. DeviceAddressBindingCallbackDataEXT & operator=( DeviceAddressBindingCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21415. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21416. DeviceAddressBindingCallbackDataEXT & operator=( VkDeviceAddressBindingCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  21417. {
  21418. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT const *>( &rhs );
  21419. return *this;
  21420. }
  21421. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21422. VULKAN_HPP_CONSTEXPR_14 DeviceAddressBindingCallbackDataEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  21423. {
  21424. pNext = pNext_;
  21425. return *this;
  21426. }
  21427. VULKAN_HPP_CONSTEXPR_14 DeviceAddressBindingCallbackDataEXT & setFlags( VULKAN_HPP_NAMESPACE::DeviceAddressBindingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  21428. {
  21429. flags = flags_;
  21430. return *this;
  21431. }
  21432. VULKAN_HPP_CONSTEXPR_14 DeviceAddressBindingCallbackDataEXT & setBaseAddress( VULKAN_HPP_NAMESPACE::DeviceAddress baseAddress_ ) VULKAN_HPP_NOEXCEPT
  21433. {
  21434. baseAddress = baseAddress_;
  21435. return *this;
  21436. }
  21437. VULKAN_HPP_CONSTEXPR_14 DeviceAddressBindingCallbackDataEXT & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  21438. {
  21439. size = size_;
  21440. return *this;
  21441. }
  21442. VULKAN_HPP_CONSTEXPR_14 DeviceAddressBindingCallbackDataEXT &
  21443. setBindingType( VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT bindingType_ ) VULKAN_HPP_NOEXCEPT
  21444. {
  21445. bindingType = bindingType_;
  21446. return *this;
  21447. }
  21448. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  21449. operator VkDeviceAddressBindingCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT
  21450. {
  21451. return *reinterpret_cast<const VkDeviceAddressBindingCallbackDataEXT *>( this );
  21452. }
  21453. operator VkDeviceAddressBindingCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
  21454. {
  21455. return *reinterpret_cast<VkDeviceAddressBindingCallbackDataEXT *>( this );
  21456. }
  21457. #if defined( VULKAN_HPP_USE_REFLECT )
  21458. # if 14 <= VULKAN_HPP_CPP_VERSION
  21459. auto
  21460. # else
  21461. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  21462. void * const &,
  21463. VULKAN_HPP_NAMESPACE::DeviceAddressBindingFlagsEXT const &,
  21464. VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  21465. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  21466. VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT const &>
  21467. # endif
  21468. reflect() const VULKAN_HPP_NOEXCEPT
  21469. {
  21470. return std::tie( sType, pNext, flags, baseAddress, size, bindingType );
  21471. }
  21472. #endif
  21473. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21474. auto operator<=>( DeviceAddressBindingCallbackDataEXT const & ) const = default;
  21475. #else
  21476. bool operator==( DeviceAddressBindingCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  21477. {
  21478. # if defined( VULKAN_HPP_USE_REFLECT )
  21479. return this->reflect() == rhs.reflect();
  21480. # else
  21481. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( baseAddress == rhs.baseAddress ) && ( size == rhs.size ) &&
  21482. ( bindingType == rhs.bindingType );
  21483. # endif
  21484. }
  21485. bool operator!=( DeviceAddressBindingCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  21486. {
  21487. return !operator==( rhs );
  21488. }
  21489. #endif
  21490. public:
  21491. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceAddressBindingCallbackDataEXT;
  21492. void * pNext = {};
  21493. VULKAN_HPP_NAMESPACE::DeviceAddressBindingFlagsEXT flags = {};
  21494. VULKAN_HPP_NAMESPACE::DeviceAddress baseAddress = {};
  21495. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  21496. VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT bindingType = VULKAN_HPP_NAMESPACE::DeviceAddressBindingTypeEXT::eBind;
  21497. };
  21498. template <>
  21499. struct CppType<StructureType, StructureType::eDeviceAddressBindingCallbackDataEXT>
  21500. {
  21501. using Type = DeviceAddressBindingCallbackDataEXT;
  21502. };
  21503. struct DeviceBufferMemoryRequirements
  21504. {
  21505. using NativeType = VkDeviceBufferMemoryRequirements;
  21506. static const bool allowDuplicate = false;
  21507. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceBufferMemoryRequirements;
  21508. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21509. VULKAN_HPP_CONSTEXPR DeviceBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo_ = {},
  21510. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21511. : pNext( pNext_ )
  21512. , pCreateInfo( pCreateInfo_ )
  21513. {
  21514. }
  21515. VULKAN_HPP_CONSTEXPR DeviceBufferMemoryRequirements( DeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21516. DeviceBufferMemoryRequirements( VkDeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  21517. : DeviceBufferMemoryRequirements( *reinterpret_cast<DeviceBufferMemoryRequirements const *>( &rhs ) )
  21518. {
  21519. }
  21520. DeviceBufferMemoryRequirements & operator=( DeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21521. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21522. DeviceBufferMemoryRequirements & operator=( VkDeviceBufferMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  21523. {
  21524. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements const *>( &rhs );
  21525. return *this;
  21526. }
  21527. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21528. VULKAN_HPP_CONSTEXPR_14 DeviceBufferMemoryRequirements & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  21529. {
  21530. pNext = pNext_;
  21531. return *this;
  21532. }
  21533. VULKAN_HPP_CONSTEXPR_14 DeviceBufferMemoryRequirements & setPCreateInfo( const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo_ ) VULKAN_HPP_NOEXCEPT
  21534. {
  21535. pCreateInfo = pCreateInfo_;
  21536. return *this;
  21537. }
  21538. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  21539. operator VkDeviceBufferMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
  21540. {
  21541. return *reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( this );
  21542. }
  21543. operator VkDeviceBufferMemoryRequirements &() VULKAN_HPP_NOEXCEPT
  21544. {
  21545. return *reinterpret_cast<VkDeviceBufferMemoryRequirements *>( this );
  21546. }
  21547. #if defined( VULKAN_HPP_USE_REFLECT )
  21548. # if 14 <= VULKAN_HPP_CPP_VERSION
  21549. auto
  21550. # else
  21551. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const VULKAN_HPP_NAMESPACE::BufferCreateInfo * const &>
  21552. # endif
  21553. reflect() const VULKAN_HPP_NOEXCEPT
  21554. {
  21555. return std::tie( sType, pNext, pCreateInfo );
  21556. }
  21557. #endif
  21558. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21559. auto operator<=>( DeviceBufferMemoryRequirements const & ) const = default;
  21560. #else
  21561. bool operator==( DeviceBufferMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  21562. {
  21563. # if defined( VULKAN_HPP_USE_REFLECT )
  21564. return this->reflect() == rhs.reflect();
  21565. # else
  21566. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pCreateInfo == rhs.pCreateInfo );
  21567. # endif
  21568. }
  21569. bool operator!=( DeviceBufferMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  21570. {
  21571. return !operator==( rhs );
  21572. }
  21573. #endif
  21574. public:
  21575. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceBufferMemoryRequirements;
  21576. const void * pNext = {};
  21577. const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo = {};
  21578. };
  21579. template <>
  21580. struct CppType<StructureType, StructureType::eDeviceBufferMemoryRequirements>
  21581. {
  21582. using Type = DeviceBufferMemoryRequirements;
  21583. };
  21584. using DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements;
  21585. struct DeviceQueueCreateInfo
  21586. {
  21587. using NativeType = VkDeviceQueueCreateInfo;
  21588. static const bool allowDuplicate = false;
  21589. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueCreateInfo;
  21590. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21591. VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {},
  21592. uint32_t queueFamilyIndex_ = {},
  21593. uint32_t queueCount_ = {},
  21594. const float * pQueuePriorities_ = {},
  21595. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  21596. : pNext( pNext_ )
  21597. , flags( flags_ )
  21598. , queueFamilyIndex( queueFamilyIndex_ )
  21599. , queueCount( queueCount_ )
  21600. , pQueuePriorities( pQueuePriorities_ )
  21601. {
  21602. }
  21603. VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21604. DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  21605. : DeviceQueueCreateInfo( *reinterpret_cast<DeviceQueueCreateInfo const *>( &rhs ) )
  21606. {
  21607. }
  21608. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  21609. DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_,
  21610. uint32_t queueFamilyIndex_,
  21611. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_,
  21612. const void * pNext_ = nullptr )
  21613. : pNext( pNext_ )
  21614. , flags( flags_ )
  21615. , queueFamilyIndex( queueFamilyIndex_ )
  21616. , queueCount( static_cast<uint32_t>( queuePriorities_.size() ) )
  21617. , pQueuePriorities( queuePriorities_.data() )
  21618. {
  21619. }
  21620. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  21621. DeviceQueueCreateInfo & operator=( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21622. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21623. DeviceQueueCreateInfo & operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  21624. {
  21625. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo const *>( &rhs );
  21626. return *this;
  21627. }
  21628. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21629. VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  21630. {
  21631. pNext = pNext_;
  21632. return *this;
  21633. }
  21634. VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  21635. {
  21636. flags = flags_;
  21637. return *this;
  21638. }
  21639. VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  21640. {
  21641. queueFamilyIndex = queueFamilyIndex_;
  21642. return *this;
  21643. }
  21644. VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT
  21645. {
  21646. queueCount = queueCount_;
  21647. return *this;
  21648. }
  21649. VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & setPQueuePriorities( const float * pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT
  21650. {
  21651. pQueuePriorities = pQueuePriorities_;
  21652. return *this;
  21653. }
  21654. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  21655. DeviceQueueCreateInfo & setQueuePriorities( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & queuePriorities_ ) VULKAN_HPP_NOEXCEPT
  21656. {
  21657. queueCount = static_cast<uint32_t>( queuePriorities_.size() );
  21658. pQueuePriorities = queuePriorities_.data();
  21659. return *this;
  21660. }
  21661. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  21662. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  21663. operator VkDeviceQueueCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  21664. {
  21665. return *reinterpret_cast<const VkDeviceQueueCreateInfo *>( this );
  21666. }
  21667. operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT
  21668. {
  21669. return *reinterpret_cast<VkDeviceQueueCreateInfo *>( this );
  21670. }
  21671. #if defined( VULKAN_HPP_USE_REFLECT )
  21672. # if 14 <= VULKAN_HPP_CPP_VERSION
  21673. auto
  21674. # else
  21675. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  21676. const void * const &,
  21677. VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags const &,
  21678. uint32_t const &,
  21679. uint32_t const &,
  21680. const float * const &>
  21681. # endif
  21682. reflect() const VULKAN_HPP_NOEXCEPT
  21683. {
  21684. return std::tie( sType, pNext, flags, queueFamilyIndex, queueCount, pQueuePriorities );
  21685. }
  21686. #endif
  21687. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  21688. auto operator<=>( DeviceQueueCreateInfo const & ) const = default;
  21689. #else
  21690. bool operator==( DeviceQueueCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  21691. {
  21692. # if defined( VULKAN_HPP_USE_REFLECT )
  21693. return this->reflect() == rhs.reflect();
  21694. # else
  21695. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( queueFamilyIndex == rhs.queueFamilyIndex ) &&
  21696. ( queueCount == rhs.queueCount ) && ( pQueuePriorities == rhs.pQueuePriorities );
  21697. # endif
  21698. }
  21699. bool operator!=( DeviceQueueCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  21700. {
  21701. return !operator==( rhs );
  21702. }
  21703. #endif
  21704. public:
  21705. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo;
  21706. const void * pNext = {};
  21707. VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
  21708. uint32_t queueFamilyIndex = {};
  21709. uint32_t queueCount = {};
  21710. const float * pQueuePriorities = {};
  21711. };
  21712. template <>
  21713. struct CppType<StructureType, StructureType::eDeviceQueueCreateInfo>
  21714. {
  21715. using Type = DeviceQueueCreateInfo;
  21716. };
  21717. struct PhysicalDeviceFeatures
  21718. {
  21719. using NativeType = VkPhysicalDeviceFeatures;
  21720. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  21721. VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ = {},
  21722. VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ = {},
  21723. VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ = {},
  21724. VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ = {},
  21725. VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ = {},
  21726. VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ = {},
  21727. VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ = {},
  21728. VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ = {},
  21729. VULKAN_HPP_NAMESPACE::Bool32 logicOp_ = {},
  21730. VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ = {},
  21731. VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ = {},
  21732. VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ = {},
  21733. VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ = {},
  21734. VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ = {},
  21735. VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ = {},
  21736. VULKAN_HPP_NAMESPACE::Bool32 wideLines_ = {},
  21737. VULKAN_HPP_NAMESPACE::Bool32 largePoints_ = {},
  21738. VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ = {},
  21739. VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ = {},
  21740. VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ = {},
  21741. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ = {},
  21742. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ = {},
  21743. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ = {},
  21744. VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ = {},
  21745. VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ = {},
  21746. VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ = {},
  21747. VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ = {},
  21748. VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ = {},
  21749. VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ = {},
  21750. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ = {},
  21751. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ = {},
  21752. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ = {},
  21753. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ = {},
  21754. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ = {},
  21755. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ = {},
  21756. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ = {},
  21757. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ = {},
  21758. VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ = {},
  21759. VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ = {},
  21760. VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ = {},
  21761. VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ = {},
  21762. VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ = {},
  21763. VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ = {},
  21764. VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ = {},
  21765. VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ = {},
  21766. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ = {},
  21767. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ = {},
  21768. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ = {},
  21769. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ = {},
  21770. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ = {},
  21771. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ = {},
  21772. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ = {},
  21773. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ = {},
  21774. VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ = {},
  21775. VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ = {} ) VULKAN_HPP_NOEXCEPT
  21776. : robustBufferAccess( robustBufferAccess_ )
  21777. , fullDrawIndexUint32( fullDrawIndexUint32_ )
  21778. , imageCubeArray( imageCubeArray_ )
  21779. , independentBlend( independentBlend_ )
  21780. , geometryShader( geometryShader_ )
  21781. , tessellationShader( tessellationShader_ )
  21782. , sampleRateShading( sampleRateShading_ )
  21783. , dualSrcBlend( dualSrcBlend_ )
  21784. , logicOp( logicOp_ )
  21785. , multiDrawIndirect( multiDrawIndirect_ )
  21786. , drawIndirectFirstInstance( drawIndirectFirstInstance_ )
  21787. , depthClamp( depthClamp_ )
  21788. , depthBiasClamp( depthBiasClamp_ )
  21789. , fillModeNonSolid( fillModeNonSolid_ )
  21790. , depthBounds( depthBounds_ )
  21791. , wideLines( wideLines_ )
  21792. , largePoints( largePoints_ )
  21793. , alphaToOne( alphaToOne_ )
  21794. , multiViewport( multiViewport_ )
  21795. , samplerAnisotropy( samplerAnisotropy_ )
  21796. , textureCompressionETC2( textureCompressionETC2_ )
  21797. , textureCompressionASTC_LDR( textureCompressionASTC_LDR_ )
  21798. , textureCompressionBC( textureCompressionBC_ )
  21799. , occlusionQueryPrecise( occlusionQueryPrecise_ )
  21800. , pipelineStatisticsQuery( pipelineStatisticsQuery_ )
  21801. , vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ )
  21802. , fragmentStoresAndAtomics( fragmentStoresAndAtomics_ )
  21803. , shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ )
  21804. , shaderImageGatherExtended( shaderImageGatherExtended_ )
  21805. , shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ )
  21806. , shaderStorageImageMultisample( shaderStorageImageMultisample_ )
  21807. , shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ )
  21808. , shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ )
  21809. , shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ )
  21810. , shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ )
  21811. , shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ )
  21812. , shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ )
  21813. , shaderClipDistance( shaderClipDistance_ )
  21814. , shaderCullDistance( shaderCullDistance_ )
  21815. , shaderFloat64( shaderFloat64_ )
  21816. , shaderInt64( shaderInt64_ )
  21817. , shaderInt16( shaderInt16_ )
  21818. , shaderResourceResidency( shaderResourceResidency_ )
  21819. , shaderResourceMinLod( shaderResourceMinLod_ )
  21820. , sparseBinding( sparseBinding_ )
  21821. , sparseResidencyBuffer( sparseResidencyBuffer_ )
  21822. , sparseResidencyImage2D( sparseResidencyImage2D_ )
  21823. , sparseResidencyImage3D( sparseResidencyImage3D_ )
  21824. , sparseResidency2Samples( sparseResidency2Samples_ )
  21825. , sparseResidency4Samples( sparseResidency4Samples_ )
  21826. , sparseResidency8Samples( sparseResidency8Samples_ )
  21827. , sparseResidency16Samples( sparseResidency16Samples_ )
  21828. , sparseResidencyAliased( sparseResidencyAliased_ )
  21829. , variableMultisampleRate( variableMultisampleRate_ )
  21830. , inheritedQueries( inheritedQueries_ )
  21831. {
  21832. }
  21833. VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21834. PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  21835. : PhysicalDeviceFeatures( *reinterpret_cast<PhysicalDeviceFeatures const *>( &rhs ) )
  21836. {
  21837. }
  21838. PhysicalDeviceFeatures & operator=( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  21839. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  21840. PhysicalDeviceFeatures & operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  21841. {
  21842. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const *>( &rhs );
  21843. return *this;
  21844. }
  21845. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  21846. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
  21847. {
  21848. robustBufferAccess = robustBufferAccess_;
  21849. return *this;
  21850. }
  21851. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT
  21852. {
  21853. fullDrawIndexUint32 = fullDrawIndexUint32_;
  21854. return *this;
  21855. }
  21856. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT
  21857. {
  21858. imageCubeArray = imageCubeArray_;
  21859. return *this;
  21860. }
  21861. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT
  21862. {
  21863. independentBlend = independentBlend_;
  21864. return *this;
  21865. }
  21866. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT
  21867. {
  21868. geometryShader = geometryShader_;
  21869. return *this;
  21870. }
  21871. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT
  21872. {
  21873. tessellationShader = tessellationShader_;
  21874. return *this;
  21875. }
  21876. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT
  21877. {
  21878. sampleRateShading = sampleRateShading_;
  21879. return *this;
  21880. }
  21881. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT
  21882. {
  21883. dualSrcBlend = dualSrcBlend_;
  21884. return *this;
  21885. }
  21886. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT
  21887. {
  21888. logicOp = logicOp_;
  21889. return *this;
  21890. }
  21891. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT
  21892. {
  21893. multiDrawIndirect = multiDrawIndirect_;
  21894. return *this;
  21895. }
  21896. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT
  21897. {
  21898. drawIndirectFirstInstance = drawIndirectFirstInstance_;
  21899. return *this;
  21900. }
  21901. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT
  21902. {
  21903. depthClamp = depthClamp_;
  21904. return *this;
  21905. }
  21906. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
  21907. {
  21908. depthBiasClamp = depthBiasClamp_;
  21909. return *this;
  21910. }
  21911. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT
  21912. {
  21913. fillModeNonSolid = fillModeNonSolid_;
  21914. return *this;
  21915. }
  21916. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT
  21917. {
  21918. depthBounds = depthBounds_;
  21919. return *this;
  21920. }
  21921. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT
  21922. {
  21923. wideLines = wideLines_;
  21924. return *this;
  21925. }
  21926. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT
  21927. {
  21928. largePoints = largePoints_;
  21929. return *this;
  21930. }
  21931. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT
  21932. {
  21933. alphaToOne = alphaToOne_;
  21934. return *this;
  21935. }
  21936. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT
  21937. {
  21938. multiViewport = multiViewport_;
  21939. return *this;
  21940. }
  21941. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT
  21942. {
  21943. samplerAnisotropy = samplerAnisotropy_;
  21944. return *this;
  21945. }
  21946. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT
  21947. {
  21948. textureCompressionETC2 = textureCompressionETC2_;
  21949. return *this;
  21950. }
  21951. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  21952. setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT
  21953. {
  21954. textureCompressionASTC_LDR = textureCompressionASTC_LDR_;
  21955. return *this;
  21956. }
  21957. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT
  21958. {
  21959. textureCompressionBC = textureCompressionBC_;
  21960. return *this;
  21961. }
  21962. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT
  21963. {
  21964. occlusionQueryPrecise = occlusionQueryPrecise_;
  21965. return *this;
  21966. }
  21967. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT
  21968. {
  21969. pipelineStatisticsQuery = pipelineStatisticsQuery_;
  21970. return *this;
  21971. }
  21972. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  21973. setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
  21974. {
  21975. vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_;
  21976. return *this;
  21977. }
  21978. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT
  21979. {
  21980. fragmentStoresAndAtomics = fragmentStoresAndAtomics_;
  21981. return *this;
  21982. }
  21983. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  21984. setShaderTessellationAndGeometryPointSize( VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT
  21985. {
  21986. shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_;
  21987. return *this;
  21988. }
  21989. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT
  21990. {
  21991. shaderImageGatherExtended = shaderImageGatherExtended_;
  21992. return *this;
  21993. }
  21994. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  21995. setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT
  21996. {
  21997. shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_;
  21998. return *this;
  21999. }
  22000. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  22001. setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT
  22002. {
  22003. shaderStorageImageMultisample = shaderStorageImageMultisample_;
  22004. return *this;
  22005. }
  22006. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  22007. setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
  22008. {
  22009. shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_;
  22010. return *this;
  22011. }
  22012. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  22013. setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
  22014. {
  22015. shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_;
  22016. return *this;
  22017. }
  22018. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  22019. setShaderUniformBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  22020. {
  22021. shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_;
  22022. return *this;
  22023. }
  22024. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  22025. setShaderSampledImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  22026. {
  22027. shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_;
  22028. return *this;
  22029. }
  22030. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  22031. setShaderStorageBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  22032. {
  22033. shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_;
  22034. return *this;
  22035. }
  22036. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures &
  22037. setShaderStorageImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  22038. {
  22039. shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_;
  22040. return *this;
  22041. }
  22042. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT
  22043. {
  22044. shaderClipDistance = shaderClipDistance_;
  22045. return *this;
  22046. }
  22047. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT
  22048. {
  22049. shaderCullDistance = shaderCullDistance_;
  22050. return *this;
  22051. }
  22052. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT
  22053. {
  22054. shaderFloat64 = shaderFloat64_;
  22055. return *this;
  22056. }
  22057. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT
  22058. {
  22059. shaderInt64 = shaderInt64_;
  22060. return *this;
  22061. }
  22062. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT
  22063. {
  22064. shaderInt16 = shaderInt16_;
  22065. return *this;
  22066. }
  22067. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT
  22068. {
  22069. shaderResourceResidency = shaderResourceResidency_;
  22070. return *this;
  22071. }
  22072. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT
  22073. {
  22074. shaderResourceMinLod = shaderResourceMinLod_;
  22075. return *this;
  22076. }
  22077. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT
  22078. {
  22079. sparseBinding = sparseBinding_;
  22080. return *this;
  22081. }
  22082. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT
  22083. {
  22084. sparseResidencyBuffer = sparseResidencyBuffer_;
  22085. return *this;
  22086. }
  22087. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT
  22088. {
  22089. sparseResidencyImage2D = sparseResidencyImage2D_;
  22090. return *this;
  22091. }
  22092. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT
  22093. {
  22094. sparseResidencyImage3D = sparseResidencyImage3D_;
  22095. return *this;
  22096. }
  22097. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT
  22098. {
  22099. sparseResidency2Samples = sparseResidency2Samples_;
  22100. return *this;
  22101. }
  22102. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT
  22103. {
  22104. sparseResidency4Samples = sparseResidency4Samples_;
  22105. return *this;
  22106. }
  22107. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT
  22108. {
  22109. sparseResidency8Samples = sparseResidency8Samples_;
  22110. return *this;
  22111. }
  22112. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT
  22113. {
  22114. sparseResidency16Samples = sparseResidency16Samples_;
  22115. return *this;
  22116. }
  22117. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT
  22118. {
  22119. sparseResidencyAliased = sparseResidencyAliased_;
  22120. return *this;
  22121. }
  22122. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT
  22123. {
  22124. variableMultisampleRate = variableMultisampleRate_;
  22125. return *this;
  22126. }
  22127. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT
  22128. {
  22129. inheritedQueries = inheritedQueries_;
  22130. return *this;
  22131. }
  22132. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22133. operator VkPhysicalDeviceFeatures const &() const VULKAN_HPP_NOEXCEPT
  22134. {
  22135. return *reinterpret_cast<const VkPhysicalDeviceFeatures *>( this );
  22136. }
  22137. operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT
  22138. {
  22139. return *reinterpret_cast<VkPhysicalDeviceFeatures *>( this );
  22140. }
  22141. #if defined( VULKAN_HPP_USE_REFLECT )
  22142. # if 14 <= VULKAN_HPP_CPP_VERSION
  22143. auto
  22144. # else
  22145. std::tuple<VULKAN_HPP_NAMESPACE::Bool32 const &,
  22146. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22147. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22148. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22149. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22150. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22151. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22152. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22153. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22154. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22155. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22156. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22157. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22158. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22159. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22160. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22161. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22162. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22163. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22164. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22165. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22166. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22167. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22168. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22169. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22170. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22171. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22172. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22173. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22174. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22175. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22176. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22177. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22178. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22179. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22180. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22181. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22182. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22183. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22184. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22185. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22186. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22187. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22188. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22189. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22190. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22191. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22192. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22193. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22194. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22195. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22196. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22197. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22198. VULKAN_HPP_NAMESPACE::Bool32 const &,
  22199. VULKAN_HPP_NAMESPACE::Bool32 const &>
  22200. # endif
  22201. reflect() const VULKAN_HPP_NOEXCEPT
  22202. {
  22203. return std::tie( robustBufferAccess,
  22204. fullDrawIndexUint32,
  22205. imageCubeArray,
  22206. independentBlend,
  22207. geometryShader,
  22208. tessellationShader,
  22209. sampleRateShading,
  22210. dualSrcBlend,
  22211. logicOp,
  22212. multiDrawIndirect,
  22213. drawIndirectFirstInstance,
  22214. depthClamp,
  22215. depthBiasClamp,
  22216. fillModeNonSolid,
  22217. depthBounds,
  22218. wideLines,
  22219. largePoints,
  22220. alphaToOne,
  22221. multiViewport,
  22222. samplerAnisotropy,
  22223. textureCompressionETC2,
  22224. textureCompressionASTC_LDR,
  22225. textureCompressionBC,
  22226. occlusionQueryPrecise,
  22227. pipelineStatisticsQuery,
  22228. vertexPipelineStoresAndAtomics,
  22229. fragmentStoresAndAtomics,
  22230. shaderTessellationAndGeometryPointSize,
  22231. shaderImageGatherExtended,
  22232. shaderStorageImageExtendedFormats,
  22233. shaderStorageImageMultisample,
  22234. shaderStorageImageReadWithoutFormat,
  22235. shaderStorageImageWriteWithoutFormat,
  22236. shaderUniformBufferArrayDynamicIndexing,
  22237. shaderSampledImageArrayDynamicIndexing,
  22238. shaderStorageBufferArrayDynamicIndexing,
  22239. shaderStorageImageArrayDynamicIndexing,
  22240. shaderClipDistance,
  22241. shaderCullDistance,
  22242. shaderFloat64,
  22243. shaderInt64,
  22244. shaderInt16,
  22245. shaderResourceResidency,
  22246. shaderResourceMinLod,
  22247. sparseBinding,
  22248. sparseResidencyBuffer,
  22249. sparseResidencyImage2D,
  22250. sparseResidencyImage3D,
  22251. sparseResidency2Samples,
  22252. sparseResidency4Samples,
  22253. sparseResidency8Samples,
  22254. sparseResidency16Samples,
  22255. sparseResidencyAliased,
  22256. variableMultisampleRate,
  22257. inheritedQueries );
  22258. }
  22259. #endif
  22260. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22261. auto operator<=>( PhysicalDeviceFeatures const & ) const = default;
  22262. #else
  22263. bool operator==( PhysicalDeviceFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  22264. {
  22265. # if defined( VULKAN_HPP_USE_REFLECT )
  22266. return this->reflect() == rhs.reflect();
  22267. # else
  22268. return ( robustBufferAccess == rhs.robustBufferAccess ) && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 ) &&
  22269. ( imageCubeArray == rhs.imageCubeArray ) && ( independentBlend == rhs.independentBlend ) && ( geometryShader == rhs.geometryShader ) &&
  22270. ( tessellationShader == rhs.tessellationShader ) && ( sampleRateShading == rhs.sampleRateShading ) && ( dualSrcBlend == rhs.dualSrcBlend ) &&
  22271. ( logicOp == rhs.logicOp ) && ( multiDrawIndirect == rhs.multiDrawIndirect ) && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance ) &&
  22272. ( depthClamp == rhs.depthClamp ) && ( depthBiasClamp == rhs.depthBiasClamp ) && ( fillModeNonSolid == rhs.fillModeNonSolid ) &&
  22273. ( depthBounds == rhs.depthBounds ) && ( wideLines == rhs.wideLines ) && ( largePoints == rhs.largePoints ) && ( alphaToOne == rhs.alphaToOne ) &&
  22274. ( multiViewport == rhs.multiViewport ) && ( samplerAnisotropy == rhs.samplerAnisotropy ) &&
  22275. ( textureCompressionETC2 == rhs.textureCompressionETC2 ) && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR ) &&
  22276. ( textureCompressionBC == rhs.textureCompressionBC ) && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise ) &&
  22277. ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery ) && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics ) &&
  22278. ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics ) &&
  22279. ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize ) &&
  22280. ( shaderImageGatherExtended == rhs.shaderImageGatherExtended ) && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats ) &&
  22281. ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample ) &&
  22282. ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat ) &&
  22283. ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat ) &&
  22284. ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing ) &&
  22285. ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing ) &&
  22286. ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing ) &&
  22287. ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing ) && ( shaderClipDistance == rhs.shaderClipDistance ) &&
  22288. ( shaderCullDistance == rhs.shaderCullDistance ) && ( shaderFloat64 == rhs.shaderFloat64 ) && ( shaderInt64 == rhs.shaderInt64 ) &&
  22289. ( shaderInt16 == rhs.shaderInt16 ) && ( shaderResourceResidency == rhs.shaderResourceResidency ) &&
  22290. ( shaderResourceMinLod == rhs.shaderResourceMinLod ) && ( sparseBinding == rhs.sparseBinding ) &&
  22291. ( sparseResidencyBuffer == rhs.sparseResidencyBuffer ) && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D ) &&
  22292. ( sparseResidencyImage3D == rhs.sparseResidencyImage3D ) && ( sparseResidency2Samples == rhs.sparseResidency2Samples ) &&
  22293. ( sparseResidency4Samples == rhs.sparseResidency4Samples ) && ( sparseResidency8Samples == rhs.sparseResidency8Samples ) &&
  22294. ( sparseResidency16Samples == rhs.sparseResidency16Samples ) && ( sparseResidencyAliased == rhs.sparseResidencyAliased ) &&
  22295. ( variableMultisampleRate == rhs.variableMultisampleRate ) && ( inheritedQueries == rhs.inheritedQueries );
  22296. # endif
  22297. }
  22298. bool operator!=( PhysicalDeviceFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  22299. {
  22300. return !operator==( rhs );
  22301. }
  22302. #endif
  22303. public:
  22304. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {};
  22305. VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {};
  22306. VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {};
  22307. VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {};
  22308. VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {};
  22309. VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {};
  22310. VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {};
  22311. VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {};
  22312. VULKAN_HPP_NAMESPACE::Bool32 logicOp = {};
  22313. VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {};
  22314. VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {};
  22315. VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {};
  22316. VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {};
  22317. VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {};
  22318. VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {};
  22319. VULKAN_HPP_NAMESPACE::Bool32 wideLines = {};
  22320. VULKAN_HPP_NAMESPACE::Bool32 largePoints = {};
  22321. VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {};
  22322. VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {};
  22323. VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {};
  22324. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {};
  22325. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {};
  22326. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {};
  22327. VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {};
  22328. VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {};
  22329. VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {};
  22330. VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {};
  22331. VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {};
  22332. VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {};
  22333. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {};
  22334. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {};
  22335. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {};
  22336. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {};
  22337. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {};
  22338. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {};
  22339. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {};
  22340. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {};
  22341. VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {};
  22342. VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {};
  22343. VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {};
  22344. VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {};
  22345. VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {};
  22346. VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {};
  22347. VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {};
  22348. VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {};
  22349. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {};
  22350. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {};
  22351. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {};
  22352. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {};
  22353. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {};
  22354. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {};
  22355. VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {};
  22356. VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {};
  22357. VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {};
  22358. VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {};
  22359. };
  22360. struct DeviceCreateInfo
  22361. {
  22362. using NativeType = VkDeviceCreateInfo;
  22363. static const bool allowDuplicate = false;
  22364. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo;
  22365. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22366. VULKAN_HPP_CONSTEXPR DeviceCreateInfo( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ = {},
  22367. uint32_t queueCreateInfoCount_ = {},
  22368. const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos_ = {},
  22369. uint32_t enabledLayerCount_ = {},
  22370. const char * const * ppEnabledLayerNames_ = {},
  22371. uint32_t enabledExtensionCount_ = {},
  22372. const char * const * ppEnabledExtensionNames_ = {},
  22373. const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ = {},
  22374. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  22375. : pNext( pNext_ )
  22376. , flags( flags_ )
  22377. , queueCreateInfoCount( queueCreateInfoCount_ )
  22378. , pQueueCreateInfos( pQueueCreateInfos_ )
  22379. , enabledLayerCount( enabledLayerCount_ )
  22380. , ppEnabledLayerNames( ppEnabledLayerNames_ )
  22381. , enabledExtensionCount( enabledExtensionCount_ )
  22382. , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
  22383. , pEnabledFeatures( pEnabledFeatures_ )
  22384. {
  22385. }
  22386. VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22387. DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : DeviceCreateInfo( *reinterpret_cast<DeviceCreateInfo const *>( &rhs ) ) {}
  22388. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  22389. DeviceCreateInfo( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_,
  22390. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const & queueCreateInfos_,
  22391. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_ = {},
  22392. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ = {},
  22393. const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ = {},
  22394. const void * pNext_ = nullptr )
  22395. : pNext( pNext_ )
  22396. , flags( flags_ )
  22397. , queueCreateInfoCount( static_cast<uint32_t>( queueCreateInfos_.size() ) )
  22398. , pQueueCreateInfos( queueCreateInfos_.data() )
  22399. , enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) )
  22400. , ppEnabledLayerNames( pEnabledLayerNames_.data() )
  22401. , enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) )
  22402. , ppEnabledExtensionNames( pEnabledExtensionNames_.data() )
  22403. , pEnabledFeatures( pEnabledFeatures_ )
  22404. {
  22405. }
  22406. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  22407. DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22408. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22409. DeviceCreateInfo & operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  22410. {
  22411. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceCreateInfo const *>( &rhs );
  22412. return *this;
  22413. }
  22414. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22415. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  22416. {
  22417. pNext = pNext_;
  22418. return *this;
  22419. }
  22420. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  22421. {
  22422. flags = flags_;
  22423. return *this;
  22424. }
  22425. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT
  22426. {
  22427. queueCreateInfoCount = queueCreateInfoCount_;
  22428. return *this;
  22429. }
  22430. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo &
  22431. setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
  22432. {
  22433. pQueueCreateInfos = pQueueCreateInfos_;
  22434. return *this;
  22435. }
  22436. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  22437. DeviceCreateInfo & setQueueCreateInfos(
  22438. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo> const & queueCreateInfos_ ) VULKAN_HPP_NOEXCEPT
  22439. {
  22440. queueCreateInfoCount = static_cast<uint32_t>( queueCreateInfos_.size() );
  22441. pQueueCreateInfos = queueCreateInfos_.data();
  22442. return *this;
  22443. }
  22444. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  22445. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
  22446. {
  22447. enabledLayerCount = enabledLayerCount_;
  22448. return *this;
  22449. }
  22450. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPpEnabledLayerNames( const char * const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
  22451. {
  22452. ppEnabledLayerNames = ppEnabledLayerNames_;
  22453. return *this;
  22454. }
  22455. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  22456. DeviceCreateInfo &
  22457. setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
  22458. {
  22459. enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
  22460. ppEnabledLayerNames = pEnabledLayerNames_.data();
  22461. return *this;
  22462. }
  22463. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  22464. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
  22465. {
  22466. enabledExtensionCount = enabledExtensionCount_;
  22467. return *this;
  22468. }
  22469. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPpEnabledExtensionNames( const char * const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
  22470. {
  22471. ppEnabledExtensionNames = ppEnabledExtensionNames_;
  22472. return *this;
  22473. }
  22474. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  22475. DeviceCreateInfo &
  22476. setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
  22477. {
  22478. enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
  22479. ppEnabledExtensionNames = pEnabledExtensionNames_.data();
  22480. return *this;
  22481. }
  22482. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  22483. VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT
  22484. {
  22485. pEnabledFeatures = pEnabledFeatures_;
  22486. return *this;
  22487. }
  22488. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22489. operator VkDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  22490. {
  22491. return *reinterpret_cast<const VkDeviceCreateInfo *>( this );
  22492. }
  22493. operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
  22494. {
  22495. return *reinterpret_cast<VkDeviceCreateInfo *>( this );
  22496. }
  22497. #if defined( VULKAN_HPP_USE_REFLECT )
  22498. # if 14 <= VULKAN_HPP_CPP_VERSION
  22499. auto
  22500. # else
  22501. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  22502. const void * const &,
  22503. VULKAN_HPP_NAMESPACE::DeviceCreateFlags const &,
  22504. uint32_t const &,
  22505. const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * const &,
  22506. uint32_t const &,
  22507. const char * const * const &,
  22508. uint32_t const &,
  22509. const char * const * const &,
  22510. const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * const &>
  22511. # endif
  22512. reflect() const VULKAN_HPP_NOEXCEPT
  22513. {
  22514. return std::tie( sType,
  22515. pNext,
  22516. flags,
  22517. queueCreateInfoCount,
  22518. pQueueCreateInfos,
  22519. enabledLayerCount,
  22520. ppEnabledLayerNames,
  22521. enabledExtensionCount,
  22522. ppEnabledExtensionNames,
  22523. pEnabledFeatures );
  22524. }
  22525. #endif
  22526. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22527. std::strong_ordering operator<=>( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  22528. {
  22529. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  22530. return cmp;
  22531. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  22532. return cmp;
  22533. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  22534. return cmp;
  22535. if ( auto cmp = queueCreateInfoCount <=> rhs.queueCreateInfoCount; cmp != 0 )
  22536. return cmp;
  22537. if ( auto cmp = pQueueCreateInfos <=> rhs.pQueueCreateInfos; cmp != 0 )
  22538. return cmp;
  22539. if ( auto cmp = enabledLayerCount <=> rhs.enabledLayerCount; cmp != 0 )
  22540. return cmp;
  22541. for ( size_t i = 0; i < enabledLayerCount; ++i )
  22542. {
  22543. if ( ppEnabledLayerNames[i] != rhs.ppEnabledLayerNames[i] )
  22544. if ( auto cmp = strcmp( ppEnabledLayerNames[i], rhs.ppEnabledLayerNames[i] ); cmp != 0 )
  22545. return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
  22546. }
  22547. if ( auto cmp = enabledExtensionCount <=> rhs.enabledExtensionCount; cmp != 0 )
  22548. return cmp;
  22549. for ( size_t i = 0; i < enabledExtensionCount; ++i )
  22550. {
  22551. if ( ppEnabledExtensionNames[i] != rhs.ppEnabledExtensionNames[i] )
  22552. if ( auto cmp = strcmp( ppEnabledExtensionNames[i], rhs.ppEnabledExtensionNames[i] ); cmp != 0 )
  22553. return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
  22554. }
  22555. if ( auto cmp = pEnabledFeatures <=> rhs.pEnabledFeatures; cmp != 0 )
  22556. return cmp;
  22557. return std::strong_ordering::equivalent;
  22558. }
  22559. #endif
  22560. bool operator==( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  22561. {
  22562. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( queueCreateInfoCount == rhs.queueCreateInfoCount ) &&
  22563. ( pQueueCreateInfos == rhs.pQueueCreateInfos ) && ( enabledLayerCount == rhs.enabledLayerCount ) &&
  22564. std::equal( ppEnabledLayerNames,
  22565. ppEnabledLayerNames + enabledLayerCount,
  22566. rhs.ppEnabledLayerNames,
  22567. []( char const * left, char const * right ) { return ( left == right ) || ( strcmp( left, right ) == 0 ); } ) &&
  22568. ( enabledExtensionCount == rhs.enabledExtensionCount ) &&
  22569. std::equal( ppEnabledExtensionNames,
  22570. ppEnabledExtensionNames + enabledExtensionCount,
  22571. rhs.ppEnabledExtensionNames,
  22572. []( char const * left, char const * right ) { return ( left == right ) || ( strcmp( left, right ) == 0 ); } ) &&
  22573. ( pEnabledFeatures == rhs.pEnabledFeatures );
  22574. }
  22575. bool operator!=( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  22576. {
  22577. return !operator==( rhs );
  22578. }
  22579. public:
  22580. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo;
  22581. const void * pNext = {};
  22582. VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {};
  22583. uint32_t queueCreateInfoCount = {};
  22584. const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos = {};
  22585. uint32_t enabledLayerCount = {};
  22586. const char * const * ppEnabledLayerNames = {};
  22587. uint32_t enabledExtensionCount = {};
  22588. const char * const * ppEnabledExtensionNames = {};
  22589. const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures = {};
  22590. };
  22591. template <>
  22592. struct CppType<StructureType, StructureType::eDeviceCreateInfo>
  22593. {
  22594. using Type = DeviceCreateInfo;
  22595. };
  22596. struct DeviceDeviceMemoryReportCreateInfoEXT
  22597. {
  22598. using NativeType = VkDeviceDeviceMemoryReportCreateInfoEXT;
  22599. static const bool allowDuplicate = true;
  22600. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
  22601. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22602. VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {},
  22603. PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ = {},
  22604. void * pUserData_ = {},
  22605. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  22606. : pNext( pNext_ )
  22607. , flags( flags_ )
  22608. , pfnUserCallback( pfnUserCallback_ )
  22609. , pUserData( pUserData_ )
  22610. {
  22611. }
  22612. VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22613. DeviceDeviceMemoryReportCreateInfoEXT( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22614. : DeviceDeviceMemoryReportCreateInfoEXT( *reinterpret_cast<DeviceDeviceMemoryReportCreateInfoEXT const *>( &rhs ) )
  22615. {
  22616. }
  22617. DeviceDeviceMemoryReportCreateInfoEXT & operator=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22618. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22619. DeviceDeviceMemoryReportCreateInfoEXT & operator=( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22620. {
  22621. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT const *>( &rhs );
  22622. return *this;
  22623. }
  22624. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22625. VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  22626. {
  22627. pNext = pNext_;
  22628. return *this;
  22629. }
  22630. VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  22631. {
  22632. flags = flags_;
  22633. return *this;
  22634. }
  22635. VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT &
  22636. setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT
  22637. {
  22638. pfnUserCallback = pfnUserCallback_;
  22639. return *this;
  22640. }
  22641. VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
  22642. {
  22643. pUserData = pUserData_;
  22644. return *this;
  22645. }
  22646. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22647. operator VkDeviceDeviceMemoryReportCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  22648. {
  22649. return *reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT *>( this );
  22650. }
  22651. operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  22652. {
  22653. return *reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT *>( this );
  22654. }
  22655. #if defined( VULKAN_HPP_USE_REFLECT )
  22656. # if 14 <= VULKAN_HPP_CPP_VERSION
  22657. auto
  22658. # else
  22659. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  22660. const void * const &,
  22661. VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT const &,
  22662. PFN_vkDeviceMemoryReportCallbackEXT const &,
  22663. void * const &>
  22664. # endif
  22665. reflect() const VULKAN_HPP_NOEXCEPT
  22666. {
  22667. return std::tie( sType, pNext, flags, pfnUserCallback, pUserData );
  22668. }
  22669. #endif
  22670. bool operator==( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22671. {
  22672. #if defined( VULKAN_HPP_USE_REFLECT )
  22673. return this->reflect() == rhs.reflect();
  22674. #else
  22675. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pfnUserCallback == rhs.pfnUserCallback ) &&
  22676. ( pUserData == rhs.pUserData );
  22677. #endif
  22678. }
  22679. bool operator!=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22680. {
  22681. return !operator==( rhs );
  22682. }
  22683. public:
  22684. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT;
  22685. const void * pNext = {};
  22686. VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
  22687. PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback = {};
  22688. void * pUserData = {};
  22689. };
  22690. template <>
  22691. struct CppType<StructureType, StructureType::eDeviceDeviceMemoryReportCreateInfoEXT>
  22692. {
  22693. using Type = DeviceDeviceMemoryReportCreateInfoEXT;
  22694. };
  22695. struct DeviceDiagnosticsConfigCreateInfoNV
  22696. {
  22697. using NativeType = VkDeviceDiagnosticsConfigCreateInfoNV;
  22698. static const bool allowDuplicate = false;
  22699. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
  22700. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22701. VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {},
  22702. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  22703. : pNext( pNext_ )
  22704. , flags( flags_ )
  22705. {
  22706. }
  22707. VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22708. DeviceDiagnosticsConfigCreateInfoNV( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  22709. : DeviceDiagnosticsConfigCreateInfoNV( *reinterpret_cast<DeviceDiagnosticsConfigCreateInfoNV const *>( &rhs ) )
  22710. {
  22711. }
  22712. DeviceDiagnosticsConfigCreateInfoNV & operator=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22713. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22714. DeviceDiagnosticsConfigCreateInfoNV & operator=( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  22715. {
  22716. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV const *>( &rhs );
  22717. return *this;
  22718. }
  22719. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22720. VULKAN_HPP_CONSTEXPR_14 DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  22721. {
  22722. pNext = pNext_;
  22723. return *this;
  22724. }
  22725. VULKAN_HPP_CONSTEXPR_14 DeviceDiagnosticsConfigCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  22726. {
  22727. flags = flags_;
  22728. return *this;
  22729. }
  22730. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22731. operator VkDeviceDiagnosticsConfigCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  22732. {
  22733. return *reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV *>( this );
  22734. }
  22735. operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  22736. {
  22737. return *reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV *>( this );
  22738. }
  22739. #if defined( VULKAN_HPP_USE_REFLECT )
  22740. # if 14 <= VULKAN_HPP_CPP_VERSION
  22741. auto
  22742. # else
  22743. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV const &>
  22744. # endif
  22745. reflect() const VULKAN_HPP_NOEXCEPT
  22746. {
  22747. return std::tie( sType, pNext, flags );
  22748. }
  22749. #endif
  22750. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22751. auto operator<=>( DeviceDiagnosticsConfigCreateInfoNV const & ) const = default;
  22752. #else
  22753. bool operator==( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  22754. {
  22755. # if defined( VULKAN_HPP_USE_REFLECT )
  22756. return this->reflect() == rhs.reflect();
  22757. # else
  22758. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  22759. # endif
  22760. }
  22761. bool operator!=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  22762. {
  22763. return !operator==( rhs );
  22764. }
  22765. #endif
  22766. public:
  22767. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV;
  22768. const void * pNext = {};
  22769. VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags = {};
  22770. };
  22771. template <>
  22772. struct CppType<StructureType, StructureType::eDeviceDiagnosticsConfigCreateInfoNV>
  22773. {
  22774. using Type = DeviceDiagnosticsConfigCreateInfoNV;
  22775. };
  22776. struct DeviceEventInfoEXT
  22777. {
  22778. using NativeType = VkDeviceEventInfoEXT;
  22779. static const bool allowDuplicate = false;
  22780. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceEventInfoEXT;
  22781. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22782. VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug,
  22783. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  22784. : pNext( pNext_ )
  22785. , deviceEvent( deviceEvent_ )
  22786. {
  22787. }
  22788. VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22789. DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DeviceEventInfoEXT( *reinterpret_cast<DeviceEventInfoEXT const *>( &rhs ) ) {}
  22790. DeviceEventInfoEXT & operator=( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22791. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22792. DeviceEventInfoEXT & operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22793. {
  22794. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const *>( &rhs );
  22795. return *this;
  22796. }
  22797. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22798. VULKAN_HPP_CONSTEXPR_14 DeviceEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  22799. {
  22800. pNext = pNext_;
  22801. return *this;
  22802. }
  22803. VULKAN_HPP_CONSTEXPR_14 DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT
  22804. {
  22805. deviceEvent = deviceEvent_;
  22806. return *this;
  22807. }
  22808. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22809. operator VkDeviceEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  22810. {
  22811. return *reinterpret_cast<const VkDeviceEventInfoEXT *>( this );
  22812. }
  22813. operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT
  22814. {
  22815. return *reinterpret_cast<VkDeviceEventInfoEXT *>( this );
  22816. }
  22817. #if defined( VULKAN_HPP_USE_REFLECT )
  22818. # if 14 <= VULKAN_HPP_CPP_VERSION
  22819. auto
  22820. # else
  22821. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT const &>
  22822. # endif
  22823. reflect() const VULKAN_HPP_NOEXCEPT
  22824. {
  22825. return std::tie( sType, pNext, deviceEvent );
  22826. }
  22827. #endif
  22828. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22829. auto operator<=>( DeviceEventInfoEXT const & ) const = default;
  22830. #else
  22831. bool operator==( DeviceEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22832. {
  22833. # if defined( VULKAN_HPP_USE_REFLECT )
  22834. return this->reflect() == rhs.reflect();
  22835. # else
  22836. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceEvent == rhs.deviceEvent );
  22837. # endif
  22838. }
  22839. bool operator!=( DeviceEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22840. {
  22841. return !operator==( rhs );
  22842. }
  22843. #endif
  22844. public:
  22845. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT;
  22846. const void * pNext = {};
  22847. VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug;
  22848. };
  22849. template <>
  22850. struct CppType<StructureType, StructureType::eDeviceEventInfoEXT>
  22851. {
  22852. using Type = DeviceEventInfoEXT;
  22853. };
  22854. struct DeviceFaultAddressInfoEXT
  22855. {
  22856. using NativeType = VkDeviceFaultAddressInfoEXT;
  22857. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22858. VULKAN_HPP_CONSTEXPR
  22859. DeviceFaultAddressInfoEXT( VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT addressType_ = VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT::eNone,
  22860. VULKAN_HPP_NAMESPACE::DeviceAddress reportedAddress_ = {},
  22861. VULKAN_HPP_NAMESPACE::DeviceSize addressPrecision_ = {} ) VULKAN_HPP_NOEXCEPT
  22862. : addressType( addressType_ )
  22863. , reportedAddress( reportedAddress_ )
  22864. , addressPrecision( addressPrecision_ )
  22865. {
  22866. }
  22867. VULKAN_HPP_CONSTEXPR DeviceFaultAddressInfoEXT( DeviceFaultAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22868. DeviceFaultAddressInfoEXT( VkDeviceFaultAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22869. : DeviceFaultAddressInfoEXT( *reinterpret_cast<DeviceFaultAddressInfoEXT const *>( &rhs ) )
  22870. {
  22871. }
  22872. DeviceFaultAddressInfoEXT & operator=( DeviceFaultAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22873. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22874. DeviceFaultAddressInfoEXT & operator=( VkDeviceFaultAddressInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22875. {
  22876. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT const *>( &rhs );
  22877. return *this;
  22878. }
  22879. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22880. VULKAN_HPP_CONSTEXPR_14 DeviceFaultAddressInfoEXT & setAddressType( VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT addressType_ ) VULKAN_HPP_NOEXCEPT
  22881. {
  22882. addressType = addressType_;
  22883. return *this;
  22884. }
  22885. VULKAN_HPP_CONSTEXPR_14 DeviceFaultAddressInfoEXT & setReportedAddress( VULKAN_HPP_NAMESPACE::DeviceAddress reportedAddress_ ) VULKAN_HPP_NOEXCEPT
  22886. {
  22887. reportedAddress = reportedAddress_;
  22888. return *this;
  22889. }
  22890. VULKAN_HPP_CONSTEXPR_14 DeviceFaultAddressInfoEXT & setAddressPrecision( VULKAN_HPP_NAMESPACE::DeviceSize addressPrecision_ ) VULKAN_HPP_NOEXCEPT
  22891. {
  22892. addressPrecision = addressPrecision_;
  22893. return *this;
  22894. }
  22895. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22896. operator VkDeviceFaultAddressInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  22897. {
  22898. return *reinterpret_cast<const VkDeviceFaultAddressInfoEXT *>( this );
  22899. }
  22900. operator VkDeviceFaultAddressInfoEXT &() VULKAN_HPP_NOEXCEPT
  22901. {
  22902. return *reinterpret_cast<VkDeviceFaultAddressInfoEXT *>( this );
  22903. }
  22904. #if defined( VULKAN_HPP_USE_REFLECT )
  22905. # if 14 <= VULKAN_HPP_CPP_VERSION
  22906. auto
  22907. # else
  22908. std::tuple<VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  22909. # endif
  22910. reflect() const VULKAN_HPP_NOEXCEPT
  22911. {
  22912. return std::tie( addressType, reportedAddress, addressPrecision );
  22913. }
  22914. #endif
  22915. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  22916. auto operator<=>( DeviceFaultAddressInfoEXT const & ) const = default;
  22917. #else
  22918. bool operator==( DeviceFaultAddressInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22919. {
  22920. # if defined( VULKAN_HPP_USE_REFLECT )
  22921. return this->reflect() == rhs.reflect();
  22922. # else
  22923. return ( addressType == rhs.addressType ) && ( reportedAddress == rhs.reportedAddress ) && ( addressPrecision == rhs.addressPrecision );
  22924. # endif
  22925. }
  22926. bool operator!=( DeviceFaultAddressInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  22927. {
  22928. return !operator==( rhs );
  22929. }
  22930. #endif
  22931. public:
  22932. VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT addressType = VULKAN_HPP_NAMESPACE::DeviceFaultAddressTypeEXT::eNone;
  22933. VULKAN_HPP_NAMESPACE::DeviceAddress reportedAddress = {};
  22934. VULKAN_HPP_NAMESPACE::DeviceSize addressPrecision = {};
  22935. };
  22936. struct DeviceFaultCountsEXT
  22937. {
  22938. using NativeType = VkDeviceFaultCountsEXT;
  22939. static const bool allowDuplicate = false;
  22940. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceFaultCountsEXT;
  22941. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  22942. VULKAN_HPP_CONSTEXPR DeviceFaultCountsEXT( uint32_t addressInfoCount_ = {},
  22943. uint32_t vendorInfoCount_ = {},
  22944. VULKAN_HPP_NAMESPACE::DeviceSize vendorBinarySize_ = {},
  22945. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  22946. : pNext( pNext_ )
  22947. , addressInfoCount( addressInfoCount_ )
  22948. , vendorInfoCount( vendorInfoCount_ )
  22949. , vendorBinarySize( vendorBinarySize_ )
  22950. {
  22951. }
  22952. VULKAN_HPP_CONSTEXPR DeviceFaultCountsEXT( DeviceFaultCountsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22953. DeviceFaultCountsEXT( VkDeviceFaultCountsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22954. : DeviceFaultCountsEXT( *reinterpret_cast<DeviceFaultCountsEXT const *>( &rhs ) )
  22955. {
  22956. }
  22957. DeviceFaultCountsEXT & operator=( DeviceFaultCountsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  22958. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  22959. DeviceFaultCountsEXT & operator=( VkDeviceFaultCountsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  22960. {
  22961. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT const *>( &rhs );
  22962. return *this;
  22963. }
  22964. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  22965. VULKAN_HPP_CONSTEXPR_14 DeviceFaultCountsEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  22966. {
  22967. pNext = pNext_;
  22968. return *this;
  22969. }
  22970. VULKAN_HPP_CONSTEXPR_14 DeviceFaultCountsEXT & setAddressInfoCount( uint32_t addressInfoCount_ ) VULKAN_HPP_NOEXCEPT
  22971. {
  22972. addressInfoCount = addressInfoCount_;
  22973. return *this;
  22974. }
  22975. VULKAN_HPP_CONSTEXPR_14 DeviceFaultCountsEXT & setVendorInfoCount( uint32_t vendorInfoCount_ ) VULKAN_HPP_NOEXCEPT
  22976. {
  22977. vendorInfoCount = vendorInfoCount_;
  22978. return *this;
  22979. }
  22980. VULKAN_HPP_CONSTEXPR_14 DeviceFaultCountsEXT & setVendorBinarySize( VULKAN_HPP_NAMESPACE::DeviceSize vendorBinarySize_ ) VULKAN_HPP_NOEXCEPT
  22981. {
  22982. vendorBinarySize = vendorBinarySize_;
  22983. return *this;
  22984. }
  22985. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  22986. operator VkDeviceFaultCountsEXT const &() const VULKAN_HPP_NOEXCEPT
  22987. {
  22988. return *reinterpret_cast<const VkDeviceFaultCountsEXT *>( this );
  22989. }
  22990. operator VkDeviceFaultCountsEXT &() VULKAN_HPP_NOEXCEPT
  22991. {
  22992. return *reinterpret_cast<VkDeviceFaultCountsEXT *>( this );
  22993. }
  22994. #if defined( VULKAN_HPP_USE_REFLECT )
  22995. # if 14 <= VULKAN_HPP_CPP_VERSION
  22996. auto
  22997. # else
  22998. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  22999. # endif
  23000. reflect() const VULKAN_HPP_NOEXCEPT
  23001. {
  23002. return std::tie( sType, pNext, addressInfoCount, vendorInfoCount, vendorBinarySize );
  23003. }
  23004. #endif
  23005. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23006. auto operator<=>( DeviceFaultCountsEXT const & ) const = default;
  23007. #else
  23008. bool operator==( DeviceFaultCountsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23009. {
  23010. # if defined( VULKAN_HPP_USE_REFLECT )
  23011. return this->reflect() == rhs.reflect();
  23012. # else
  23013. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( addressInfoCount == rhs.addressInfoCount ) && ( vendorInfoCount == rhs.vendorInfoCount ) &&
  23014. ( vendorBinarySize == rhs.vendorBinarySize );
  23015. # endif
  23016. }
  23017. bool operator!=( DeviceFaultCountsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23018. {
  23019. return !operator==( rhs );
  23020. }
  23021. #endif
  23022. public:
  23023. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceFaultCountsEXT;
  23024. void * pNext = {};
  23025. uint32_t addressInfoCount = {};
  23026. uint32_t vendorInfoCount = {};
  23027. VULKAN_HPP_NAMESPACE::DeviceSize vendorBinarySize = {};
  23028. };
  23029. template <>
  23030. struct CppType<StructureType, StructureType::eDeviceFaultCountsEXT>
  23031. {
  23032. using Type = DeviceFaultCountsEXT;
  23033. };
  23034. struct DeviceFaultVendorInfoEXT
  23035. {
  23036. using NativeType = VkDeviceFaultVendorInfoEXT;
  23037. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23038. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorInfoEXT( std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  23039. uint64_t vendorFaultCode_ = {},
  23040. uint64_t vendorFaultData_ = {} ) VULKAN_HPP_NOEXCEPT
  23041. : description( description_ )
  23042. , vendorFaultCode( vendorFaultCode_ )
  23043. , vendorFaultData( vendorFaultData_ )
  23044. {
  23045. }
  23046. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorInfoEXT( DeviceFaultVendorInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23047. DeviceFaultVendorInfoEXT( VkDeviceFaultVendorInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23048. : DeviceFaultVendorInfoEXT( *reinterpret_cast<DeviceFaultVendorInfoEXT const *>( &rhs ) )
  23049. {
  23050. }
  23051. DeviceFaultVendorInfoEXT & operator=( DeviceFaultVendorInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23052. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23053. DeviceFaultVendorInfoEXT & operator=( VkDeviceFaultVendorInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23054. {
  23055. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT const *>( &rhs );
  23056. return *this;
  23057. }
  23058. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23059. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorInfoEXT & setDescription( std::array<char, VK_MAX_DESCRIPTION_SIZE> description_ ) VULKAN_HPP_NOEXCEPT
  23060. {
  23061. description = description_;
  23062. return *this;
  23063. }
  23064. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorInfoEXT & setVendorFaultCode( uint64_t vendorFaultCode_ ) VULKAN_HPP_NOEXCEPT
  23065. {
  23066. vendorFaultCode = vendorFaultCode_;
  23067. return *this;
  23068. }
  23069. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorInfoEXT & setVendorFaultData( uint64_t vendorFaultData_ ) VULKAN_HPP_NOEXCEPT
  23070. {
  23071. vendorFaultData = vendorFaultData_;
  23072. return *this;
  23073. }
  23074. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23075. operator VkDeviceFaultVendorInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  23076. {
  23077. return *reinterpret_cast<const VkDeviceFaultVendorInfoEXT *>( this );
  23078. }
  23079. operator VkDeviceFaultVendorInfoEXT &() VULKAN_HPP_NOEXCEPT
  23080. {
  23081. return *reinterpret_cast<VkDeviceFaultVendorInfoEXT *>( this );
  23082. }
  23083. #if defined( VULKAN_HPP_USE_REFLECT )
  23084. # if 14 <= VULKAN_HPP_CPP_VERSION
  23085. auto
  23086. # else
  23087. std::tuple<VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, uint64_t const &, uint64_t const &>
  23088. # endif
  23089. reflect() const VULKAN_HPP_NOEXCEPT
  23090. {
  23091. return std::tie( description, vendorFaultCode, vendorFaultData );
  23092. }
  23093. #endif
  23094. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23095. auto operator<=>( DeviceFaultVendorInfoEXT const & ) const = default;
  23096. #else
  23097. bool operator==( DeviceFaultVendorInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23098. {
  23099. # if defined( VULKAN_HPP_USE_REFLECT )
  23100. return this->reflect() == rhs.reflect();
  23101. # else
  23102. return ( description == rhs.description ) && ( vendorFaultCode == rhs.vendorFaultCode ) && ( vendorFaultData == rhs.vendorFaultData );
  23103. # endif
  23104. }
  23105. bool operator!=( DeviceFaultVendorInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23106. {
  23107. return !operator==( rhs );
  23108. }
  23109. #endif
  23110. public:
  23111. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  23112. uint64_t vendorFaultCode = {};
  23113. uint64_t vendorFaultData = {};
  23114. };
  23115. struct DeviceFaultInfoEXT
  23116. {
  23117. using NativeType = VkDeviceFaultInfoEXT;
  23118. static const bool allowDuplicate = false;
  23119. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceFaultInfoEXT;
  23120. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23121. VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT( std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  23122. VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT * pAddressInfos_ = {},
  23123. VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT * pVendorInfos_ = {},
  23124. void * pVendorBinaryData_ = {},
  23125. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23126. : pNext( pNext_ )
  23127. , description( description_ )
  23128. , pAddressInfos( pAddressInfos_ )
  23129. , pVendorInfos( pVendorInfos_ )
  23130. , pVendorBinaryData( pVendorBinaryData_ )
  23131. {
  23132. }
  23133. VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT( DeviceFaultInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23134. DeviceFaultInfoEXT( VkDeviceFaultInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DeviceFaultInfoEXT( *reinterpret_cast<DeviceFaultInfoEXT const *>( &rhs ) ) {}
  23135. DeviceFaultInfoEXT & operator=( DeviceFaultInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23136. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23137. DeviceFaultInfoEXT & operator=( VkDeviceFaultInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23138. {
  23139. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT const *>( &rhs );
  23140. return *this;
  23141. }
  23142. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23143. VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23144. {
  23145. pNext = pNext_;
  23146. return *this;
  23147. }
  23148. VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT & setDescription( std::array<char, VK_MAX_DESCRIPTION_SIZE> description_ ) VULKAN_HPP_NOEXCEPT
  23149. {
  23150. description = description_;
  23151. return *this;
  23152. }
  23153. VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT & setPAddressInfos( VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT * pAddressInfos_ ) VULKAN_HPP_NOEXCEPT
  23154. {
  23155. pAddressInfos = pAddressInfos_;
  23156. return *this;
  23157. }
  23158. VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT & setPVendorInfos( VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT * pVendorInfos_ ) VULKAN_HPP_NOEXCEPT
  23159. {
  23160. pVendorInfos = pVendorInfos_;
  23161. return *this;
  23162. }
  23163. VULKAN_HPP_CONSTEXPR_14 DeviceFaultInfoEXT & setPVendorBinaryData( void * pVendorBinaryData_ ) VULKAN_HPP_NOEXCEPT
  23164. {
  23165. pVendorBinaryData = pVendorBinaryData_;
  23166. return *this;
  23167. }
  23168. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23169. operator VkDeviceFaultInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  23170. {
  23171. return *reinterpret_cast<const VkDeviceFaultInfoEXT *>( this );
  23172. }
  23173. operator VkDeviceFaultInfoEXT &() VULKAN_HPP_NOEXCEPT
  23174. {
  23175. return *reinterpret_cast<VkDeviceFaultInfoEXT *>( this );
  23176. }
  23177. #if defined( VULKAN_HPP_USE_REFLECT )
  23178. # if 14 <= VULKAN_HPP_CPP_VERSION
  23179. auto
  23180. # else
  23181. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  23182. void * const &,
  23183. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  23184. VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT * const &,
  23185. VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT * const &,
  23186. void * const &>
  23187. # endif
  23188. reflect() const VULKAN_HPP_NOEXCEPT
  23189. {
  23190. return std::tie( sType, pNext, description, pAddressInfos, pVendorInfos, pVendorBinaryData );
  23191. }
  23192. #endif
  23193. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23194. auto operator<=>( DeviceFaultInfoEXT const & ) const = default;
  23195. #else
  23196. bool operator==( DeviceFaultInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23197. {
  23198. # if defined( VULKAN_HPP_USE_REFLECT )
  23199. return this->reflect() == rhs.reflect();
  23200. # else
  23201. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( description == rhs.description ) && ( pAddressInfos == rhs.pAddressInfos ) &&
  23202. ( pVendorInfos == rhs.pVendorInfos ) && ( pVendorBinaryData == rhs.pVendorBinaryData );
  23203. # endif
  23204. }
  23205. bool operator!=( DeviceFaultInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23206. {
  23207. return !operator==( rhs );
  23208. }
  23209. #endif
  23210. public:
  23211. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceFaultInfoEXT;
  23212. void * pNext = {};
  23213. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  23214. VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT * pAddressInfos = {};
  23215. VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT * pVendorInfos = {};
  23216. void * pVendorBinaryData = {};
  23217. };
  23218. template <>
  23219. struct CppType<StructureType, StructureType::eDeviceFaultInfoEXT>
  23220. {
  23221. using Type = DeviceFaultInfoEXT;
  23222. };
  23223. struct DeviceFaultVendorBinaryHeaderVersionOneEXT
  23224. {
  23225. using NativeType = VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
  23226. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23227. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT(
  23228. uint32_t headerSize_ = {},
  23229. VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT headerVersion_ = VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT::eOne,
  23230. uint32_t vendorID_ = {},
  23231. uint32_t deviceID_ = {},
  23232. uint32_t driverVersion_ = {},
  23233. std::array<uint8_t, VK_UUID_SIZE> const & pipelineCacheUUID_ = {},
  23234. uint32_t applicationNameOffset_ = {},
  23235. uint32_t applicationVersion_ = {},
  23236. uint32_t engineNameOffset_ = {},
  23237. uint32_t engineVersion_ = {},
  23238. uint32_t apiVersion_ = {} ) VULKAN_HPP_NOEXCEPT
  23239. : headerSize( headerSize_ )
  23240. , headerVersion( headerVersion_ )
  23241. , vendorID( vendorID_ )
  23242. , deviceID( deviceID_ )
  23243. , driverVersion( driverVersion_ )
  23244. , pipelineCacheUUID( pipelineCacheUUID_ )
  23245. , applicationNameOffset( applicationNameOffset_ )
  23246. , applicationVersion( applicationVersion_ )
  23247. , engineNameOffset( engineNameOffset_ )
  23248. , engineVersion( engineVersion_ )
  23249. , apiVersion( apiVersion_ )
  23250. {
  23251. }
  23252. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT( DeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23253. DeviceFaultVendorBinaryHeaderVersionOneEXT( VkDeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23254. : DeviceFaultVendorBinaryHeaderVersionOneEXT( *reinterpret_cast<DeviceFaultVendorBinaryHeaderVersionOneEXT const *>( &rhs ) )
  23255. {
  23256. }
  23257. DeviceFaultVendorBinaryHeaderVersionOneEXT & operator=( DeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23258. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23259. DeviceFaultVendorBinaryHeaderVersionOneEXT & operator=( VkDeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  23260. {
  23261. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT const *>( &rhs );
  23262. return *this;
  23263. }
  23264. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23265. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setHeaderSize( uint32_t headerSize_ ) VULKAN_HPP_NOEXCEPT
  23266. {
  23267. headerSize = headerSize_;
  23268. return *this;
  23269. }
  23270. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT &
  23271. setHeaderVersion( VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT headerVersion_ ) VULKAN_HPP_NOEXCEPT
  23272. {
  23273. headerVersion = headerVersion_;
  23274. return *this;
  23275. }
  23276. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setVendorID( uint32_t vendorID_ ) VULKAN_HPP_NOEXCEPT
  23277. {
  23278. vendorID = vendorID_;
  23279. return *this;
  23280. }
  23281. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setDeviceID( uint32_t deviceID_ ) VULKAN_HPP_NOEXCEPT
  23282. {
  23283. deviceID = deviceID_;
  23284. return *this;
  23285. }
  23286. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setDriverVersion( uint32_t driverVersion_ ) VULKAN_HPP_NOEXCEPT
  23287. {
  23288. driverVersion = driverVersion_;
  23289. return *this;
  23290. }
  23291. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT &
  23292. setPipelineCacheUUID( std::array<uint8_t, VK_UUID_SIZE> pipelineCacheUUID_ ) VULKAN_HPP_NOEXCEPT
  23293. {
  23294. pipelineCacheUUID = pipelineCacheUUID_;
  23295. return *this;
  23296. }
  23297. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setApplicationNameOffset( uint32_t applicationNameOffset_ ) VULKAN_HPP_NOEXCEPT
  23298. {
  23299. applicationNameOffset = applicationNameOffset_;
  23300. return *this;
  23301. }
  23302. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT
  23303. {
  23304. applicationVersion = applicationVersion_;
  23305. return *this;
  23306. }
  23307. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setEngineNameOffset( uint32_t engineNameOffset_ ) VULKAN_HPP_NOEXCEPT
  23308. {
  23309. engineNameOffset = engineNameOffset_;
  23310. return *this;
  23311. }
  23312. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT
  23313. {
  23314. engineVersion = engineVersion_;
  23315. return *this;
  23316. }
  23317. VULKAN_HPP_CONSTEXPR_14 DeviceFaultVendorBinaryHeaderVersionOneEXT & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT
  23318. {
  23319. apiVersion = apiVersion_;
  23320. return *this;
  23321. }
  23322. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23323. operator VkDeviceFaultVendorBinaryHeaderVersionOneEXT const &() const VULKAN_HPP_NOEXCEPT
  23324. {
  23325. return *reinterpret_cast<const VkDeviceFaultVendorBinaryHeaderVersionOneEXT *>( this );
  23326. }
  23327. operator VkDeviceFaultVendorBinaryHeaderVersionOneEXT &() VULKAN_HPP_NOEXCEPT
  23328. {
  23329. return *reinterpret_cast<VkDeviceFaultVendorBinaryHeaderVersionOneEXT *>( this );
  23330. }
  23331. #if defined( VULKAN_HPP_USE_REFLECT )
  23332. # if 14 <= VULKAN_HPP_CPP_VERSION
  23333. auto
  23334. # else
  23335. std::tuple<uint32_t const &,
  23336. VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT const &,
  23337. uint32_t const &,
  23338. uint32_t const &,
  23339. uint32_t const &,
  23340. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  23341. uint32_t const &,
  23342. uint32_t const &,
  23343. uint32_t const &,
  23344. uint32_t const &,
  23345. uint32_t const &>
  23346. # endif
  23347. reflect() const VULKAN_HPP_NOEXCEPT
  23348. {
  23349. return std::tie( headerSize,
  23350. headerVersion,
  23351. vendorID,
  23352. deviceID,
  23353. driverVersion,
  23354. pipelineCacheUUID,
  23355. applicationNameOffset,
  23356. applicationVersion,
  23357. engineNameOffset,
  23358. engineVersion,
  23359. apiVersion );
  23360. }
  23361. #endif
  23362. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23363. auto operator<=>( DeviceFaultVendorBinaryHeaderVersionOneEXT const & ) const = default;
  23364. #else
  23365. bool operator==( DeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23366. {
  23367. # if defined( VULKAN_HPP_USE_REFLECT )
  23368. return this->reflect() == rhs.reflect();
  23369. # else
  23370. return ( headerSize == rhs.headerSize ) && ( headerVersion == rhs.headerVersion ) && ( vendorID == rhs.vendorID ) && ( deviceID == rhs.deviceID ) &&
  23371. ( driverVersion == rhs.driverVersion ) && ( pipelineCacheUUID == rhs.pipelineCacheUUID ) &&
  23372. ( applicationNameOffset == rhs.applicationNameOffset ) && ( applicationVersion == rhs.applicationVersion ) &&
  23373. ( engineNameOffset == rhs.engineNameOffset ) && ( engineVersion == rhs.engineVersion ) && ( apiVersion == rhs.apiVersion );
  23374. # endif
  23375. }
  23376. bool operator!=( DeviceFaultVendorBinaryHeaderVersionOneEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  23377. {
  23378. return !operator==( rhs );
  23379. }
  23380. #endif
  23381. public:
  23382. uint32_t headerSize = {};
  23383. VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT headerVersion = VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionEXT::eOne;
  23384. uint32_t vendorID = {};
  23385. uint32_t deviceID = {};
  23386. uint32_t driverVersion = {};
  23387. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
  23388. uint32_t applicationNameOffset = {};
  23389. uint32_t applicationVersion = {};
  23390. uint32_t engineNameOffset = {};
  23391. uint32_t engineVersion = {};
  23392. uint32_t apiVersion = {};
  23393. };
  23394. struct DeviceGroupBindSparseInfo
  23395. {
  23396. using NativeType = VkDeviceGroupBindSparseInfo;
  23397. static const bool allowDuplicate = false;
  23398. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupBindSparseInfo;
  23399. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23400. VULKAN_HPP_CONSTEXPR
  23401. DeviceGroupBindSparseInfo( uint32_t resourceDeviceIndex_ = {}, uint32_t memoryDeviceIndex_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23402. : pNext( pNext_ )
  23403. , resourceDeviceIndex( resourceDeviceIndex_ )
  23404. , memoryDeviceIndex( memoryDeviceIndex_ )
  23405. {
  23406. }
  23407. VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23408. DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23409. : DeviceGroupBindSparseInfo( *reinterpret_cast<DeviceGroupBindSparseInfo const *>( &rhs ) )
  23410. {
  23411. }
  23412. DeviceGroupBindSparseInfo & operator=( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23413. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23414. DeviceGroupBindSparseInfo & operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23415. {
  23416. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo const *>( &rhs );
  23417. return *this;
  23418. }
  23419. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23420. VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23421. {
  23422. pNext = pNext_;
  23423. return *this;
  23424. }
  23425. VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
  23426. {
  23427. resourceDeviceIndex = resourceDeviceIndex_;
  23428. return *this;
  23429. }
  23430. VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT
  23431. {
  23432. memoryDeviceIndex = memoryDeviceIndex_;
  23433. return *this;
  23434. }
  23435. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23436. operator VkDeviceGroupBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT
  23437. {
  23438. return *reinterpret_cast<const VkDeviceGroupBindSparseInfo *>( this );
  23439. }
  23440. operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT
  23441. {
  23442. return *reinterpret_cast<VkDeviceGroupBindSparseInfo *>( this );
  23443. }
  23444. #if defined( VULKAN_HPP_USE_REFLECT )
  23445. # if 14 <= VULKAN_HPP_CPP_VERSION
  23446. auto
  23447. # else
  23448. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &>
  23449. # endif
  23450. reflect() const VULKAN_HPP_NOEXCEPT
  23451. {
  23452. return std::tie( sType, pNext, resourceDeviceIndex, memoryDeviceIndex );
  23453. }
  23454. #endif
  23455. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23456. auto operator<=>( DeviceGroupBindSparseInfo const & ) const = default;
  23457. #else
  23458. bool operator==( DeviceGroupBindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23459. {
  23460. # if defined( VULKAN_HPP_USE_REFLECT )
  23461. return this->reflect() == rhs.reflect();
  23462. # else
  23463. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( resourceDeviceIndex == rhs.resourceDeviceIndex ) &&
  23464. ( memoryDeviceIndex == rhs.memoryDeviceIndex );
  23465. # endif
  23466. }
  23467. bool operator!=( DeviceGroupBindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23468. {
  23469. return !operator==( rhs );
  23470. }
  23471. #endif
  23472. public:
  23473. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo;
  23474. const void * pNext = {};
  23475. uint32_t resourceDeviceIndex = {};
  23476. uint32_t memoryDeviceIndex = {};
  23477. };
  23478. template <>
  23479. struct CppType<StructureType, StructureType::eDeviceGroupBindSparseInfo>
  23480. {
  23481. using Type = DeviceGroupBindSparseInfo;
  23482. };
  23483. using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
  23484. struct DeviceGroupCommandBufferBeginInfo
  23485. {
  23486. using NativeType = VkDeviceGroupCommandBufferBeginInfo;
  23487. static const bool allowDuplicate = false;
  23488. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupCommandBufferBeginInfo;
  23489. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23490. VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( uint32_t deviceMask_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23491. : pNext( pNext_ )
  23492. , deviceMask( deviceMask_ )
  23493. {
  23494. }
  23495. VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23496. DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23497. : DeviceGroupCommandBufferBeginInfo( *reinterpret_cast<DeviceGroupCommandBufferBeginInfo const *>( &rhs ) )
  23498. {
  23499. }
  23500. DeviceGroupCommandBufferBeginInfo & operator=( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23501. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23502. DeviceGroupCommandBufferBeginInfo & operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23503. {
  23504. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo const *>( &rhs );
  23505. return *this;
  23506. }
  23507. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23508. VULKAN_HPP_CONSTEXPR_14 DeviceGroupCommandBufferBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23509. {
  23510. pNext = pNext_;
  23511. return *this;
  23512. }
  23513. VULKAN_HPP_CONSTEXPR_14 DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
  23514. {
  23515. deviceMask = deviceMask_;
  23516. return *this;
  23517. }
  23518. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23519. operator VkDeviceGroupCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  23520. {
  23521. return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo *>( this );
  23522. }
  23523. operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT
  23524. {
  23525. return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo *>( this );
  23526. }
  23527. #if defined( VULKAN_HPP_USE_REFLECT )
  23528. # if 14 <= VULKAN_HPP_CPP_VERSION
  23529. auto
  23530. # else
  23531. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  23532. # endif
  23533. reflect() const VULKAN_HPP_NOEXCEPT
  23534. {
  23535. return std::tie( sType, pNext, deviceMask );
  23536. }
  23537. #endif
  23538. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23539. auto operator<=>( DeviceGroupCommandBufferBeginInfo const & ) const = default;
  23540. #else
  23541. bool operator==( DeviceGroupCommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23542. {
  23543. # if defined( VULKAN_HPP_USE_REFLECT )
  23544. return this->reflect() == rhs.reflect();
  23545. # else
  23546. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceMask == rhs.deviceMask );
  23547. # endif
  23548. }
  23549. bool operator!=( DeviceGroupCommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23550. {
  23551. return !operator==( rhs );
  23552. }
  23553. #endif
  23554. public:
  23555. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo;
  23556. const void * pNext = {};
  23557. uint32_t deviceMask = {};
  23558. };
  23559. template <>
  23560. struct CppType<StructureType, StructureType::eDeviceGroupCommandBufferBeginInfo>
  23561. {
  23562. using Type = DeviceGroupCommandBufferBeginInfo;
  23563. };
  23564. using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
  23565. struct DeviceGroupDeviceCreateInfo
  23566. {
  23567. using NativeType = VkDeviceGroupDeviceCreateInfo;
  23568. static const bool allowDuplicate = false;
  23569. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupDeviceCreateInfo;
  23570. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23571. VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( uint32_t physicalDeviceCount_ = {},
  23572. const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices_ = {},
  23573. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23574. : pNext( pNext_ )
  23575. , physicalDeviceCount( physicalDeviceCount_ )
  23576. , pPhysicalDevices( pPhysicalDevices_ )
  23577. {
  23578. }
  23579. VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23580. DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23581. : DeviceGroupDeviceCreateInfo( *reinterpret_cast<DeviceGroupDeviceCreateInfo const *>( &rhs ) )
  23582. {
  23583. }
  23584. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  23585. DeviceGroupDeviceCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_,
  23586. const void * pNext_ = nullptr )
  23587. : pNext( pNext_ ), physicalDeviceCount( static_cast<uint32_t>( physicalDevices_.size() ) ), pPhysicalDevices( physicalDevices_.data() )
  23588. {
  23589. }
  23590. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  23591. DeviceGroupDeviceCreateInfo & operator=( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23592. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23593. DeviceGroupDeviceCreateInfo & operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23594. {
  23595. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo const *>( &rhs );
  23596. return *this;
  23597. }
  23598. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23599. VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23600. {
  23601. pNext = pNext_;
  23602. return *this;
  23603. }
  23604. VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT
  23605. {
  23606. physicalDeviceCount = physicalDeviceCount_;
  23607. return *this;
  23608. }
  23609. VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo &
  23610. setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT
  23611. {
  23612. pPhysicalDevices = pPhysicalDevices_;
  23613. return *this;
  23614. }
  23615. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  23616. DeviceGroupDeviceCreateInfo & setPhysicalDevices(
  23617. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PhysicalDevice> const & physicalDevices_ ) VULKAN_HPP_NOEXCEPT
  23618. {
  23619. physicalDeviceCount = static_cast<uint32_t>( physicalDevices_.size() );
  23620. pPhysicalDevices = physicalDevices_.data();
  23621. return *this;
  23622. }
  23623. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  23624. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23625. operator VkDeviceGroupDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  23626. {
  23627. return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo *>( this );
  23628. }
  23629. operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT
  23630. {
  23631. return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo *>( this );
  23632. }
  23633. #if defined( VULKAN_HPP_USE_REFLECT )
  23634. # if 14 <= VULKAN_HPP_CPP_VERSION
  23635. auto
  23636. # else
  23637. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PhysicalDevice * const &>
  23638. # endif
  23639. reflect() const VULKAN_HPP_NOEXCEPT
  23640. {
  23641. return std::tie( sType, pNext, physicalDeviceCount, pPhysicalDevices );
  23642. }
  23643. #endif
  23644. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23645. auto operator<=>( DeviceGroupDeviceCreateInfo const & ) const = default;
  23646. #else
  23647. bool operator==( DeviceGroupDeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23648. {
  23649. # if defined( VULKAN_HPP_USE_REFLECT )
  23650. return this->reflect() == rhs.reflect();
  23651. # else
  23652. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( physicalDeviceCount == rhs.physicalDeviceCount ) &&
  23653. ( pPhysicalDevices == rhs.pPhysicalDevices );
  23654. # endif
  23655. }
  23656. bool operator!=( DeviceGroupDeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23657. {
  23658. return !operator==( rhs );
  23659. }
  23660. #endif
  23661. public:
  23662. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo;
  23663. const void * pNext = {};
  23664. uint32_t physicalDeviceCount = {};
  23665. const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices = {};
  23666. };
  23667. template <>
  23668. struct CppType<StructureType, StructureType::eDeviceGroupDeviceCreateInfo>
  23669. {
  23670. using Type = DeviceGroupDeviceCreateInfo;
  23671. };
  23672. using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
  23673. struct DeviceGroupPresentCapabilitiesKHR
  23674. {
  23675. using NativeType = VkDeviceGroupPresentCapabilitiesKHR;
  23676. static const bool allowDuplicate = false;
  23677. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
  23678. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23679. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( std::array<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> const & presentMask_ = {},
  23680. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {},
  23681. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23682. : pNext( pNext_ )
  23683. , presentMask( presentMask_ )
  23684. , modes( modes_ )
  23685. {
  23686. }
  23687. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23688. DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  23689. : DeviceGroupPresentCapabilitiesKHR( *reinterpret_cast<DeviceGroupPresentCapabilitiesKHR const *>( &rhs ) )
  23690. {
  23691. }
  23692. DeviceGroupPresentCapabilitiesKHR & operator=( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23693. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23694. DeviceGroupPresentCapabilitiesKHR & operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  23695. {
  23696. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR const *>( &rhs );
  23697. return *this;
  23698. }
  23699. operator VkDeviceGroupPresentCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  23700. {
  23701. return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR *>( this );
  23702. }
  23703. operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  23704. {
  23705. return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( this );
  23706. }
  23707. #if defined( VULKAN_HPP_USE_REFLECT )
  23708. # if 14 <= VULKAN_HPP_CPP_VERSION
  23709. auto
  23710. # else
  23711. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  23712. void * const &,
  23713. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> const &,
  23714. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR const &>
  23715. # endif
  23716. reflect() const VULKAN_HPP_NOEXCEPT
  23717. {
  23718. return std::tie( sType, pNext, presentMask, modes );
  23719. }
  23720. #endif
  23721. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23722. auto operator<=>( DeviceGroupPresentCapabilitiesKHR const & ) const = default;
  23723. #else
  23724. bool operator==( DeviceGroupPresentCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  23725. {
  23726. # if defined( VULKAN_HPP_USE_REFLECT )
  23727. return this->reflect() == rhs.reflect();
  23728. # else
  23729. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentMask == rhs.presentMask ) && ( modes == rhs.modes );
  23730. # endif
  23731. }
  23732. bool operator!=( DeviceGroupPresentCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  23733. {
  23734. return !operator==( rhs );
  23735. }
  23736. #endif
  23737. public:
  23738. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
  23739. void * pNext = {};
  23740. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, VK_MAX_DEVICE_GROUP_SIZE> presentMask = {};
  23741. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
  23742. };
  23743. template <>
  23744. struct CppType<StructureType, StructureType::eDeviceGroupPresentCapabilitiesKHR>
  23745. {
  23746. using Type = DeviceGroupPresentCapabilitiesKHR;
  23747. };
  23748. struct DeviceGroupPresentInfoKHR
  23749. {
  23750. using NativeType = VkDeviceGroupPresentInfoKHR;
  23751. static const bool allowDuplicate = false;
  23752. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentInfoKHR;
  23753. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23754. VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR(
  23755. uint32_t swapchainCount_ = {},
  23756. const uint32_t * pDeviceMasks_ = {},
  23757. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal,
  23758. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23759. : pNext( pNext_ )
  23760. , swapchainCount( swapchainCount_ )
  23761. , pDeviceMasks( pDeviceMasks_ )
  23762. , mode( mode_ )
  23763. {
  23764. }
  23765. VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23766. DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  23767. : DeviceGroupPresentInfoKHR( *reinterpret_cast<DeviceGroupPresentInfoKHR const *>( &rhs ) )
  23768. {
  23769. }
  23770. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  23771. DeviceGroupPresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_,
  23772. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal,
  23773. const void * pNext_ = nullptr )
  23774. : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( deviceMasks_.size() ) ), pDeviceMasks( deviceMasks_.data() ), mode( mode_ )
  23775. {
  23776. }
  23777. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  23778. DeviceGroupPresentInfoKHR & operator=( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23779. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23780. DeviceGroupPresentInfoKHR & operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  23781. {
  23782. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR const *>( &rhs );
  23783. return *this;
  23784. }
  23785. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23786. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23787. {
  23788. pNext = pNext_;
  23789. return *this;
  23790. }
  23791. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  23792. {
  23793. swapchainCount = swapchainCount_;
  23794. return *this;
  23795. }
  23796. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t * pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
  23797. {
  23798. pDeviceMasks = pDeviceMasks_;
  23799. return *this;
  23800. }
  23801. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  23802. DeviceGroupPresentInfoKHR & setDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & deviceMasks_ ) VULKAN_HPP_NOEXCEPT
  23803. {
  23804. swapchainCount = static_cast<uint32_t>( deviceMasks_.size() );
  23805. pDeviceMasks = deviceMasks_.data();
  23806. return *this;
  23807. }
  23808. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  23809. VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT
  23810. {
  23811. mode = mode_;
  23812. return *this;
  23813. }
  23814. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23815. operator VkDeviceGroupPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  23816. {
  23817. return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR *>( this );
  23818. }
  23819. operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
  23820. {
  23821. return *reinterpret_cast<VkDeviceGroupPresentInfoKHR *>( this );
  23822. }
  23823. #if defined( VULKAN_HPP_USE_REFLECT )
  23824. # if 14 <= VULKAN_HPP_CPP_VERSION
  23825. auto
  23826. # else
  23827. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  23828. const void * const &,
  23829. uint32_t const &,
  23830. const uint32_t * const &,
  23831. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR const &>
  23832. # endif
  23833. reflect() const VULKAN_HPP_NOEXCEPT
  23834. {
  23835. return std::tie( sType, pNext, swapchainCount, pDeviceMasks, mode );
  23836. }
  23837. #endif
  23838. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23839. auto operator<=>( DeviceGroupPresentInfoKHR const & ) const = default;
  23840. #else
  23841. bool operator==( DeviceGroupPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  23842. {
  23843. # if defined( VULKAN_HPP_USE_REFLECT )
  23844. return this->reflect() == rhs.reflect();
  23845. # else
  23846. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && ( pDeviceMasks == rhs.pDeviceMasks ) &&
  23847. ( mode == rhs.mode );
  23848. # endif
  23849. }
  23850. bool operator!=( DeviceGroupPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  23851. {
  23852. return !operator==( rhs );
  23853. }
  23854. #endif
  23855. public:
  23856. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR;
  23857. const void * pNext = {};
  23858. uint32_t swapchainCount = {};
  23859. const uint32_t * pDeviceMasks = {};
  23860. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal;
  23861. };
  23862. template <>
  23863. struct CppType<StructureType, StructureType::eDeviceGroupPresentInfoKHR>
  23864. {
  23865. using Type = DeviceGroupPresentInfoKHR;
  23866. };
  23867. struct DeviceGroupRenderPassBeginInfo
  23868. {
  23869. using NativeType = VkDeviceGroupRenderPassBeginInfo;
  23870. static const bool allowDuplicate = false;
  23871. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupRenderPassBeginInfo;
  23872. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23873. VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_ = {},
  23874. uint32_t deviceRenderAreaCount_ = {},
  23875. const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas_ = {},
  23876. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  23877. : pNext( pNext_ )
  23878. , deviceMask( deviceMask_ )
  23879. , deviceRenderAreaCount( deviceRenderAreaCount_ )
  23880. , pDeviceRenderAreas( pDeviceRenderAreas_ )
  23881. {
  23882. }
  23883. VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23884. DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23885. : DeviceGroupRenderPassBeginInfo( *reinterpret_cast<DeviceGroupRenderPassBeginInfo const *>( &rhs ) )
  23886. {
  23887. }
  23888. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  23889. DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_,
  23890. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_,
  23891. const void * pNext_ = nullptr )
  23892. : pNext( pNext_ )
  23893. , deviceMask( deviceMask_ )
  23894. , deviceRenderAreaCount( static_cast<uint32_t>( deviceRenderAreas_.size() ) )
  23895. , pDeviceRenderAreas( deviceRenderAreas_.data() )
  23896. {
  23897. }
  23898. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  23899. DeviceGroupRenderPassBeginInfo & operator=( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  23900. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  23901. DeviceGroupRenderPassBeginInfo & operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  23902. {
  23903. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo const *>( &rhs );
  23904. return *this;
  23905. }
  23906. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  23907. VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  23908. {
  23909. pNext = pNext_;
  23910. return *this;
  23911. }
  23912. VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
  23913. {
  23914. deviceMask = deviceMask_;
  23915. return *this;
  23916. }
  23917. VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT
  23918. {
  23919. deviceRenderAreaCount = deviceRenderAreaCount_;
  23920. return *this;
  23921. }
  23922. VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo &
  23923. setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
  23924. {
  23925. pDeviceRenderAreas = pDeviceRenderAreas_;
  23926. return *this;
  23927. }
  23928. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  23929. DeviceGroupRenderPassBeginInfo &
  23930. setDeviceRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & deviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT
  23931. {
  23932. deviceRenderAreaCount = static_cast<uint32_t>( deviceRenderAreas_.size() );
  23933. pDeviceRenderAreas = deviceRenderAreas_.data();
  23934. return *this;
  23935. }
  23936. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  23937. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  23938. operator VkDeviceGroupRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  23939. {
  23940. return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo *>( this );
  23941. }
  23942. operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
  23943. {
  23944. return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo *>( this );
  23945. }
  23946. #if defined( VULKAN_HPP_USE_REFLECT )
  23947. # if 14 <= VULKAN_HPP_CPP_VERSION
  23948. auto
  23949. # else
  23950. std::
  23951. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  23952. # endif
  23953. reflect() const VULKAN_HPP_NOEXCEPT
  23954. {
  23955. return std::tie( sType, pNext, deviceMask, deviceRenderAreaCount, pDeviceRenderAreas );
  23956. }
  23957. #endif
  23958. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  23959. auto operator<=>( DeviceGroupRenderPassBeginInfo const & ) const = default;
  23960. #else
  23961. bool operator==( DeviceGroupRenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23962. {
  23963. # if defined( VULKAN_HPP_USE_REFLECT )
  23964. return this->reflect() == rhs.reflect();
  23965. # else
  23966. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceMask == rhs.deviceMask ) && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount ) &&
  23967. ( pDeviceRenderAreas == rhs.pDeviceRenderAreas );
  23968. # endif
  23969. }
  23970. bool operator!=( DeviceGroupRenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  23971. {
  23972. return !operator==( rhs );
  23973. }
  23974. #endif
  23975. public:
  23976. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo;
  23977. const void * pNext = {};
  23978. uint32_t deviceMask = {};
  23979. uint32_t deviceRenderAreaCount = {};
  23980. const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas = {};
  23981. };
  23982. template <>
  23983. struct CppType<StructureType, StructureType::eDeviceGroupRenderPassBeginInfo>
  23984. {
  23985. using Type = DeviceGroupRenderPassBeginInfo;
  23986. };
  23987. using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
  23988. struct DeviceGroupSubmitInfo
  23989. {
  23990. using NativeType = VkDeviceGroupSubmitInfo;
  23991. static const bool allowDuplicate = false;
  23992. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSubmitInfo;
  23993. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  23994. VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( uint32_t waitSemaphoreCount_ = {},
  23995. const uint32_t * pWaitSemaphoreDeviceIndices_ = {},
  23996. uint32_t commandBufferCount_ = {},
  23997. const uint32_t * pCommandBufferDeviceMasks_ = {},
  23998. uint32_t signalSemaphoreCount_ = {},
  23999. const uint32_t * pSignalSemaphoreDeviceIndices_ = {},
  24000. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24001. : pNext( pNext_ )
  24002. , waitSemaphoreCount( waitSemaphoreCount_ )
  24003. , pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ )
  24004. , commandBufferCount( commandBufferCount_ )
  24005. , pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ )
  24006. , signalSemaphoreCount( signalSemaphoreCount_ )
  24007. , pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ )
  24008. {
  24009. }
  24010. VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24011. DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  24012. : DeviceGroupSubmitInfo( *reinterpret_cast<DeviceGroupSubmitInfo const *>( &rhs ) )
  24013. {
  24014. }
  24015. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  24016. DeviceGroupSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_,
  24017. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ = {},
  24018. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ = {},
  24019. const void * pNext_ = nullptr )
  24020. : pNext( pNext_ )
  24021. , waitSemaphoreCount( static_cast<uint32_t>( waitSemaphoreDeviceIndices_.size() ) )
  24022. , pWaitSemaphoreDeviceIndices( waitSemaphoreDeviceIndices_.data() )
  24023. , commandBufferCount( static_cast<uint32_t>( commandBufferDeviceMasks_.size() ) )
  24024. , pCommandBufferDeviceMasks( commandBufferDeviceMasks_.data() )
  24025. , signalSemaphoreCount( static_cast<uint32_t>( signalSemaphoreDeviceIndices_.size() ) )
  24026. , pSignalSemaphoreDeviceIndices( signalSemaphoreDeviceIndices_.data() )
  24027. {
  24028. }
  24029. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  24030. DeviceGroupSubmitInfo & operator=( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24031. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24032. DeviceGroupSubmitInfo & operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  24033. {
  24034. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo const *>( &rhs );
  24035. return *this;
  24036. }
  24037. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24038. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24039. {
  24040. pNext = pNext_;
  24041. return *this;
  24042. }
  24043. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  24044. {
  24045. waitSemaphoreCount = waitSemaphoreCount_;
  24046. return *this;
  24047. }
  24048. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t * pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  24049. {
  24050. pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_;
  24051. return *this;
  24052. }
  24053. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  24054. DeviceGroupSubmitInfo &
  24055. setWaitSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & waitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  24056. {
  24057. waitSemaphoreCount = static_cast<uint32_t>( waitSemaphoreDeviceIndices_.size() );
  24058. pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices_.data();
  24059. return *this;
  24060. }
  24061. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  24062. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
  24063. {
  24064. commandBufferCount = commandBufferCount_;
  24065. return *this;
  24066. }
  24067. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t * pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
  24068. {
  24069. pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_;
  24070. return *this;
  24071. }
  24072. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  24073. DeviceGroupSubmitInfo &
  24074. setCommandBufferDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & commandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT
  24075. {
  24076. commandBufferCount = static_cast<uint32_t>( commandBufferDeviceMasks_.size() );
  24077. pCommandBufferDeviceMasks = commandBufferDeviceMasks_.data();
  24078. return *this;
  24079. }
  24080. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  24081. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  24082. {
  24083. signalSemaphoreCount = signalSemaphoreCount_;
  24084. return *this;
  24085. }
  24086. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t * pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  24087. {
  24088. pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_;
  24089. return *this;
  24090. }
  24091. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  24092. DeviceGroupSubmitInfo &
  24093. setSignalSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & signalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT
  24094. {
  24095. signalSemaphoreCount = static_cast<uint32_t>( signalSemaphoreDeviceIndices_.size() );
  24096. pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices_.data();
  24097. return *this;
  24098. }
  24099. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  24100. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24101. operator VkDeviceGroupSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  24102. {
  24103. return *reinterpret_cast<const VkDeviceGroupSubmitInfo *>( this );
  24104. }
  24105. operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT
  24106. {
  24107. return *reinterpret_cast<VkDeviceGroupSubmitInfo *>( this );
  24108. }
  24109. #if defined( VULKAN_HPP_USE_REFLECT )
  24110. # if 14 <= VULKAN_HPP_CPP_VERSION
  24111. auto
  24112. # else
  24113. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  24114. const void * const &,
  24115. uint32_t const &,
  24116. const uint32_t * const &,
  24117. uint32_t const &,
  24118. const uint32_t * const &,
  24119. uint32_t const &,
  24120. const uint32_t * const &>
  24121. # endif
  24122. reflect() const VULKAN_HPP_NOEXCEPT
  24123. {
  24124. return std::tie( sType,
  24125. pNext,
  24126. waitSemaphoreCount,
  24127. pWaitSemaphoreDeviceIndices,
  24128. commandBufferCount,
  24129. pCommandBufferDeviceMasks,
  24130. signalSemaphoreCount,
  24131. pSignalSemaphoreDeviceIndices );
  24132. }
  24133. #endif
  24134. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24135. auto operator<=>( DeviceGroupSubmitInfo const & ) const = default;
  24136. #else
  24137. bool operator==( DeviceGroupSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  24138. {
  24139. # if defined( VULKAN_HPP_USE_REFLECT )
  24140. return this->reflect() == rhs.reflect();
  24141. # else
  24142. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) &&
  24143. ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices ) && ( commandBufferCount == rhs.commandBufferCount ) &&
  24144. ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks ) && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) &&
  24145. ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices );
  24146. # endif
  24147. }
  24148. bool operator!=( DeviceGroupSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  24149. {
  24150. return !operator==( rhs );
  24151. }
  24152. #endif
  24153. public:
  24154. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo;
  24155. const void * pNext = {};
  24156. uint32_t waitSemaphoreCount = {};
  24157. const uint32_t * pWaitSemaphoreDeviceIndices = {};
  24158. uint32_t commandBufferCount = {};
  24159. const uint32_t * pCommandBufferDeviceMasks = {};
  24160. uint32_t signalSemaphoreCount = {};
  24161. const uint32_t * pSignalSemaphoreDeviceIndices = {};
  24162. };
  24163. template <>
  24164. struct CppType<StructureType, StructureType::eDeviceGroupSubmitInfo>
  24165. {
  24166. using Type = DeviceGroupSubmitInfo;
  24167. };
  24168. using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
  24169. struct DeviceGroupSwapchainCreateInfoKHR
  24170. {
  24171. using NativeType = VkDeviceGroupSwapchainCreateInfoKHR;
  24172. static const bool allowDuplicate = false;
  24173. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
  24174. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24175. VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {},
  24176. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24177. : pNext( pNext_ )
  24178. , modes( modes_ )
  24179. {
  24180. }
  24181. VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24182. DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  24183. : DeviceGroupSwapchainCreateInfoKHR( *reinterpret_cast<DeviceGroupSwapchainCreateInfoKHR const *>( &rhs ) )
  24184. {
  24185. }
  24186. DeviceGroupSwapchainCreateInfoKHR & operator=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24187. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24188. DeviceGroupSwapchainCreateInfoKHR & operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  24189. {
  24190. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR const *>( &rhs );
  24191. return *this;
  24192. }
  24193. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24194. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24195. {
  24196. pNext = pNext_;
  24197. return *this;
  24198. }
  24199. VULKAN_HPP_CONSTEXPR_14 DeviceGroupSwapchainCreateInfoKHR & setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT
  24200. {
  24201. modes = modes_;
  24202. return *this;
  24203. }
  24204. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24205. operator VkDeviceGroupSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  24206. {
  24207. return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR *>( this );
  24208. }
  24209. operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  24210. {
  24211. return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR *>( this );
  24212. }
  24213. #if defined( VULKAN_HPP_USE_REFLECT )
  24214. # if 14 <= VULKAN_HPP_CPP_VERSION
  24215. auto
  24216. # else
  24217. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR const &>
  24218. # endif
  24219. reflect() const VULKAN_HPP_NOEXCEPT
  24220. {
  24221. return std::tie( sType, pNext, modes );
  24222. }
  24223. #endif
  24224. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24225. auto operator<=>( DeviceGroupSwapchainCreateInfoKHR const & ) const = default;
  24226. #else
  24227. bool operator==( DeviceGroupSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  24228. {
  24229. # if defined( VULKAN_HPP_USE_REFLECT )
  24230. return this->reflect() == rhs.reflect();
  24231. # else
  24232. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( modes == rhs.modes );
  24233. # endif
  24234. }
  24235. bool operator!=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  24236. {
  24237. return !operator==( rhs );
  24238. }
  24239. #endif
  24240. public:
  24241. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
  24242. const void * pNext = {};
  24243. VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {};
  24244. };
  24245. template <>
  24246. struct CppType<StructureType, StructureType::eDeviceGroupSwapchainCreateInfoKHR>
  24247. {
  24248. using Type = DeviceGroupSwapchainCreateInfoKHR;
  24249. };
  24250. struct ImageCreateInfo
  24251. {
  24252. using NativeType = VkImageCreateInfo;
  24253. static const bool allowDuplicate = false;
  24254. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCreateInfo;
  24255. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24256. VULKAN_HPP_CONSTEXPR ImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {},
  24257. VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D,
  24258. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  24259. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
  24260. uint32_t mipLevels_ = {},
  24261. uint32_t arrayLayers_ = {},
  24262. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  24263. VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
  24264. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
  24265. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
  24266. uint32_t queueFamilyIndexCount_ = {},
  24267. const uint32_t * pQueueFamilyIndices_ = {},
  24268. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  24269. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24270. : pNext( pNext_ )
  24271. , flags( flags_ )
  24272. , imageType( imageType_ )
  24273. , format( format_ )
  24274. , extent( extent_ )
  24275. , mipLevels( mipLevels_ )
  24276. , arrayLayers( arrayLayers_ )
  24277. , samples( samples_ )
  24278. , tiling( tiling_ )
  24279. , usage( usage_ )
  24280. , sharingMode( sharingMode_ )
  24281. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  24282. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  24283. , initialLayout( initialLayout_ )
  24284. {
  24285. }
  24286. VULKAN_HPP_CONSTEXPR ImageCreateInfo( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24287. ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : ImageCreateInfo( *reinterpret_cast<ImageCreateInfo const *>( &rhs ) ) {}
  24288. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  24289. ImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_,
  24290. VULKAN_HPP_NAMESPACE::ImageType imageType_,
  24291. VULKAN_HPP_NAMESPACE::Format format_,
  24292. VULKAN_HPP_NAMESPACE::Extent3D extent_,
  24293. uint32_t mipLevels_,
  24294. uint32_t arrayLayers_,
  24295. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_,
  24296. VULKAN_HPP_NAMESPACE::ImageTiling tiling_,
  24297. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_,
  24298. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_,
  24299. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_,
  24300. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  24301. const void * pNext_ = nullptr )
  24302. : pNext( pNext_ )
  24303. , flags( flags_ )
  24304. , imageType( imageType_ )
  24305. , format( format_ )
  24306. , extent( extent_ )
  24307. , mipLevels( mipLevels_ )
  24308. , arrayLayers( arrayLayers_ )
  24309. , samples( samples_ )
  24310. , tiling( tiling_ )
  24311. , usage( usage_ )
  24312. , sharingMode( sharingMode_ )
  24313. , queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) )
  24314. , pQueueFamilyIndices( queueFamilyIndices_.data() )
  24315. , initialLayout( initialLayout_ )
  24316. {
  24317. }
  24318. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  24319. ImageCreateInfo & operator=( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24320. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24321. ImageCreateInfo & operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  24322. {
  24323. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCreateInfo const *>( &rhs );
  24324. return *this;
  24325. }
  24326. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24327. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24328. {
  24329. pNext = pNext_;
  24330. return *this;
  24331. }
  24332. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  24333. {
  24334. flags = flags_;
  24335. return *this;
  24336. }
  24337. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT
  24338. {
  24339. imageType = imageType_;
  24340. return *this;
  24341. }
  24342. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  24343. {
  24344. format = format_;
  24345. return *this;
  24346. }
  24347. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  24348. {
  24349. extent = extent_;
  24350. return *this;
  24351. }
  24352. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT
  24353. {
  24354. mipLevels = mipLevels_;
  24355. return *this;
  24356. }
  24357. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT
  24358. {
  24359. arrayLayers = arrayLayers_;
  24360. return *this;
  24361. }
  24362. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
  24363. {
  24364. samples = samples_;
  24365. return *this;
  24366. }
  24367. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
  24368. {
  24369. tiling = tiling_;
  24370. return *this;
  24371. }
  24372. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  24373. {
  24374. usage = usage_;
  24375. return *this;
  24376. }
  24377. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
  24378. {
  24379. sharingMode = sharingMode_;
  24380. return *this;
  24381. }
  24382. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
  24383. {
  24384. queueFamilyIndexCount = queueFamilyIndexCount_;
  24385. return *this;
  24386. }
  24387. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  24388. {
  24389. pQueueFamilyIndices = pQueueFamilyIndices_;
  24390. return *this;
  24391. }
  24392. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  24393. ImageCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  24394. {
  24395. queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
  24396. pQueueFamilyIndices = queueFamilyIndices_.data();
  24397. return *this;
  24398. }
  24399. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  24400. VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT
  24401. {
  24402. initialLayout = initialLayout_;
  24403. return *this;
  24404. }
  24405. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24406. operator VkImageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  24407. {
  24408. return *reinterpret_cast<const VkImageCreateInfo *>( this );
  24409. }
  24410. operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT
  24411. {
  24412. return *reinterpret_cast<VkImageCreateInfo *>( this );
  24413. }
  24414. #if defined( VULKAN_HPP_USE_REFLECT )
  24415. # if 14 <= VULKAN_HPP_CPP_VERSION
  24416. auto
  24417. # else
  24418. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  24419. const void * const &,
  24420. VULKAN_HPP_NAMESPACE::ImageCreateFlags const &,
  24421. VULKAN_HPP_NAMESPACE::ImageType const &,
  24422. VULKAN_HPP_NAMESPACE::Format const &,
  24423. VULKAN_HPP_NAMESPACE::Extent3D const &,
  24424. uint32_t const &,
  24425. uint32_t const &,
  24426. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  24427. VULKAN_HPP_NAMESPACE::ImageTiling const &,
  24428. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  24429. VULKAN_HPP_NAMESPACE::SharingMode const &,
  24430. uint32_t const &,
  24431. const uint32_t * const &,
  24432. VULKAN_HPP_NAMESPACE::ImageLayout const &>
  24433. # endif
  24434. reflect() const VULKAN_HPP_NOEXCEPT
  24435. {
  24436. return std::tie( sType,
  24437. pNext,
  24438. flags,
  24439. imageType,
  24440. format,
  24441. extent,
  24442. mipLevels,
  24443. arrayLayers,
  24444. samples,
  24445. tiling,
  24446. usage,
  24447. sharingMode,
  24448. queueFamilyIndexCount,
  24449. pQueueFamilyIndices,
  24450. initialLayout );
  24451. }
  24452. #endif
  24453. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24454. auto operator<=>( ImageCreateInfo const & ) const = default;
  24455. #else
  24456. bool operator==( ImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  24457. {
  24458. # if defined( VULKAN_HPP_USE_REFLECT )
  24459. return this->reflect() == rhs.reflect();
  24460. # else
  24461. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( imageType == rhs.imageType ) && ( format == rhs.format ) &&
  24462. ( extent == rhs.extent ) && ( mipLevels == rhs.mipLevels ) && ( arrayLayers == rhs.arrayLayers ) && ( samples == rhs.samples ) &&
  24463. ( tiling == rhs.tiling ) && ( usage == rhs.usage ) && ( sharingMode == rhs.sharingMode ) &&
  24464. ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) &&
  24465. ( initialLayout == rhs.initialLayout );
  24466. # endif
  24467. }
  24468. bool operator!=( ImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  24469. {
  24470. return !operator==( rhs );
  24471. }
  24472. #endif
  24473. public:
  24474. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo;
  24475. const void * pNext = {};
  24476. VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
  24477. VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D;
  24478. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  24479. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  24480. uint32_t mipLevels = {};
  24481. uint32_t arrayLayers = {};
  24482. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  24483. VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
  24484. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
  24485. VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
  24486. uint32_t queueFamilyIndexCount = {};
  24487. const uint32_t * pQueueFamilyIndices = {};
  24488. VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  24489. };
  24490. template <>
  24491. struct CppType<StructureType, StructureType::eImageCreateInfo>
  24492. {
  24493. using Type = ImageCreateInfo;
  24494. };
  24495. struct DeviceImageMemoryRequirements
  24496. {
  24497. using NativeType = VkDeviceImageMemoryRequirements;
  24498. static const bool allowDuplicate = false;
  24499. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceImageMemoryRequirements;
  24500. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24501. VULKAN_HPP_CONSTEXPR
  24502. DeviceImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ = {},
  24503. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
  24504. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24505. : pNext( pNext_ )
  24506. , pCreateInfo( pCreateInfo_ )
  24507. , planeAspect( planeAspect_ )
  24508. {
  24509. }
  24510. VULKAN_HPP_CONSTEXPR DeviceImageMemoryRequirements( DeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24511. DeviceImageMemoryRequirements( VkDeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  24512. : DeviceImageMemoryRequirements( *reinterpret_cast<DeviceImageMemoryRequirements const *>( &rhs ) )
  24513. {
  24514. }
  24515. DeviceImageMemoryRequirements & operator=( DeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24516. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24517. DeviceImageMemoryRequirements & operator=( VkDeviceImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  24518. {
  24519. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements const *>( &rhs );
  24520. return *this;
  24521. }
  24522. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24523. VULKAN_HPP_CONSTEXPR_14 DeviceImageMemoryRequirements & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24524. {
  24525. pNext = pNext_;
  24526. return *this;
  24527. }
  24528. VULKAN_HPP_CONSTEXPR_14 DeviceImageMemoryRequirements & setPCreateInfo( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ ) VULKAN_HPP_NOEXCEPT
  24529. {
  24530. pCreateInfo = pCreateInfo_;
  24531. return *this;
  24532. }
  24533. VULKAN_HPP_CONSTEXPR_14 DeviceImageMemoryRequirements & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
  24534. {
  24535. planeAspect = planeAspect_;
  24536. return *this;
  24537. }
  24538. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24539. operator VkDeviceImageMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
  24540. {
  24541. return *reinterpret_cast<const VkDeviceImageMemoryRequirements *>( this );
  24542. }
  24543. operator VkDeviceImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
  24544. {
  24545. return *reinterpret_cast<VkDeviceImageMemoryRequirements *>( this );
  24546. }
  24547. #if defined( VULKAN_HPP_USE_REFLECT )
  24548. # if 14 <= VULKAN_HPP_CPP_VERSION
  24549. auto
  24550. # else
  24551. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  24552. const void * const &,
  24553. const VULKAN_HPP_NAMESPACE::ImageCreateInfo * const &,
  24554. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &>
  24555. # endif
  24556. reflect() const VULKAN_HPP_NOEXCEPT
  24557. {
  24558. return std::tie( sType, pNext, pCreateInfo, planeAspect );
  24559. }
  24560. #endif
  24561. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24562. auto operator<=>( DeviceImageMemoryRequirements const & ) const = default;
  24563. #else
  24564. bool operator==( DeviceImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  24565. {
  24566. # if defined( VULKAN_HPP_USE_REFLECT )
  24567. return this->reflect() == rhs.reflect();
  24568. # else
  24569. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pCreateInfo == rhs.pCreateInfo ) && ( planeAspect == rhs.planeAspect );
  24570. # endif
  24571. }
  24572. bool operator!=( DeviceImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  24573. {
  24574. return !operator==( rhs );
  24575. }
  24576. #endif
  24577. public:
  24578. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceImageMemoryRequirements;
  24579. const void * pNext = {};
  24580. const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo = {};
  24581. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
  24582. };
  24583. template <>
  24584. struct CppType<StructureType, StructureType::eDeviceImageMemoryRequirements>
  24585. {
  24586. using Type = DeviceImageMemoryRequirements;
  24587. };
  24588. using DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements;
  24589. struct ImageSubresource2KHR
  24590. {
  24591. using NativeType = VkImageSubresource2KHR;
  24592. static const bool allowDuplicate = false;
  24593. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSubresource2KHR;
  24594. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24595. VULKAN_HPP_CONSTEXPR ImageSubresource2KHR( VULKAN_HPP_NAMESPACE::ImageSubresource imageSubresource_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24596. : pNext( pNext_ )
  24597. , imageSubresource( imageSubresource_ )
  24598. {
  24599. }
  24600. VULKAN_HPP_CONSTEXPR ImageSubresource2KHR( ImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24601. ImageSubresource2KHR( VkImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  24602. : ImageSubresource2KHR( *reinterpret_cast<ImageSubresource2KHR const *>( &rhs ) )
  24603. {
  24604. }
  24605. ImageSubresource2KHR & operator=( ImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24606. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24607. ImageSubresource2KHR & operator=( VkImageSubresource2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  24608. {
  24609. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSubresource2KHR const *>( &rhs );
  24610. return *this;
  24611. }
  24612. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24613. VULKAN_HPP_CONSTEXPR_14 ImageSubresource2KHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24614. {
  24615. pNext = pNext_;
  24616. return *this;
  24617. }
  24618. VULKAN_HPP_CONSTEXPR_14 ImageSubresource2KHR & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT
  24619. {
  24620. imageSubresource = imageSubresource_;
  24621. return *this;
  24622. }
  24623. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24624. operator VkImageSubresource2KHR const &() const VULKAN_HPP_NOEXCEPT
  24625. {
  24626. return *reinterpret_cast<const VkImageSubresource2KHR *>( this );
  24627. }
  24628. operator VkImageSubresource2KHR &() VULKAN_HPP_NOEXCEPT
  24629. {
  24630. return *reinterpret_cast<VkImageSubresource2KHR *>( this );
  24631. }
  24632. #if defined( VULKAN_HPP_USE_REFLECT )
  24633. # if 14 <= VULKAN_HPP_CPP_VERSION
  24634. auto
  24635. # else
  24636. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageSubresource const &>
  24637. # endif
  24638. reflect() const VULKAN_HPP_NOEXCEPT
  24639. {
  24640. return std::tie( sType, pNext, imageSubresource );
  24641. }
  24642. #endif
  24643. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24644. auto operator<=>( ImageSubresource2KHR const & ) const = default;
  24645. #else
  24646. bool operator==( ImageSubresource2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  24647. {
  24648. # if defined( VULKAN_HPP_USE_REFLECT )
  24649. return this->reflect() == rhs.reflect();
  24650. # else
  24651. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageSubresource == rhs.imageSubresource );
  24652. # endif
  24653. }
  24654. bool operator!=( ImageSubresource2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  24655. {
  24656. return !operator==( rhs );
  24657. }
  24658. #endif
  24659. public:
  24660. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSubresource2KHR;
  24661. void * pNext = {};
  24662. VULKAN_HPP_NAMESPACE::ImageSubresource imageSubresource = {};
  24663. };
  24664. template <>
  24665. struct CppType<StructureType, StructureType::eImageSubresource2KHR>
  24666. {
  24667. using Type = ImageSubresource2KHR;
  24668. };
  24669. using ImageSubresource2EXT = ImageSubresource2KHR;
  24670. struct DeviceImageSubresourceInfoKHR
  24671. {
  24672. using NativeType = VkDeviceImageSubresourceInfoKHR;
  24673. static const bool allowDuplicate = false;
  24674. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceImageSubresourceInfoKHR;
  24675. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24676. VULKAN_HPP_CONSTEXPR DeviceImageSubresourceInfoKHR( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ = {},
  24677. const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource_ = {},
  24678. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24679. : pNext( pNext_ )
  24680. , pCreateInfo( pCreateInfo_ )
  24681. , pSubresource( pSubresource_ )
  24682. {
  24683. }
  24684. VULKAN_HPP_CONSTEXPR DeviceImageSubresourceInfoKHR( DeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24685. DeviceImageSubresourceInfoKHR( VkDeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  24686. : DeviceImageSubresourceInfoKHR( *reinterpret_cast<DeviceImageSubresourceInfoKHR const *>( &rhs ) )
  24687. {
  24688. }
  24689. DeviceImageSubresourceInfoKHR & operator=( DeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24690. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24691. DeviceImageSubresourceInfoKHR & operator=( VkDeviceImageSubresourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  24692. {
  24693. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR const *>( &rhs );
  24694. return *this;
  24695. }
  24696. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24697. VULKAN_HPP_CONSTEXPR_14 DeviceImageSubresourceInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24698. {
  24699. pNext = pNext_;
  24700. return *this;
  24701. }
  24702. VULKAN_HPP_CONSTEXPR_14 DeviceImageSubresourceInfoKHR & setPCreateInfo( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo_ ) VULKAN_HPP_NOEXCEPT
  24703. {
  24704. pCreateInfo = pCreateInfo_;
  24705. return *this;
  24706. }
  24707. VULKAN_HPP_CONSTEXPR_14 DeviceImageSubresourceInfoKHR &
  24708. setPSubresource( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource_ ) VULKAN_HPP_NOEXCEPT
  24709. {
  24710. pSubresource = pSubresource_;
  24711. return *this;
  24712. }
  24713. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24714. operator VkDeviceImageSubresourceInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  24715. {
  24716. return *reinterpret_cast<const VkDeviceImageSubresourceInfoKHR *>( this );
  24717. }
  24718. operator VkDeviceImageSubresourceInfoKHR &() VULKAN_HPP_NOEXCEPT
  24719. {
  24720. return *reinterpret_cast<VkDeviceImageSubresourceInfoKHR *>( this );
  24721. }
  24722. #if defined( VULKAN_HPP_USE_REFLECT )
  24723. # if 14 <= VULKAN_HPP_CPP_VERSION
  24724. auto
  24725. # else
  24726. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  24727. const void * const &,
  24728. const VULKAN_HPP_NAMESPACE::ImageCreateInfo * const &,
  24729. const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * const &>
  24730. # endif
  24731. reflect() const VULKAN_HPP_NOEXCEPT
  24732. {
  24733. return std::tie( sType, pNext, pCreateInfo, pSubresource );
  24734. }
  24735. #endif
  24736. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24737. auto operator<=>( DeviceImageSubresourceInfoKHR const & ) const = default;
  24738. #else
  24739. bool operator==( DeviceImageSubresourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  24740. {
  24741. # if defined( VULKAN_HPP_USE_REFLECT )
  24742. return this->reflect() == rhs.reflect();
  24743. # else
  24744. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pCreateInfo == rhs.pCreateInfo ) && ( pSubresource == rhs.pSubresource );
  24745. # endif
  24746. }
  24747. bool operator!=( DeviceImageSubresourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  24748. {
  24749. return !operator==( rhs );
  24750. }
  24751. #endif
  24752. public:
  24753. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceImageSubresourceInfoKHR;
  24754. const void * pNext = {};
  24755. const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo = {};
  24756. const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR * pSubresource = {};
  24757. };
  24758. template <>
  24759. struct CppType<StructureType, StructureType::eDeviceImageSubresourceInfoKHR>
  24760. {
  24761. using Type = DeviceImageSubresourceInfoKHR;
  24762. };
  24763. struct DeviceMemoryOpaqueCaptureAddressInfo
  24764. {
  24765. using NativeType = VkDeviceMemoryOpaqueCaptureAddressInfo;
  24766. static const bool allowDuplicate = false;
  24767. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
  24768. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24769. VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  24770. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24771. : pNext( pNext_ )
  24772. , memory( memory_ )
  24773. {
  24774. }
  24775. VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24776. DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  24777. : DeviceMemoryOpaqueCaptureAddressInfo( *reinterpret_cast<DeviceMemoryOpaqueCaptureAddressInfo const *>( &rhs ) )
  24778. {
  24779. }
  24780. DeviceMemoryOpaqueCaptureAddressInfo & operator=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24781. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24782. DeviceMemoryOpaqueCaptureAddressInfo & operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  24783. {
  24784. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const *>( &rhs );
  24785. return *this;
  24786. }
  24787. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24788. VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24789. {
  24790. pNext = pNext_;
  24791. return *this;
  24792. }
  24793. VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  24794. {
  24795. memory = memory_;
  24796. return *this;
  24797. }
  24798. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24799. operator VkDeviceMemoryOpaqueCaptureAddressInfo const &() const VULKAN_HPP_NOEXCEPT
  24800. {
  24801. return *reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( this );
  24802. }
  24803. operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT
  24804. {
  24805. return *reinterpret_cast<VkDeviceMemoryOpaqueCaptureAddressInfo *>( this );
  24806. }
  24807. #if defined( VULKAN_HPP_USE_REFLECT )
  24808. # if 14 <= VULKAN_HPP_CPP_VERSION
  24809. auto
  24810. # else
  24811. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &>
  24812. # endif
  24813. reflect() const VULKAN_HPP_NOEXCEPT
  24814. {
  24815. return std::tie( sType, pNext, memory );
  24816. }
  24817. #endif
  24818. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24819. auto operator<=>( DeviceMemoryOpaqueCaptureAddressInfo const & ) const = default;
  24820. #else
  24821. bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  24822. {
  24823. # if defined( VULKAN_HPP_USE_REFLECT )
  24824. return this->reflect() == rhs.reflect();
  24825. # else
  24826. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory );
  24827. # endif
  24828. }
  24829. bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  24830. {
  24831. return !operator==( rhs );
  24832. }
  24833. #endif
  24834. public:
  24835. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo;
  24836. const void * pNext = {};
  24837. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  24838. };
  24839. template <>
  24840. struct CppType<StructureType, StructureType::eDeviceMemoryOpaqueCaptureAddressInfo>
  24841. {
  24842. using Type = DeviceMemoryOpaqueCaptureAddressInfo;
  24843. };
  24844. using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
  24845. struct DeviceMemoryOverallocationCreateInfoAMD
  24846. {
  24847. using NativeType = VkDeviceMemoryOverallocationCreateInfoAMD;
  24848. static const bool allowDuplicate = false;
  24849. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
  24850. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24851. VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD(
  24852. VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault,
  24853. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24854. : pNext( pNext_ )
  24855. , overallocationBehavior( overallocationBehavior_ )
  24856. {
  24857. }
  24858. VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24859. DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  24860. : DeviceMemoryOverallocationCreateInfoAMD( *reinterpret_cast<DeviceMemoryOverallocationCreateInfoAMD const *>( &rhs ) )
  24861. {
  24862. }
  24863. DeviceMemoryOverallocationCreateInfoAMD & operator=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24864. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24865. DeviceMemoryOverallocationCreateInfoAMD & operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  24866. {
  24867. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD const *>( &rhs );
  24868. return *this;
  24869. }
  24870. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  24871. VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  24872. {
  24873. pNext = pNext_;
  24874. return *this;
  24875. }
  24876. VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOverallocationCreateInfoAMD &
  24877. setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT
  24878. {
  24879. overallocationBehavior = overallocationBehavior_;
  24880. return *this;
  24881. }
  24882. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  24883. operator VkDeviceMemoryOverallocationCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
  24884. {
  24885. return *reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD *>( this );
  24886. }
  24887. operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
  24888. {
  24889. return *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD *>( this );
  24890. }
  24891. #if defined( VULKAN_HPP_USE_REFLECT )
  24892. # if 14 <= VULKAN_HPP_CPP_VERSION
  24893. auto
  24894. # else
  24895. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD const &>
  24896. # endif
  24897. reflect() const VULKAN_HPP_NOEXCEPT
  24898. {
  24899. return std::tie( sType, pNext, overallocationBehavior );
  24900. }
  24901. #endif
  24902. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24903. auto operator<=>( DeviceMemoryOverallocationCreateInfoAMD const & ) const = default;
  24904. #else
  24905. bool operator==( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  24906. {
  24907. # if defined( VULKAN_HPP_USE_REFLECT )
  24908. return this->reflect() == rhs.reflect();
  24909. # else
  24910. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( overallocationBehavior == rhs.overallocationBehavior );
  24911. # endif
  24912. }
  24913. bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  24914. {
  24915. return !operator==( rhs );
  24916. }
  24917. #endif
  24918. public:
  24919. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
  24920. const void * pNext = {};
  24921. VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault;
  24922. };
  24923. template <>
  24924. struct CppType<StructureType, StructureType::eDeviceMemoryOverallocationCreateInfoAMD>
  24925. {
  24926. using Type = DeviceMemoryOverallocationCreateInfoAMD;
  24927. };
  24928. struct DeviceMemoryReportCallbackDataEXT
  24929. {
  24930. using NativeType = VkDeviceMemoryReportCallbackDataEXT;
  24931. static const bool allowDuplicate = false;
  24932. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryReportCallbackDataEXT;
  24933. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  24934. VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT(
  24935. VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {},
  24936. VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type_ = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate,
  24937. uint64_t memoryObjectId_ = {},
  24938. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  24939. VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown,
  24940. uint64_t objectHandle_ = {},
  24941. uint32_t heapIndex_ = {},
  24942. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  24943. : pNext( pNext_ )
  24944. , flags( flags_ )
  24945. , type( type_ )
  24946. , memoryObjectId( memoryObjectId_ )
  24947. , size( size_ )
  24948. , objectType( objectType_ )
  24949. , objectHandle( objectHandle_ )
  24950. , heapIndex( heapIndex_ )
  24951. {
  24952. }
  24953. VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24954. DeviceMemoryReportCallbackDataEXT( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24955. : DeviceMemoryReportCallbackDataEXT( *reinterpret_cast<DeviceMemoryReportCallbackDataEXT const *>( &rhs ) )
  24956. {
  24957. }
  24958. DeviceMemoryReportCallbackDataEXT & operator=( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  24959. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  24960. DeviceMemoryReportCallbackDataEXT & operator=( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  24961. {
  24962. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT const *>( &rhs );
  24963. return *this;
  24964. }
  24965. operator VkDeviceMemoryReportCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT
  24966. {
  24967. return *reinterpret_cast<const VkDeviceMemoryReportCallbackDataEXT *>( this );
  24968. }
  24969. operator VkDeviceMemoryReportCallbackDataEXT &() VULKAN_HPP_NOEXCEPT
  24970. {
  24971. return *reinterpret_cast<VkDeviceMemoryReportCallbackDataEXT *>( this );
  24972. }
  24973. #if defined( VULKAN_HPP_USE_REFLECT )
  24974. # if 14 <= VULKAN_HPP_CPP_VERSION
  24975. auto
  24976. # else
  24977. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  24978. void * const &,
  24979. VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT const &,
  24980. VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT const &,
  24981. uint64_t const &,
  24982. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  24983. VULKAN_HPP_NAMESPACE::ObjectType const &,
  24984. uint64_t const &,
  24985. uint32_t const &>
  24986. # endif
  24987. reflect() const VULKAN_HPP_NOEXCEPT
  24988. {
  24989. return std::tie( sType, pNext, flags, type, memoryObjectId, size, objectType, objectHandle, heapIndex );
  24990. }
  24991. #endif
  24992. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  24993. auto operator<=>( DeviceMemoryReportCallbackDataEXT const & ) const = default;
  24994. #else
  24995. bool operator==( DeviceMemoryReportCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  24996. {
  24997. # if defined( VULKAN_HPP_USE_REFLECT )
  24998. return this->reflect() == rhs.reflect();
  24999. # else
  25000. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( type == rhs.type ) && ( memoryObjectId == rhs.memoryObjectId ) &&
  25001. ( size == rhs.size ) && ( objectType == rhs.objectType ) && ( objectHandle == rhs.objectHandle ) && ( heapIndex == rhs.heapIndex );
  25002. # endif
  25003. }
  25004. bool operator!=( DeviceMemoryReportCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  25005. {
  25006. return !operator==( rhs );
  25007. }
  25008. #endif
  25009. public:
  25010. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryReportCallbackDataEXT;
  25011. void * pNext = {};
  25012. VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {};
  25013. VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate;
  25014. uint64_t memoryObjectId = {};
  25015. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  25016. VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown;
  25017. uint64_t objectHandle = {};
  25018. uint32_t heapIndex = {};
  25019. };
  25020. template <>
  25021. struct CppType<StructureType, StructureType::eDeviceMemoryReportCallbackDataEXT>
  25022. {
  25023. using Type = DeviceMemoryReportCallbackDataEXT;
  25024. };
  25025. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  25026. union DeviceOrHostAddressConstAMDX
  25027. {
  25028. using NativeType = VkDeviceOrHostAddressConstAMDX;
  25029. # if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  25030. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) : deviceAddress( deviceAddress_ ) {}
  25031. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX( const void * hostAddress_ ) : hostAddress( hostAddress_ ) {}
  25032. # endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  25033. # if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  25034. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
  25035. {
  25036. deviceAddress = deviceAddress_;
  25037. return *this;
  25038. }
  25039. VULKAN_HPP_CONSTEXPR_14 DeviceOrHostAddressConstAMDX & setHostAddress( const void * hostAddress_ ) VULKAN_HPP_NOEXCEPT
  25040. {
  25041. hostAddress = hostAddress_;
  25042. return *this;
  25043. }
  25044. # endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  25045. operator VkDeviceOrHostAddressConstAMDX const &() const
  25046. {
  25047. return *reinterpret_cast<const VkDeviceOrHostAddressConstAMDX *>( this );
  25048. }
  25049. operator VkDeviceOrHostAddressConstAMDX &()
  25050. {
  25051. return *reinterpret_cast<VkDeviceOrHostAddressConstAMDX *>( this );
  25052. }
  25053. # ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  25054. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress;
  25055. const void * hostAddress;
  25056. # else
  25057. VkDeviceAddress deviceAddress;
  25058. const void * hostAddress;
  25059. # endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  25060. };
  25061. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  25062. struct DevicePrivateDataCreateInfo
  25063. {
  25064. using NativeType = VkDevicePrivateDataCreateInfo;
  25065. static const bool allowDuplicate = true;
  25066. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDevicePrivateDataCreateInfo;
  25067. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25068. VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfo( uint32_t privateDataSlotRequestCount_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25069. : pNext( pNext_ )
  25070. , privateDataSlotRequestCount( privateDataSlotRequestCount_ )
  25071. {
  25072. }
  25073. VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfo( DevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25074. DevicePrivateDataCreateInfo( VkDevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  25075. : DevicePrivateDataCreateInfo( *reinterpret_cast<DevicePrivateDataCreateInfo const *>( &rhs ) )
  25076. {
  25077. }
  25078. DevicePrivateDataCreateInfo & operator=( DevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25079. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25080. DevicePrivateDataCreateInfo & operator=( VkDevicePrivateDataCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  25081. {
  25082. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo const *>( &rhs );
  25083. return *this;
  25084. }
  25085. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25086. VULKAN_HPP_CONSTEXPR_14 DevicePrivateDataCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25087. {
  25088. pNext = pNext_;
  25089. return *this;
  25090. }
  25091. VULKAN_HPP_CONSTEXPR_14 DevicePrivateDataCreateInfo & setPrivateDataSlotRequestCount( uint32_t privateDataSlotRequestCount_ ) VULKAN_HPP_NOEXCEPT
  25092. {
  25093. privateDataSlotRequestCount = privateDataSlotRequestCount_;
  25094. return *this;
  25095. }
  25096. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25097. operator VkDevicePrivateDataCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  25098. {
  25099. return *reinterpret_cast<const VkDevicePrivateDataCreateInfo *>( this );
  25100. }
  25101. operator VkDevicePrivateDataCreateInfo &() VULKAN_HPP_NOEXCEPT
  25102. {
  25103. return *reinterpret_cast<VkDevicePrivateDataCreateInfo *>( this );
  25104. }
  25105. #if defined( VULKAN_HPP_USE_REFLECT )
  25106. # if 14 <= VULKAN_HPP_CPP_VERSION
  25107. auto
  25108. # else
  25109. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  25110. # endif
  25111. reflect() const VULKAN_HPP_NOEXCEPT
  25112. {
  25113. return std::tie( sType, pNext, privateDataSlotRequestCount );
  25114. }
  25115. #endif
  25116. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25117. auto operator<=>( DevicePrivateDataCreateInfo const & ) const = default;
  25118. #else
  25119. bool operator==( DevicePrivateDataCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  25120. {
  25121. # if defined( VULKAN_HPP_USE_REFLECT )
  25122. return this->reflect() == rhs.reflect();
  25123. # else
  25124. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( privateDataSlotRequestCount == rhs.privateDataSlotRequestCount );
  25125. # endif
  25126. }
  25127. bool operator!=( DevicePrivateDataCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  25128. {
  25129. return !operator==( rhs );
  25130. }
  25131. #endif
  25132. public:
  25133. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDevicePrivateDataCreateInfo;
  25134. const void * pNext = {};
  25135. uint32_t privateDataSlotRequestCount = {};
  25136. };
  25137. template <>
  25138. struct CppType<StructureType, StructureType::eDevicePrivateDataCreateInfo>
  25139. {
  25140. using Type = DevicePrivateDataCreateInfo;
  25141. };
  25142. using DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfo;
  25143. struct DeviceQueueGlobalPriorityCreateInfoKHR
  25144. {
  25145. using NativeType = VkDeviceQueueGlobalPriorityCreateInfoKHR;
  25146. static const bool allowDuplicate = false;
  25147. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueGlobalPriorityCreateInfoKHR;
  25148. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25149. VULKAN_HPP_CONSTEXPR
  25150. DeviceQueueGlobalPriorityCreateInfoKHR( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  25151. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25152. : pNext( pNext_ )
  25153. , globalPriority( globalPriority_ )
  25154. {
  25155. }
  25156. VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoKHR( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25157. DeviceQueueGlobalPriorityCreateInfoKHR( VkDeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  25158. : DeviceQueueGlobalPriorityCreateInfoKHR( *reinterpret_cast<DeviceQueueGlobalPriorityCreateInfoKHR const *>( &rhs ) )
  25159. {
  25160. }
  25161. DeviceQueueGlobalPriorityCreateInfoKHR & operator=( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25162. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25163. DeviceQueueGlobalPriorityCreateInfoKHR & operator=( VkDeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  25164. {
  25165. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR const *>( &rhs );
  25166. return *this;
  25167. }
  25168. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25169. VULKAN_HPP_CONSTEXPR_14 DeviceQueueGlobalPriorityCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25170. {
  25171. pNext = pNext_;
  25172. return *this;
  25173. }
  25174. VULKAN_HPP_CONSTEXPR_14 DeviceQueueGlobalPriorityCreateInfoKHR &
  25175. setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority_ ) VULKAN_HPP_NOEXCEPT
  25176. {
  25177. globalPriority = globalPriority_;
  25178. return *this;
  25179. }
  25180. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25181. operator VkDeviceQueueGlobalPriorityCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  25182. {
  25183. return *reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoKHR *>( this );
  25184. }
  25185. operator VkDeviceQueueGlobalPriorityCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  25186. {
  25187. return *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoKHR *>( this );
  25188. }
  25189. #if defined( VULKAN_HPP_USE_REFLECT )
  25190. # if 14 <= VULKAN_HPP_CPP_VERSION
  25191. auto
  25192. # else
  25193. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR const &>
  25194. # endif
  25195. reflect() const VULKAN_HPP_NOEXCEPT
  25196. {
  25197. return std::tie( sType, pNext, globalPriority );
  25198. }
  25199. #endif
  25200. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25201. auto operator<=>( DeviceQueueGlobalPriorityCreateInfoKHR const & ) const = default;
  25202. #else
  25203. bool operator==( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  25204. {
  25205. # if defined( VULKAN_HPP_USE_REFLECT )
  25206. return this->reflect() == rhs.reflect();
  25207. # else
  25208. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( globalPriority == rhs.globalPriority );
  25209. # endif
  25210. }
  25211. bool operator!=( DeviceQueueGlobalPriorityCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  25212. {
  25213. return !operator==( rhs );
  25214. }
  25215. #endif
  25216. public:
  25217. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoKHR;
  25218. const void * pNext = {};
  25219. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow;
  25220. };
  25221. template <>
  25222. struct CppType<StructureType, StructureType::eDeviceQueueGlobalPriorityCreateInfoKHR>
  25223. {
  25224. using Type = DeviceQueueGlobalPriorityCreateInfoKHR;
  25225. };
  25226. using DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfoKHR;
  25227. struct DeviceQueueInfo2
  25228. {
  25229. using NativeType = VkDeviceQueueInfo2;
  25230. static const bool allowDuplicate = false;
  25231. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueInfo2;
  25232. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25233. VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {},
  25234. uint32_t queueFamilyIndex_ = {},
  25235. uint32_t queueIndex_ = {},
  25236. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25237. : pNext( pNext_ )
  25238. , flags( flags_ )
  25239. , queueFamilyIndex( queueFamilyIndex_ )
  25240. , queueIndex( queueIndex_ )
  25241. {
  25242. }
  25243. VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25244. DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : DeviceQueueInfo2( *reinterpret_cast<DeviceQueueInfo2 const *>( &rhs ) ) {}
  25245. DeviceQueueInfo2 & operator=( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25246. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25247. DeviceQueueInfo2 & operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  25248. {
  25249. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const *>( &rhs );
  25250. return *this;
  25251. }
  25252. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25253. VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25254. {
  25255. pNext = pNext_;
  25256. return *this;
  25257. }
  25258. VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  25259. {
  25260. flags = flags_;
  25261. return *this;
  25262. }
  25263. VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  25264. {
  25265. queueFamilyIndex = queueFamilyIndex_;
  25266. return *this;
  25267. }
  25268. VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT
  25269. {
  25270. queueIndex = queueIndex_;
  25271. return *this;
  25272. }
  25273. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25274. operator VkDeviceQueueInfo2 const &() const VULKAN_HPP_NOEXCEPT
  25275. {
  25276. return *reinterpret_cast<const VkDeviceQueueInfo2 *>( this );
  25277. }
  25278. operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT
  25279. {
  25280. return *reinterpret_cast<VkDeviceQueueInfo2 *>( this );
  25281. }
  25282. #if defined( VULKAN_HPP_USE_REFLECT )
  25283. # if 14 <= VULKAN_HPP_CPP_VERSION
  25284. auto
  25285. # else
  25286. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  25287. const void * const &,
  25288. VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags const &,
  25289. uint32_t const &,
  25290. uint32_t const &>
  25291. # endif
  25292. reflect() const VULKAN_HPP_NOEXCEPT
  25293. {
  25294. return std::tie( sType, pNext, flags, queueFamilyIndex, queueIndex );
  25295. }
  25296. #endif
  25297. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25298. auto operator<=>( DeviceQueueInfo2 const & ) const = default;
  25299. #else
  25300. bool operator==( DeviceQueueInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  25301. {
  25302. # if defined( VULKAN_HPP_USE_REFLECT )
  25303. return this->reflect() == rhs.reflect();
  25304. # else
  25305. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( queueFamilyIndex == rhs.queueFamilyIndex ) &&
  25306. ( queueIndex == rhs.queueIndex );
  25307. # endif
  25308. }
  25309. bool operator!=( DeviceQueueInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  25310. {
  25311. return !operator==( rhs );
  25312. }
  25313. #endif
  25314. public:
  25315. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2;
  25316. const void * pNext = {};
  25317. VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {};
  25318. uint32_t queueFamilyIndex = {};
  25319. uint32_t queueIndex = {};
  25320. };
  25321. template <>
  25322. struct CppType<StructureType, StructureType::eDeviceQueueInfo2>
  25323. {
  25324. using Type = DeviceQueueInfo2;
  25325. };
  25326. struct DirectDriverLoadingInfoLUNARG
  25327. {
  25328. using NativeType = VkDirectDriverLoadingInfoLUNARG;
  25329. static const bool allowDuplicate = false;
  25330. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectDriverLoadingInfoLUNARG;
  25331. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25332. VULKAN_HPP_CONSTEXPR DirectDriverLoadingInfoLUNARG( VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG flags_ = {},
  25333. PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr_ = {},
  25334. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25335. : pNext( pNext_ )
  25336. , flags( flags_ )
  25337. , pfnGetInstanceProcAddr( pfnGetInstanceProcAddr_ )
  25338. {
  25339. }
  25340. VULKAN_HPP_CONSTEXPR DirectDriverLoadingInfoLUNARG( DirectDriverLoadingInfoLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25341. DirectDriverLoadingInfoLUNARG( VkDirectDriverLoadingInfoLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT
  25342. : DirectDriverLoadingInfoLUNARG( *reinterpret_cast<DirectDriverLoadingInfoLUNARG const *>( &rhs ) )
  25343. {
  25344. }
  25345. DirectDriverLoadingInfoLUNARG & operator=( DirectDriverLoadingInfoLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25346. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25347. DirectDriverLoadingInfoLUNARG & operator=( VkDirectDriverLoadingInfoLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT
  25348. {
  25349. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG const *>( &rhs );
  25350. return *this;
  25351. }
  25352. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25353. VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingInfoLUNARG & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25354. {
  25355. pNext = pNext_;
  25356. return *this;
  25357. }
  25358. VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingInfoLUNARG & setFlags( VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG flags_ ) VULKAN_HPP_NOEXCEPT
  25359. {
  25360. flags = flags_;
  25361. return *this;
  25362. }
  25363. VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingInfoLUNARG &
  25364. setPfnGetInstanceProcAddr( PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr_ ) VULKAN_HPP_NOEXCEPT
  25365. {
  25366. pfnGetInstanceProcAddr = pfnGetInstanceProcAddr_;
  25367. return *this;
  25368. }
  25369. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25370. operator VkDirectDriverLoadingInfoLUNARG const &() const VULKAN_HPP_NOEXCEPT
  25371. {
  25372. return *reinterpret_cast<const VkDirectDriverLoadingInfoLUNARG *>( this );
  25373. }
  25374. operator VkDirectDriverLoadingInfoLUNARG &() VULKAN_HPP_NOEXCEPT
  25375. {
  25376. return *reinterpret_cast<VkDirectDriverLoadingInfoLUNARG *>( this );
  25377. }
  25378. #if defined( VULKAN_HPP_USE_REFLECT )
  25379. # if 14 <= VULKAN_HPP_CPP_VERSION
  25380. auto
  25381. # else
  25382. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  25383. void * const &,
  25384. VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG const &,
  25385. PFN_vkGetInstanceProcAddrLUNARG const &>
  25386. # endif
  25387. reflect() const VULKAN_HPP_NOEXCEPT
  25388. {
  25389. return std::tie( sType, pNext, flags, pfnGetInstanceProcAddr );
  25390. }
  25391. #endif
  25392. bool operator==( DirectDriverLoadingInfoLUNARG const & rhs ) const VULKAN_HPP_NOEXCEPT
  25393. {
  25394. #if defined( VULKAN_HPP_USE_REFLECT )
  25395. return this->reflect() == rhs.reflect();
  25396. #else
  25397. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pfnGetInstanceProcAddr == rhs.pfnGetInstanceProcAddr );
  25398. #endif
  25399. }
  25400. bool operator!=( DirectDriverLoadingInfoLUNARG const & rhs ) const VULKAN_HPP_NOEXCEPT
  25401. {
  25402. return !operator==( rhs );
  25403. }
  25404. public:
  25405. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectDriverLoadingInfoLUNARG;
  25406. void * pNext = {};
  25407. VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG flags = {};
  25408. PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr = {};
  25409. };
  25410. template <>
  25411. struct CppType<StructureType, StructureType::eDirectDriverLoadingInfoLUNARG>
  25412. {
  25413. using Type = DirectDriverLoadingInfoLUNARG;
  25414. };
  25415. struct DirectDriverLoadingListLUNARG
  25416. {
  25417. using NativeType = VkDirectDriverLoadingListLUNARG;
  25418. static const bool allowDuplicate = false;
  25419. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectDriverLoadingListLUNARG;
  25420. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25421. VULKAN_HPP_CONSTEXPR DirectDriverLoadingListLUNARG(
  25422. VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG mode_ = VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG::eExclusive,
  25423. uint32_t driverCount_ = {},
  25424. const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * pDrivers_ = {},
  25425. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25426. : pNext( pNext_ )
  25427. , mode( mode_ )
  25428. , driverCount( driverCount_ )
  25429. , pDrivers( pDrivers_ )
  25430. {
  25431. }
  25432. VULKAN_HPP_CONSTEXPR DirectDriverLoadingListLUNARG( DirectDriverLoadingListLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25433. DirectDriverLoadingListLUNARG( VkDirectDriverLoadingListLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT
  25434. : DirectDriverLoadingListLUNARG( *reinterpret_cast<DirectDriverLoadingListLUNARG const *>( &rhs ) )
  25435. {
  25436. }
  25437. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  25438. DirectDriverLoadingListLUNARG( VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG mode_,
  25439. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG> const & drivers_,
  25440. void * pNext_ = nullptr )
  25441. : pNext( pNext_ ), mode( mode_ ), driverCount( static_cast<uint32_t>( drivers_.size() ) ), pDrivers( drivers_.data() )
  25442. {
  25443. }
  25444. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  25445. DirectDriverLoadingListLUNARG & operator=( DirectDriverLoadingListLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25446. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25447. DirectDriverLoadingListLUNARG & operator=( VkDirectDriverLoadingListLUNARG const & rhs ) VULKAN_HPP_NOEXCEPT
  25448. {
  25449. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG const *>( &rhs );
  25450. return *this;
  25451. }
  25452. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25453. VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingListLUNARG & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25454. {
  25455. pNext = pNext_;
  25456. return *this;
  25457. }
  25458. VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingListLUNARG & setMode( VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG mode_ ) VULKAN_HPP_NOEXCEPT
  25459. {
  25460. mode = mode_;
  25461. return *this;
  25462. }
  25463. VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingListLUNARG & setDriverCount( uint32_t driverCount_ ) VULKAN_HPP_NOEXCEPT
  25464. {
  25465. driverCount = driverCount_;
  25466. return *this;
  25467. }
  25468. VULKAN_HPP_CONSTEXPR_14 DirectDriverLoadingListLUNARG &
  25469. setPDrivers( const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * pDrivers_ ) VULKAN_HPP_NOEXCEPT
  25470. {
  25471. pDrivers = pDrivers_;
  25472. return *this;
  25473. }
  25474. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  25475. DirectDriverLoadingListLUNARG & setDrivers(
  25476. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG> const & drivers_ ) VULKAN_HPP_NOEXCEPT
  25477. {
  25478. driverCount = static_cast<uint32_t>( drivers_.size() );
  25479. pDrivers = drivers_.data();
  25480. return *this;
  25481. }
  25482. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  25483. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25484. operator VkDirectDriverLoadingListLUNARG const &() const VULKAN_HPP_NOEXCEPT
  25485. {
  25486. return *reinterpret_cast<const VkDirectDriverLoadingListLUNARG *>( this );
  25487. }
  25488. operator VkDirectDriverLoadingListLUNARG &() VULKAN_HPP_NOEXCEPT
  25489. {
  25490. return *reinterpret_cast<VkDirectDriverLoadingListLUNARG *>( this );
  25491. }
  25492. #if defined( VULKAN_HPP_USE_REFLECT )
  25493. # if 14 <= VULKAN_HPP_CPP_VERSION
  25494. auto
  25495. # else
  25496. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  25497. void * const &,
  25498. VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG const &,
  25499. uint32_t const &,
  25500. const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * const &>
  25501. # endif
  25502. reflect() const VULKAN_HPP_NOEXCEPT
  25503. {
  25504. return std::tie( sType, pNext, mode, driverCount, pDrivers );
  25505. }
  25506. #endif
  25507. bool operator==( DirectDriverLoadingListLUNARG const & rhs ) const VULKAN_HPP_NOEXCEPT
  25508. {
  25509. #if defined( VULKAN_HPP_USE_REFLECT )
  25510. return this->reflect() == rhs.reflect();
  25511. #else
  25512. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mode == rhs.mode ) && ( driverCount == rhs.driverCount ) && ( pDrivers == rhs.pDrivers );
  25513. #endif
  25514. }
  25515. bool operator!=( DirectDriverLoadingListLUNARG const & rhs ) const VULKAN_HPP_NOEXCEPT
  25516. {
  25517. return !operator==( rhs );
  25518. }
  25519. public:
  25520. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectDriverLoadingListLUNARG;
  25521. void * pNext = {};
  25522. VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG mode = VULKAN_HPP_NAMESPACE::DirectDriverLoadingModeLUNARG::eExclusive;
  25523. uint32_t driverCount = {};
  25524. const VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG * pDrivers = {};
  25525. };
  25526. template <>
  25527. struct CppType<StructureType, StructureType::eDirectDriverLoadingListLUNARG>
  25528. {
  25529. using Type = DirectDriverLoadingListLUNARG;
  25530. };
  25531. #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
  25532. struct DirectFBSurfaceCreateInfoEXT
  25533. {
  25534. using NativeType = VkDirectFBSurfaceCreateInfoEXT;
  25535. static const bool allowDuplicate = false;
  25536. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectfbSurfaceCreateInfoEXT;
  25537. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25538. VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ = {},
  25539. IDirectFB * dfb_ = {},
  25540. IDirectFBSurface * surface_ = {},
  25541. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25542. : pNext( pNext_ )
  25543. , flags( flags_ )
  25544. , dfb( dfb_ )
  25545. , surface( surface_ )
  25546. {
  25547. }
  25548. VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25549. DirectFBSurfaceCreateInfoEXT( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  25550. : DirectFBSurfaceCreateInfoEXT( *reinterpret_cast<DirectFBSurfaceCreateInfoEXT const *>( &rhs ) )
  25551. {
  25552. }
  25553. DirectFBSurfaceCreateInfoEXT & operator=( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25554. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25555. DirectFBSurfaceCreateInfoEXT & operator=( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  25556. {
  25557. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const *>( &rhs );
  25558. return *this;
  25559. }
  25560. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25561. VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25562. {
  25563. pNext = pNext_;
  25564. return *this;
  25565. }
  25566. VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  25567. {
  25568. flags = flags_;
  25569. return *this;
  25570. }
  25571. VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setDfb( IDirectFB * dfb_ ) VULKAN_HPP_NOEXCEPT
  25572. {
  25573. dfb = dfb_;
  25574. return *this;
  25575. }
  25576. VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & setSurface( IDirectFBSurface * surface_ ) VULKAN_HPP_NOEXCEPT
  25577. {
  25578. surface = surface_;
  25579. return *this;
  25580. }
  25581. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25582. operator VkDirectFBSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  25583. {
  25584. return *reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( this );
  25585. }
  25586. operator VkDirectFBSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  25587. {
  25588. return *reinterpret_cast<VkDirectFBSurfaceCreateInfoEXT *>( this );
  25589. }
  25590. # if defined( VULKAN_HPP_USE_REFLECT )
  25591. # if 14 <= VULKAN_HPP_CPP_VERSION
  25592. auto
  25593. # else
  25594. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  25595. const void * const &,
  25596. VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT const &,
  25597. IDirectFB * const &,
  25598. IDirectFBSurface * const &>
  25599. # endif
  25600. reflect() const VULKAN_HPP_NOEXCEPT
  25601. {
  25602. return std::tie( sType, pNext, flags, dfb, surface );
  25603. }
  25604. # endif
  25605. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25606. auto operator<=>( DirectFBSurfaceCreateInfoEXT const & ) const = default;
  25607. # else
  25608. bool operator==( DirectFBSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  25609. {
  25610. # if defined( VULKAN_HPP_USE_REFLECT )
  25611. return this->reflect() == rhs.reflect();
  25612. # else
  25613. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dfb == rhs.dfb ) && ( surface == rhs.surface );
  25614. # endif
  25615. }
  25616. bool operator!=( DirectFBSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  25617. {
  25618. return !operator==( rhs );
  25619. }
  25620. # endif
  25621. public:
  25622. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectfbSurfaceCreateInfoEXT;
  25623. const void * pNext = {};
  25624. VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags = {};
  25625. IDirectFB * dfb = {};
  25626. IDirectFBSurface * surface = {};
  25627. };
  25628. template <>
  25629. struct CppType<StructureType, StructureType::eDirectfbSurfaceCreateInfoEXT>
  25630. {
  25631. using Type = DirectFBSurfaceCreateInfoEXT;
  25632. };
  25633. #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
  25634. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  25635. struct DispatchGraphCountInfoAMDX
  25636. {
  25637. using NativeType = VkDispatchGraphCountInfoAMDX;
  25638. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25639. VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX( uint32_t count_ = {},
  25640. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX infos_ = {},
  25641. uint64_t stride_ = {} ) VULKAN_HPP_NOEXCEPT
  25642. : count( count_ )
  25643. , infos( infos_ )
  25644. , stride( stride_ )
  25645. {
  25646. }
  25647. VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX( DispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25648. DispatchGraphCountInfoAMDX( VkDispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  25649. : DispatchGraphCountInfoAMDX( *reinterpret_cast<DispatchGraphCountInfoAMDX const *>( &rhs ) )
  25650. {
  25651. }
  25652. DispatchGraphCountInfoAMDX & operator=( DispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25653. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25654. DispatchGraphCountInfoAMDX & operator=( VkDispatchGraphCountInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  25655. {
  25656. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX const *>( &rhs );
  25657. return *this;
  25658. }
  25659. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25660. VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX & setCount( uint32_t count_ ) VULKAN_HPP_NOEXCEPT
  25661. {
  25662. count = count_;
  25663. return *this;
  25664. }
  25665. VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX & setInfos( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const & infos_ ) VULKAN_HPP_NOEXCEPT
  25666. {
  25667. infos = infos_;
  25668. return *this;
  25669. }
  25670. VULKAN_HPP_CONSTEXPR_14 DispatchGraphCountInfoAMDX & setStride( uint64_t stride_ ) VULKAN_HPP_NOEXCEPT
  25671. {
  25672. stride = stride_;
  25673. return *this;
  25674. }
  25675. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25676. operator VkDispatchGraphCountInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
  25677. {
  25678. return *reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( this );
  25679. }
  25680. operator VkDispatchGraphCountInfoAMDX &() VULKAN_HPP_NOEXCEPT
  25681. {
  25682. return *reinterpret_cast<VkDispatchGraphCountInfoAMDX *>( this );
  25683. }
  25684. # if defined( VULKAN_HPP_USE_REFLECT )
  25685. # if 14 <= VULKAN_HPP_CPP_VERSION
  25686. auto
  25687. # else
  25688. std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const &, uint64_t const &>
  25689. # endif
  25690. reflect() const VULKAN_HPP_NOEXCEPT
  25691. {
  25692. return std::tie( count, infos, stride );
  25693. }
  25694. # endif
  25695. public:
  25696. uint32_t count = {};
  25697. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX infos = {};
  25698. uint64_t stride = {};
  25699. };
  25700. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  25701. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  25702. struct DispatchGraphInfoAMDX
  25703. {
  25704. using NativeType = VkDispatchGraphInfoAMDX;
  25705. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25706. VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX( uint32_t nodeIndex_ = {},
  25707. uint32_t payloadCount_ = {},
  25708. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX payloads_ = {},
  25709. uint64_t payloadStride_ = {} ) VULKAN_HPP_NOEXCEPT
  25710. : nodeIndex( nodeIndex_ )
  25711. , payloadCount( payloadCount_ )
  25712. , payloads( payloads_ )
  25713. , payloadStride( payloadStride_ )
  25714. {
  25715. }
  25716. VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX( DispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25717. DispatchGraphInfoAMDX( VkDispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  25718. : DispatchGraphInfoAMDX( *reinterpret_cast<DispatchGraphInfoAMDX const *>( &rhs ) )
  25719. {
  25720. }
  25721. DispatchGraphInfoAMDX & operator=( DispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25722. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25723. DispatchGraphInfoAMDX & operator=( VkDispatchGraphInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  25724. {
  25725. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchGraphInfoAMDX const *>( &rhs );
  25726. return *this;
  25727. }
  25728. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25729. VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setNodeIndex( uint32_t nodeIndex_ ) VULKAN_HPP_NOEXCEPT
  25730. {
  25731. nodeIndex = nodeIndex_;
  25732. return *this;
  25733. }
  25734. VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setPayloadCount( uint32_t payloadCount_ ) VULKAN_HPP_NOEXCEPT
  25735. {
  25736. payloadCount = payloadCount_;
  25737. return *this;
  25738. }
  25739. VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setPayloads( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const & payloads_ ) VULKAN_HPP_NOEXCEPT
  25740. {
  25741. payloads = payloads_;
  25742. return *this;
  25743. }
  25744. VULKAN_HPP_CONSTEXPR_14 DispatchGraphInfoAMDX & setPayloadStride( uint64_t payloadStride_ ) VULKAN_HPP_NOEXCEPT
  25745. {
  25746. payloadStride = payloadStride_;
  25747. return *this;
  25748. }
  25749. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25750. operator VkDispatchGraphInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
  25751. {
  25752. return *reinterpret_cast<const VkDispatchGraphInfoAMDX *>( this );
  25753. }
  25754. operator VkDispatchGraphInfoAMDX &() VULKAN_HPP_NOEXCEPT
  25755. {
  25756. return *reinterpret_cast<VkDispatchGraphInfoAMDX *>( this );
  25757. }
  25758. # if defined( VULKAN_HPP_USE_REFLECT )
  25759. # if 14 <= VULKAN_HPP_CPP_VERSION
  25760. auto
  25761. # else
  25762. std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX const &, uint64_t const &>
  25763. # endif
  25764. reflect() const VULKAN_HPP_NOEXCEPT
  25765. {
  25766. return std::tie( nodeIndex, payloadCount, payloads, payloadStride );
  25767. }
  25768. # endif
  25769. public:
  25770. uint32_t nodeIndex = {};
  25771. uint32_t payloadCount = {};
  25772. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstAMDX payloads = {};
  25773. uint64_t payloadStride = {};
  25774. };
  25775. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  25776. struct DispatchIndirectCommand
  25777. {
  25778. using NativeType = VkDispatchIndirectCommand;
  25779. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25780. VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( uint32_t x_ = {}, uint32_t y_ = {}, uint32_t z_ = {} ) VULKAN_HPP_NOEXCEPT
  25781. : x( x_ )
  25782. , y( y_ )
  25783. , z( z_ )
  25784. {
  25785. }
  25786. VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25787. DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
  25788. : DispatchIndirectCommand( *reinterpret_cast<DispatchIndirectCommand const *>( &rhs ) )
  25789. {
  25790. }
  25791. DispatchIndirectCommand & operator=( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25792. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25793. DispatchIndirectCommand & operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
  25794. {
  25795. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DispatchIndirectCommand const *>( &rhs );
  25796. return *this;
  25797. }
  25798. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25799. VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT
  25800. {
  25801. x = x_;
  25802. return *this;
  25803. }
  25804. VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT
  25805. {
  25806. y = y_;
  25807. return *this;
  25808. }
  25809. VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT
  25810. {
  25811. z = z_;
  25812. return *this;
  25813. }
  25814. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25815. operator VkDispatchIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
  25816. {
  25817. return *reinterpret_cast<const VkDispatchIndirectCommand *>( this );
  25818. }
  25819. operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT
  25820. {
  25821. return *reinterpret_cast<VkDispatchIndirectCommand *>( this );
  25822. }
  25823. #if defined( VULKAN_HPP_USE_REFLECT )
  25824. # if 14 <= VULKAN_HPP_CPP_VERSION
  25825. auto
  25826. # else
  25827. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  25828. # endif
  25829. reflect() const VULKAN_HPP_NOEXCEPT
  25830. {
  25831. return std::tie( x, y, z );
  25832. }
  25833. #endif
  25834. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25835. auto operator<=>( DispatchIndirectCommand const & ) const = default;
  25836. #else
  25837. bool operator==( DispatchIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  25838. {
  25839. # if defined( VULKAN_HPP_USE_REFLECT )
  25840. return this->reflect() == rhs.reflect();
  25841. # else
  25842. return ( x == rhs.x ) && ( y == rhs.y ) && ( z == rhs.z );
  25843. # endif
  25844. }
  25845. bool operator!=( DispatchIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  25846. {
  25847. return !operator==( rhs );
  25848. }
  25849. #endif
  25850. public:
  25851. uint32_t x = {};
  25852. uint32_t y = {};
  25853. uint32_t z = {};
  25854. };
  25855. struct DisplayEventInfoEXT
  25856. {
  25857. using NativeType = VkDisplayEventInfoEXT;
  25858. static const bool allowDuplicate = false;
  25859. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayEventInfoEXT;
  25860. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25861. VULKAN_HPP_CONSTEXPR
  25862. DisplayEventInfoEXT( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut,
  25863. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  25864. : pNext( pNext_ )
  25865. , displayEvent( displayEvent_ )
  25866. {
  25867. }
  25868. VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25869. DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DisplayEventInfoEXT( *reinterpret_cast<DisplayEventInfoEXT const *>( &rhs ) )
  25870. {
  25871. }
  25872. DisplayEventInfoEXT & operator=( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25873. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25874. DisplayEventInfoEXT & operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  25875. {
  25876. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const *>( &rhs );
  25877. return *this;
  25878. }
  25879. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25880. VULKAN_HPP_CONSTEXPR_14 DisplayEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  25881. {
  25882. pNext = pNext_;
  25883. return *this;
  25884. }
  25885. VULKAN_HPP_CONSTEXPR_14 DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT
  25886. {
  25887. displayEvent = displayEvent_;
  25888. return *this;
  25889. }
  25890. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25891. operator VkDisplayEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  25892. {
  25893. return *reinterpret_cast<const VkDisplayEventInfoEXT *>( this );
  25894. }
  25895. operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT
  25896. {
  25897. return *reinterpret_cast<VkDisplayEventInfoEXT *>( this );
  25898. }
  25899. #if defined( VULKAN_HPP_USE_REFLECT )
  25900. # if 14 <= VULKAN_HPP_CPP_VERSION
  25901. auto
  25902. # else
  25903. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT const &>
  25904. # endif
  25905. reflect() const VULKAN_HPP_NOEXCEPT
  25906. {
  25907. return std::tie( sType, pNext, displayEvent );
  25908. }
  25909. #endif
  25910. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25911. auto operator<=>( DisplayEventInfoEXT const & ) const = default;
  25912. #else
  25913. bool operator==( DisplayEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  25914. {
  25915. # if defined( VULKAN_HPP_USE_REFLECT )
  25916. return this->reflect() == rhs.reflect();
  25917. # else
  25918. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayEvent == rhs.displayEvent );
  25919. # endif
  25920. }
  25921. bool operator!=( DisplayEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  25922. {
  25923. return !operator==( rhs );
  25924. }
  25925. #endif
  25926. public:
  25927. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT;
  25928. const void * pNext = {};
  25929. VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut;
  25930. };
  25931. template <>
  25932. struct CppType<StructureType, StructureType::eDisplayEventInfoEXT>
  25933. {
  25934. using Type = DisplayEventInfoEXT;
  25935. };
  25936. struct DisplayModeParametersKHR
  25937. {
  25938. using NativeType = VkDisplayModeParametersKHR;
  25939. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  25940. VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, uint32_t refreshRate_ = {} ) VULKAN_HPP_NOEXCEPT
  25941. : visibleRegion( visibleRegion_ )
  25942. , refreshRate( refreshRate_ )
  25943. {
  25944. }
  25945. VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25946. DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  25947. : DisplayModeParametersKHR( *reinterpret_cast<DisplayModeParametersKHR const *>( &rhs ) )
  25948. {
  25949. }
  25950. DisplayModeParametersKHR & operator=( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  25951. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  25952. DisplayModeParametersKHR & operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  25953. {
  25954. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const *>( &rhs );
  25955. return *this;
  25956. }
  25957. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  25958. VULKAN_HPP_CONSTEXPR_14 DisplayModeParametersKHR & setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT
  25959. {
  25960. visibleRegion = visibleRegion_;
  25961. return *this;
  25962. }
  25963. VULKAN_HPP_CONSTEXPR_14 DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT
  25964. {
  25965. refreshRate = refreshRate_;
  25966. return *this;
  25967. }
  25968. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  25969. operator VkDisplayModeParametersKHR const &() const VULKAN_HPP_NOEXCEPT
  25970. {
  25971. return *reinterpret_cast<const VkDisplayModeParametersKHR *>( this );
  25972. }
  25973. operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT
  25974. {
  25975. return *reinterpret_cast<VkDisplayModeParametersKHR *>( this );
  25976. }
  25977. #if defined( VULKAN_HPP_USE_REFLECT )
  25978. # if 14 <= VULKAN_HPP_CPP_VERSION
  25979. auto
  25980. # else
  25981. std::tuple<VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &>
  25982. # endif
  25983. reflect() const VULKAN_HPP_NOEXCEPT
  25984. {
  25985. return std::tie( visibleRegion, refreshRate );
  25986. }
  25987. #endif
  25988. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  25989. auto operator<=>( DisplayModeParametersKHR const & ) const = default;
  25990. #else
  25991. bool operator==( DisplayModeParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  25992. {
  25993. # if defined( VULKAN_HPP_USE_REFLECT )
  25994. return this->reflect() == rhs.reflect();
  25995. # else
  25996. return ( visibleRegion == rhs.visibleRegion ) && ( refreshRate == rhs.refreshRate );
  25997. # endif
  25998. }
  25999. bool operator!=( DisplayModeParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26000. {
  26001. return !operator==( rhs );
  26002. }
  26003. #endif
  26004. public:
  26005. VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {};
  26006. uint32_t refreshRate = {};
  26007. };
  26008. struct DisplayModeCreateInfoKHR
  26009. {
  26010. using NativeType = VkDisplayModeCreateInfoKHR;
  26011. static const bool allowDuplicate = false;
  26012. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeCreateInfoKHR;
  26013. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26014. VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {},
  26015. VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {},
  26016. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26017. : pNext( pNext_ )
  26018. , flags( flags_ )
  26019. , parameters( parameters_ )
  26020. {
  26021. }
  26022. VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26023. DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26024. : DisplayModeCreateInfoKHR( *reinterpret_cast<DisplayModeCreateInfoKHR const *>( &rhs ) )
  26025. {
  26026. }
  26027. DisplayModeCreateInfoKHR & operator=( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26028. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26029. DisplayModeCreateInfoKHR & operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26030. {
  26031. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const *>( &rhs );
  26032. return *this;
  26033. }
  26034. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  26035. VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  26036. {
  26037. pNext = pNext_;
  26038. return *this;
  26039. }
  26040. VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  26041. {
  26042. flags = flags_;
  26043. return *this;
  26044. }
  26045. VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & parameters_ ) VULKAN_HPP_NOEXCEPT
  26046. {
  26047. parameters = parameters_;
  26048. return *this;
  26049. }
  26050. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  26051. operator VkDisplayModeCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  26052. {
  26053. return *reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( this );
  26054. }
  26055. operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  26056. {
  26057. return *reinterpret_cast<VkDisplayModeCreateInfoKHR *>( this );
  26058. }
  26059. #if defined( VULKAN_HPP_USE_REFLECT )
  26060. # if 14 <= VULKAN_HPP_CPP_VERSION
  26061. auto
  26062. # else
  26063. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  26064. const void * const &,
  26065. VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR const &,
  26066. VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const &>
  26067. # endif
  26068. reflect() const VULKAN_HPP_NOEXCEPT
  26069. {
  26070. return std::tie( sType, pNext, flags, parameters );
  26071. }
  26072. #endif
  26073. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26074. auto operator<=>( DisplayModeCreateInfoKHR const & ) const = default;
  26075. #else
  26076. bool operator==( DisplayModeCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26077. {
  26078. # if defined( VULKAN_HPP_USE_REFLECT )
  26079. return this->reflect() == rhs.reflect();
  26080. # else
  26081. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( parameters == rhs.parameters );
  26082. # endif
  26083. }
  26084. bool operator!=( DisplayModeCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26085. {
  26086. return !operator==( rhs );
  26087. }
  26088. #endif
  26089. public:
  26090. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR;
  26091. const void * pNext = {};
  26092. VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {};
  26093. VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
  26094. };
  26095. template <>
  26096. struct CppType<StructureType, StructureType::eDisplayModeCreateInfoKHR>
  26097. {
  26098. using Type = DisplayModeCreateInfoKHR;
  26099. };
  26100. struct DisplayModePropertiesKHR
  26101. {
  26102. using NativeType = VkDisplayModePropertiesKHR;
  26103. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26104. VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {},
  26105. VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {} ) VULKAN_HPP_NOEXCEPT
  26106. : displayMode( displayMode_ )
  26107. , parameters( parameters_ )
  26108. {
  26109. }
  26110. VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26111. DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26112. : DisplayModePropertiesKHR( *reinterpret_cast<DisplayModePropertiesKHR const *>( &rhs ) )
  26113. {
  26114. }
  26115. DisplayModePropertiesKHR & operator=( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26116. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26117. DisplayModePropertiesKHR & operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26118. {
  26119. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const *>( &rhs );
  26120. return *this;
  26121. }
  26122. operator VkDisplayModePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  26123. {
  26124. return *reinterpret_cast<const VkDisplayModePropertiesKHR *>( this );
  26125. }
  26126. operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  26127. {
  26128. return *reinterpret_cast<VkDisplayModePropertiesKHR *>( this );
  26129. }
  26130. #if defined( VULKAN_HPP_USE_REFLECT )
  26131. # if 14 <= VULKAN_HPP_CPP_VERSION
  26132. auto
  26133. # else
  26134. std::tuple<VULKAN_HPP_NAMESPACE::DisplayModeKHR const &, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const &>
  26135. # endif
  26136. reflect() const VULKAN_HPP_NOEXCEPT
  26137. {
  26138. return std::tie( displayMode, parameters );
  26139. }
  26140. #endif
  26141. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26142. auto operator<=>( DisplayModePropertiesKHR const & ) const = default;
  26143. #else
  26144. bool operator==( DisplayModePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26145. {
  26146. # if defined( VULKAN_HPP_USE_REFLECT )
  26147. return this->reflect() == rhs.reflect();
  26148. # else
  26149. return ( displayMode == rhs.displayMode ) && ( parameters == rhs.parameters );
  26150. # endif
  26151. }
  26152. bool operator!=( DisplayModePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26153. {
  26154. return !operator==( rhs );
  26155. }
  26156. #endif
  26157. public:
  26158. VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
  26159. VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {};
  26160. };
  26161. struct DisplayModeProperties2KHR
  26162. {
  26163. using NativeType = VkDisplayModeProperties2KHR;
  26164. static const bool allowDuplicate = false;
  26165. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeProperties2KHR;
  26166. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26167. VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {},
  26168. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26169. : pNext( pNext_ )
  26170. , displayModeProperties( displayModeProperties_ )
  26171. {
  26172. }
  26173. VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26174. DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26175. : DisplayModeProperties2KHR( *reinterpret_cast<DisplayModeProperties2KHR const *>( &rhs ) )
  26176. {
  26177. }
  26178. DisplayModeProperties2KHR & operator=( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26179. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26180. DisplayModeProperties2KHR & operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26181. {
  26182. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR const *>( &rhs );
  26183. return *this;
  26184. }
  26185. operator VkDisplayModeProperties2KHR const &() const VULKAN_HPP_NOEXCEPT
  26186. {
  26187. return *reinterpret_cast<const VkDisplayModeProperties2KHR *>( this );
  26188. }
  26189. operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT
  26190. {
  26191. return *reinterpret_cast<VkDisplayModeProperties2KHR *>( this );
  26192. }
  26193. #if defined( VULKAN_HPP_USE_REFLECT )
  26194. # if 14 <= VULKAN_HPP_CPP_VERSION
  26195. auto
  26196. # else
  26197. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const &>
  26198. # endif
  26199. reflect() const VULKAN_HPP_NOEXCEPT
  26200. {
  26201. return std::tie( sType, pNext, displayModeProperties );
  26202. }
  26203. #endif
  26204. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26205. auto operator<=>( DisplayModeProperties2KHR const & ) const = default;
  26206. #else
  26207. bool operator==( DisplayModeProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26208. {
  26209. # if defined( VULKAN_HPP_USE_REFLECT )
  26210. return this->reflect() == rhs.reflect();
  26211. # else
  26212. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayModeProperties == rhs.displayModeProperties );
  26213. # endif
  26214. }
  26215. bool operator!=( DisplayModeProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26216. {
  26217. return !operator==( rhs );
  26218. }
  26219. #endif
  26220. public:
  26221. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR;
  26222. void * pNext = {};
  26223. VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {};
  26224. };
  26225. template <>
  26226. struct CppType<StructureType, StructureType::eDisplayModeProperties2KHR>
  26227. {
  26228. using Type = DisplayModeProperties2KHR;
  26229. };
  26230. struct DisplayNativeHdrSurfaceCapabilitiesAMD
  26231. {
  26232. using NativeType = VkDisplayNativeHdrSurfaceCapabilitiesAMD;
  26233. static const bool allowDuplicate = false;
  26234. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
  26235. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26236. VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {},
  26237. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26238. : pNext( pNext_ )
  26239. , localDimmingSupport( localDimmingSupport_ )
  26240. {
  26241. }
  26242. VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26243. DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  26244. : DisplayNativeHdrSurfaceCapabilitiesAMD( *reinterpret_cast<DisplayNativeHdrSurfaceCapabilitiesAMD const *>( &rhs ) )
  26245. {
  26246. }
  26247. DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26248. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26249. DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  26250. {
  26251. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD const *>( &rhs );
  26252. return *this;
  26253. }
  26254. operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const &() const VULKAN_HPP_NOEXCEPT
  26255. {
  26256. return *reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD *>( this );
  26257. }
  26258. operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT
  26259. {
  26260. return *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD *>( this );
  26261. }
  26262. #if defined( VULKAN_HPP_USE_REFLECT )
  26263. # if 14 <= VULKAN_HPP_CPP_VERSION
  26264. auto
  26265. # else
  26266. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  26267. # endif
  26268. reflect() const VULKAN_HPP_NOEXCEPT
  26269. {
  26270. return std::tie( sType, pNext, localDimmingSupport );
  26271. }
  26272. #endif
  26273. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26274. auto operator<=>( DisplayNativeHdrSurfaceCapabilitiesAMD const & ) const = default;
  26275. #else
  26276. bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  26277. {
  26278. # if defined( VULKAN_HPP_USE_REFLECT )
  26279. return this->reflect() == rhs.reflect();
  26280. # else
  26281. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( localDimmingSupport == rhs.localDimmingSupport );
  26282. # endif
  26283. }
  26284. bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  26285. {
  26286. return !operator==( rhs );
  26287. }
  26288. #endif
  26289. public:
  26290. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
  26291. void * pNext = {};
  26292. VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {};
  26293. };
  26294. template <>
  26295. struct CppType<StructureType, StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD>
  26296. {
  26297. using Type = DisplayNativeHdrSurfaceCapabilitiesAMD;
  26298. };
  26299. struct DisplayPlaneCapabilitiesKHR
  26300. {
  26301. using NativeType = VkDisplayPlaneCapabilitiesKHR;
  26302. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26303. VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha_ = {},
  26304. VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition_ = {},
  26305. VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition_ = {},
  26306. VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent_ = {},
  26307. VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent_ = {},
  26308. VULKAN_HPP_NAMESPACE::Offset2D minDstPosition_ = {},
  26309. VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition_ = {},
  26310. VULKAN_HPP_NAMESPACE::Extent2D minDstExtent_ = {},
  26311. VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent_ = {} ) VULKAN_HPP_NOEXCEPT
  26312. : supportedAlpha( supportedAlpha_ )
  26313. , minSrcPosition( minSrcPosition_ )
  26314. , maxSrcPosition( maxSrcPosition_ )
  26315. , minSrcExtent( minSrcExtent_ )
  26316. , maxSrcExtent( maxSrcExtent_ )
  26317. , minDstPosition( minDstPosition_ )
  26318. , maxDstPosition( maxDstPosition_ )
  26319. , minDstExtent( minDstExtent_ )
  26320. , maxDstExtent( maxDstExtent_ )
  26321. {
  26322. }
  26323. VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26324. DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26325. : DisplayPlaneCapabilitiesKHR( *reinterpret_cast<DisplayPlaneCapabilitiesKHR const *>( &rhs ) )
  26326. {
  26327. }
  26328. DisplayPlaneCapabilitiesKHR & operator=( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26329. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26330. DisplayPlaneCapabilitiesKHR & operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26331. {
  26332. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const *>( &rhs );
  26333. return *this;
  26334. }
  26335. operator VkDisplayPlaneCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  26336. {
  26337. return *reinterpret_cast<const VkDisplayPlaneCapabilitiesKHR *>( this );
  26338. }
  26339. operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  26340. {
  26341. return *reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( this );
  26342. }
  26343. #if defined( VULKAN_HPP_USE_REFLECT )
  26344. # if 14 <= VULKAN_HPP_CPP_VERSION
  26345. auto
  26346. # else
  26347. std::tuple<VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR const &,
  26348. VULKAN_HPP_NAMESPACE::Offset2D const &,
  26349. VULKAN_HPP_NAMESPACE::Offset2D const &,
  26350. VULKAN_HPP_NAMESPACE::Extent2D const &,
  26351. VULKAN_HPP_NAMESPACE::Extent2D const &,
  26352. VULKAN_HPP_NAMESPACE::Offset2D const &,
  26353. VULKAN_HPP_NAMESPACE::Offset2D const &,
  26354. VULKAN_HPP_NAMESPACE::Extent2D const &,
  26355. VULKAN_HPP_NAMESPACE::Extent2D const &>
  26356. # endif
  26357. reflect() const VULKAN_HPP_NOEXCEPT
  26358. {
  26359. return std::tie( supportedAlpha, minSrcPosition, maxSrcPosition, minSrcExtent, maxSrcExtent, minDstPosition, maxDstPosition, minDstExtent, maxDstExtent );
  26360. }
  26361. #endif
  26362. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26363. auto operator<=>( DisplayPlaneCapabilitiesKHR const & ) const = default;
  26364. #else
  26365. bool operator==( DisplayPlaneCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26366. {
  26367. # if defined( VULKAN_HPP_USE_REFLECT )
  26368. return this->reflect() == rhs.reflect();
  26369. # else
  26370. return ( supportedAlpha == rhs.supportedAlpha ) && ( minSrcPosition == rhs.minSrcPosition ) && ( maxSrcPosition == rhs.maxSrcPosition ) &&
  26371. ( minSrcExtent == rhs.minSrcExtent ) && ( maxSrcExtent == rhs.maxSrcExtent ) && ( minDstPosition == rhs.minDstPosition ) &&
  26372. ( maxDstPosition == rhs.maxDstPosition ) && ( minDstExtent == rhs.minDstExtent ) && ( maxDstExtent == rhs.maxDstExtent );
  26373. # endif
  26374. }
  26375. bool operator!=( DisplayPlaneCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26376. {
  26377. return !operator==( rhs );
  26378. }
  26379. #endif
  26380. public:
  26381. VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {};
  26382. VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {};
  26383. VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {};
  26384. VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {};
  26385. VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {};
  26386. VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {};
  26387. VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {};
  26388. VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {};
  26389. VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {};
  26390. };
  26391. struct DisplayPlaneCapabilities2KHR
  26392. {
  26393. using NativeType = VkDisplayPlaneCapabilities2KHR;
  26394. static const bool allowDuplicate = false;
  26395. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneCapabilities2KHR;
  26396. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26397. VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {},
  26398. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26399. : pNext( pNext_ )
  26400. , capabilities( capabilities_ )
  26401. {
  26402. }
  26403. VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26404. DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26405. : DisplayPlaneCapabilities2KHR( *reinterpret_cast<DisplayPlaneCapabilities2KHR const *>( &rhs ) )
  26406. {
  26407. }
  26408. DisplayPlaneCapabilities2KHR & operator=( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26409. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26410. DisplayPlaneCapabilities2KHR & operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26411. {
  26412. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR const *>( &rhs );
  26413. return *this;
  26414. }
  26415. operator VkDisplayPlaneCapabilities2KHR const &() const VULKAN_HPP_NOEXCEPT
  26416. {
  26417. return *reinterpret_cast<const VkDisplayPlaneCapabilities2KHR *>( this );
  26418. }
  26419. operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
  26420. {
  26421. return *reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( this );
  26422. }
  26423. #if defined( VULKAN_HPP_USE_REFLECT )
  26424. # if 14 <= VULKAN_HPP_CPP_VERSION
  26425. auto
  26426. # else
  26427. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const &>
  26428. # endif
  26429. reflect() const VULKAN_HPP_NOEXCEPT
  26430. {
  26431. return std::tie( sType, pNext, capabilities );
  26432. }
  26433. #endif
  26434. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26435. auto operator<=>( DisplayPlaneCapabilities2KHR const & ) const = default;
  26436. #else
  26437. bool operator==( DisplayPlaneCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26438. {
  26439. # if defined( VULKAN_HPP_USE_REFLECT )
  26440. return this->reflect() == rhs.reflect();
  26441. # else
  26442. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( capabilities == rhs.capabilities );
  26443. # endif
  26444. }
  26445. bool operator!=( DisplayPlaneCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26446. {
  26447. return !operator==( rhs );
  26448. }
  26449. #endif
  26450. public:
  26451. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR;
  26452. void * pNext = {};
  26453. VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {};
  26454. };
  26455. template <>
  26456. struct CppType<StructureType, StructureType::eDisplayPlaneCapabilities2KHR>
  26457. {
  26458. using Type = DisplayPlaneCapabilities2KHR;
  26459. };
  26460. struct DisplayPlaneInfo2KHR
  26461. {
  26462. using NativeType = VkDisplayPlaneInfo2KHR;
  26463. static const bool allowDuplicate = false;
  26464. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneInfo2KHR;
  26465. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26466. VULKAN_HPP_CONSTEXPR
  26467. DisplayPlaneInfo2KHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, uint32_t planeIndex_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26468. : pNext( pNext_ )
  26469. , mode( mode_ )
  26470. , planeIndex( planeIndex_ )
  26471. {
  26472. }
  26473. VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26474. DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26475. : DisplayPlaneInfo2KHR( *reinterpret_cast<DisplayPlaneInfo2KHR const *>( &rhs ) )
  26476. {
  26477. }
  26478. DisplayPlaneInfo2KHR & operator=( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26479. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26480. DisplayPlaneInfo2KHR & operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26481. {
  26482. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR const *>( &rhs );
  26483. return *this;
  26484. }
  26485. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  26486. VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  26487. {
  26488. pNext = pNext_;
  26489. return *this;
  26490. }
  26491. VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT
  26492. {
  26493. mode = mode_;
  26494. return *this;
  26495. }
  26496. VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
  26497. {
  26498. planeIndex = planeIndex_;
  26499. return *this;
  26500. }
  26501. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  26502. operator VkDisplayPlaneInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
  26503. {
  26504. return *reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( this );
  26505. }
  26506. operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT
  26507. {
  26508. return *reinterpret_cast<VkDisplayPlaneInfo2KHR *>( this );
  26509. }
  26510. #if defined( VULKAN_HPP_USE_REFLECT )
  26511. # if 14 <= VULKAN_HPP_CPP_VERSION
  26512. auto
  26513. # else
  26514. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DisplayModeKHR const &, uint32_t const &>
  26515. # endif
  26516. reflect() const VULKAN_HPP_NOEXCEPT
  26517. {
  26518. return std::tie( sType, pNext, mode, planeIndex );
  26519. }
  26520. #endif
  26521. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26522. auto operator<=>( DisplayPlaneInfo2KHR const & ) const = default;
  26523. #else
  26524. bool operator==( DisplayPlaneInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26525. {
  26526. # if defined( VULKAN_HPP_USE_REFLECT )
  26527. return this->reflect() == rhs.reflect();
  26528. # else
  26529. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mode == rhs.mode ) && ( planeIndex == rhs.planeIndex );
  26530. # endif
  26531. }
  26532. bool operator!=( DisplayPlaneInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26533. {
  26534. return !operator==( rhs );
  26535. }
  26536. #endif
  26537. public:
  26538. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR;
  26539. const void * pNext = {};
  26540. VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {};
  26541. uint32_t planeIndex = {};
  26542. };
  26543. template <>
  26544. struct CppType<StructureType, StructureType::eDisplayPlaneInfo2KHR>
  26545. {
  26546. using Type = DisplayPlaneInfo2KHR;
  26547. };
  26548. struct DisplayPlanePropertiesKHR
  26549. {
  26550. using NativeType = VkDisplayPlanePropertiesKHR;
  26551. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26552. VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {},
  26553. uint32_t currentStackIndex_ = {} ) VULKAN_HPP_NOEXCEPT
  26554. : currentDisplay( currentDisplay_ )
  26555. , currentStackIndex( currentStackIndex_ )
  26556. {
  26557. }
  26558. VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26559. DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26560. : DisplayPlanePropertiesKHR( *reinterpret_cast<DisplayPlanePropertiesKHR const *>( &rhs ) )
  26561. {
  26562. }
  26563. DisplayPlanePropertiesKHR & operator=( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26564. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26565. DisplayPlanePropertiesKHR & operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26566. {
  26567. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const *>( &rhs );
  26568. return *this;
  26569. }
  26570. operator VkDisplayPlanePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  26571. {
  26572. return *reinterpret_cast<const VkDisplayPlanePropertiesKHR *>( this );
  26573. }
  26574. operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  26575. {
  26576. return *reinterpret_cast<VkDisplayPlanePropertiesKHR *>( this );
  26577. }
  26578. #if defined( VULKAN_HPP_USE_REFLECT )
  26579. # if 14 <= VULKAN_HPP_CPP_VERSION
  26580. auto
  26581. # else
  26582. std::tuple<VULKAN_HPP_NAMESPACE::DisplayKHR const &, uint32_t const &>
  26583. # endif
  26584. reflect() const VULKAN_HPP_NOEXCEPT
  26585. {
  26586. return std::tie( currentDisplay, currentStackIndex );
  26587. }
  26588. #endif
  26589. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26590. auto operator<=>( DisplayPlanePropertiesKHR const & ) const = default;
  26591. #else
  26592. bool operator==( DisplayPlanePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26593. {
  26594. # if defined( VULKAN_HPP_USE_REFLECT )
  26595. return this->reflect() == rhs.reflect();
  26596. # else
  26597. return ( currentDisplay == rhs.currentDisplay ) && ( currentStackIndex == rhs.currentStackIndex );
  26598. # endif
  26599. }
  26600. bool operator!=( DisplayPlanePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26601. {
  26602. return !operator==( rhs );
  26603. }
  26604. #endif
  26605. public:
  26606. VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {};
  26607. uint32_t currentStackIndex = {};
  26608. };
  26609. struct DisplayPlaneProperties2KHR
  26610. {
  26611. using NativeType = VkDisplayPlaneProperties2KHR;
  26612. static const bool allowDuplicate = false;
  26613. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneProperties2KHR;
  26614. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26615. VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {},
  26616. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26617. : pNext( pNext_ )
  26618. , displayPlaneProperties( displayPlaneProperties_ )
  26619. {
  26620. }
  26621. VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26622. DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26623. : DisplayPlaneProperties2KHR( *reinterpret_cast<DisplayPlaneProperties2KHR const *>( &rhs ) )
  26624. {
  26625. }
  26626. DisplayPlaneProperties2KHR & operator=( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26627. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26628. DisplayPlaneProperties2KHR & operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26629. {
  26630. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR const *>( &rhs );
  26631. return *this;
  26632. }
  26633. operator VkDisplayPlaneProperties2KHR const &() const VULKAN_HPP_NOEXCEPT
  26634. {
  26635. return *reinterpret_cast<const VkDisplayPlaneProperties2KHR *>( this );
  26636. }
  26637. operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT
  26638. {
  26639. return *reinterpret_cast<VkDisplayPlaneProperties2KHR *>( this );
  26640. }
  26641. #if defined( VULKAN_HPP_USE_REFLECT )
  26642. # if 14 <= VULKAN_HPP_CPP_VERSION
  26643. auto
  26644. # else
  26645. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const &>
  26646. # endif
  26647. reflect() const VULKAN_HPP_NOEXCEPT
  26648. {
  26649. return std::tie( sType, pNext, displayPlaneProperties );
  26650. }
  26651. #endif
  26652. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26653. auto operator<=>( DisplayPlaneProperties2KHR const & ) const = default;
  26654. #else
  26655. bool operator==( DisplayPlaneProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26656. {
  26657. # if defined( VULKAN_HPP_USE_REFLECT )
  26658. return this->reflect() == rhs.reflect();
  26659. # else
  26660. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayPlaneProperties == rhs.displayPlaneProperties );
  26661. # endif
  26662. }
  26663. bool operator!=( DisplayPlaneProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26664. {
  26665. return !operator==( rhs );
  26666. }
  26667. #endif
  26668. public:
  26669. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR;
  26670. void * pNext = {};
  26671. VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {};
  26672. };
  26673. template <>
  26674. struct CppType<StructureType, StructureType::eDisplayPlaneProperties2KHR>
  26675. {
  26676. using Type = DisplayPlaneProperties2KHR;
  26677. };
  26678. struct DisplayPowerInfoEXT
  26679. {
  26680. using NativeType = VkDisplayPowerInfoEXT;
  26681. static const bool allowDuplicate = false;
  26682. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPowerInfoEXT;
  26683. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26684. VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff,
  26685. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26686. : pNext( pNext_ )
  26687. , powerState( powerState_ )
  26688. {
  26689. }
  26690. VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26691. DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DisplayPowerInfoEXT( *reinterpret_cast<DisplayPowerInfoEXT const *>( &rhs ) )
  26692. {
  26693. }
  26694. DisplayPowerInfoEXT & operator=( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26695. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26696. DisplayPowerInfoEXT & operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  26697. {
  26698. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT const *>( &rhs );
  26699. return *this;
  26700. }
  26701. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  26702. VULKAN_HPP_CONSTEXPR_14 DisplayPowerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  26703. {
  26704. pNext = pNext_;
  26705. return *this;
  26706. }
  26707. VULKAN_HPP_CONSTEXPR_14 DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT
  26708. {
  26709. powerState = powerState_;
  26710. return *this;
  26711. }
  26712. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  26713. operator VkDisplayPowerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  26714. {
  26715. return *reinterpret_cast<const VkDisplayPowerInfoEXT *>( this );
  26716. }
  26717. operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT
  26718. {
  26719. return *reinterpret_cast<VkDisplayPowerInfoEXT *>( this );
  26720. }
  26721. #if defined( VULKAN_HPP_USE_REFLECT )
  26722. # if 14 <= VULKAN_HPP_CPP_VERSION
  26723. auto
  26724. # else
  26725. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT const &>
  26726. # endif
  26727. reflect() const VULKAN_HPP_NOEXCEPT
  26728. {
  26729. return std::tie( sType, pNext, powerState );
  26730. }
  26731. #endif
  26732. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26733. auto operator<=>( DisplayPowerInfoEXT const & ) const = default;
  26734. #else
  26735. bool operator==( DisplayPowerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  26736. {
  26737. # if defined( VULKAN_HPP_USE_REFLECT )
  26738. return this->reflect() == rhs.reflect();
  26739. # else
  26740. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( powerState == rhs.powerState );
  26741. # endif
  26742. }
  26743. bool operator!=( DisplayPowerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  26744. {
  26745. return !operator==( rhs );
  26746. }
  26747. #endif
  26748. public:
  26749. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT;
  26750. const void * pNext = {};
  26751. VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff;
  26752. };
  26753. template <>
  26754. struct CppType<StructureType, StructureType::eDisplayPowerInfoEXT>
  26755. {
  26756. using Type = DisplayPowerInfoEXT;
  26757. };
  26758. struct DisplayPresentInfoKHR
  26759. {
  26760. using NativeType = VkDisplayPresentInfoKHR;
  26761. static const bool allowDuplicate = false;
  26762. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPresentInfoKHR;
  26763. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26764. VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {},
  26765. VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {},
  26766. VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {},
  26767. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26768. : pNext( pNext_ )
  26769. , srcRect( srcRect_ )
  26770. , dstRect( dstRect_ )
  26771. , persistent( persistent_ )
  26772. {
  26773. }
  26774. VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26775. DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26776. : DisplayPresentInfoKHR( *reinterpret_cast<DisplayPresentInfoKHR const *>( &rhs ) )
  26777. {
  26778. }
  26779. DisplayPresentInfoKHR & operator=( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26780. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26781. DisplayPresentInfoKHR & operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26782. {
  26783. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR const *>( &rhs );
  26784. return *this;
  26785. }
  26786. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  26787. VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  26788. {
  26789. pNext = pNext_;
  26790. return *this;
  26791. }
  26792. VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D const & srcRect_ ) VULKAN_HPP_NOEXCEPT
  26793. {
  26794. srcRect = srcRect_;
  26795. return *this;
  26796. }
  26797. VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D const & dstRect_ ) VULKAN_HPP_NOEXCEPT
  26798. {
  26799. dstRect = dstRect_;
  26800. return *this;
  26801. }
  26802. VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT
  26803. {
  26804. persistent = persistent_;
  26805. return *this;
  26806. }
  26807. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  26808. operator VkDisplayPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  26809. {
  26810. return *reinterpret_cast<const VkDisplayPresentInfoKHR *>( this );
  26811. }
  26812. operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
  26813. {
  26814. return *reinterpret_cast<VkDisplayPresentInfoKHR *>( this );
  26815. }
  26816. #if defined( VULKAN_HPP_USE_REFLECT )
  26817. # if 14 <= VULKAN_HPP_CPP_VERSION
  26818. auto
  26819. # else
  26820. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  26821. const void * const &,
  26822. VULKAN_HPP_NAMESPACE::Rect2D const &,
  26823. VULKAN_HPP_NAMESPACE::Rect2D const &,
  26824. VULKAN_HPP_NAMESPACE::Bool32 const &>
  26825. # endif
  26826. reflect() const VULKAN_HPP_NOEXCEPT
  26827. {
  26828. return std::tie( sType, pNext, srcRect, dstRect, persistent );
  26829. }
  26830. #endif
  26831. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26832. auto operator<=>( DisplayPresentInfoKHR const & ) const = default;
  26833. #else
  26834. bool operator==( DisplayPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26835. {
  26836. # if defined( VULKAN_HPP_USE_REFLECT )
  26837. return this->reflect() == rhs.reflect();
  26838. # else
  26839. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcRect == rhs.srcRect ) && ( dstRect == rhs.dstRect ) && ( persistent == rhs.persistent );
  26840. # endif
  26841. }
  26842. bool operator!=( DisplayPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26843. {
  26844. return !operator==( rhs );
  26845. }
  26846. #endif
  26847. public:
  26848. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR;
  26849. const void * pNext = {};
  26850. VULKAN_HPP_NAMESPACE::Rect2D srcRect = {};
  26851. VULKAN_HPP_NAMESPACE::Rect2D dstRect = {};
  26852. VULKAN_HPP_NAMESPACE::Bool32 persistent = {};
  26853. };
  26854. template <>
  26855. struct CppType<StructureType, StructureType::eDisplayPresentInfoKHR>
  26856. {
  26857. using Type = DisplayPresentInfoKHR;
  26858. };
  26859. struct DisplayPropertiesKHR
  26860. {
  26861. using NativeType = VkDisplayPropertiesKHR;
  26862. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26863. VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display_ = {},
  26864. const char * displayName_ = {},
  26865. VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions_ = {},
  26866. VULKAN_HPP_NAMESPACE::Extent2D physicalResolution_ = {},
  26867. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {},
  26868. VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible_ = {},
  26869. VULKAN_HPP_NAMESPACE::Bool32 persistentContent_ = {} ) VULKAN_HPP_NOEXCEPT
  26870. : display( display_ )
  26871. , displayName( displayName_ )
  26872. , physicalDimensions( physicalDimensions_ )
  26873. , physicalResolution( physicalResolution_ )
  26874. , supportedTransforms( supportedTransforms_ )
  26875. , planeReorderPossible( planeReorderPossible_ )
  26876. , persistentContent( persistentContent_ )
  26877. {
  26878. }
  26879. VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26880. DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26881. : DisplayPropertiesKHR( *reinterpret_cast<DisplayPropertiesKHR const *>( &rhs ) )
  26882. {
  26883. }
  26884. DisplayPropertiesKHR & operator=( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26885. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26886. DisplayPropertiesKHR & operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26887. {
  26888. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const *>( &rhs );
  26889. return *this;
  26890. }
  26891. operator VkDisplayPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  26892. {
  26893. return *reinterpret_cast<const VkDisplayPropertiesKHR *>( this );
  26894. }
  26895. operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  26896. {
  26897. return *reinterpret_cast<VkDisplayPropertiesKHR *>( this );
  26898. }
  26899. #if defined( VULKAN_HPP_USE_REFLECT )
  26900. # if 14 <= VULKAN_HPP_CPP_VERSION
  26901. auto
  26902. # else
  26903. std::tuple<VULKAN_HPP_NAMESPACE::DisplayKHR const &,
  26904. const char * const &,
  26905. VULKAN_HPP_NAMESPACE::Extent2D const &,
  26906. VULKAN_HPP_NAMESPACE::Extent2D const &,
  26907. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR const &,
  26908. VULKAN_HPP_NAMESPACE::Bool32 const &,
  26909. VULKAN_HPP_NAMESPACE::Bool32 const &>
  26910. # endif
  26911. reflect() const VULKAN_HPP_NOEXCEPT
  26912. {
  26913. return std::tie( display, displayName, physicalDimensions, physicalResolution, supportedTransforms, planeReorderPossible, persistentContent );
  26914. }
  26915. #endif
  26916. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  26917. std::strong_ordering operator<=>( DisplayPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26918. {
  26919. if ( auto cmp = display <=> rhs.display; cmp != 0 )
  26920. return cmp;
  26921. if ( displayName != rhs.displayName )
  26922. if ( auto cmp = strcmp( displayName, rhs.displayName ); cmp != 0 )
  26923. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  26924. if ( auto cmp = physicalDimensions <=> rhs.physicalDimensions; cmp != 0 )
  26925. return cmp;
  26926. if ( auto cmp = physicalResolution <=> rhs.physicalResolution; cmp != 0 )
  26927. return cmp;
  26928. if ( auto cmp = supportedTransforms <=> rhs.supportedTransforms; cmp != 0 )
  26929. return cmp;
  26930. if ( auto cmp = planeReorderPossible <=> rhs.planeReorderPossible; cmp != 0 )
  26931. return cmp;
  26932. if ( auto cmp = persistentContent <=> rhs.persistentContent; cmp != 0 )
  26933. return cmp;
  26934. return std::strong_ordering::equivalent;
  26935. }
  26936. #endif
  26937. bool operator==( DisplayPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26938. {
  26939. return ( display == rhs.display ) && ( ( displayName == rhs.displayName ) || ( strcmp( displayName, rhs.displayName ) == 0 ) ) &&
  26940. ( physicalDimensions == rhs.physicalDimensions ) && ( physicalResolution == rhs.physicalResolution ) &&
  26941. ( supportedTransforms == rhs.supportedTransforms ) && ( planeReorderPossible == rhs.planeReorderPossible ) &&
  26942. ( persistentContent == rhs.persistentContent );
  26943. }
  26944. bool operator!=( DisplayPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  26945. {
  26946. return !operator==( rhs );
  26947. }
  26948. public:
  26949. VULKAN_HPP_NAMESPACE::DisplayKHR display = {};
  26950. const char * displayName = {};
  26951. VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {};
  26952. VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {};
  26953. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
  26954. VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {};
  26955. VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {};
  26956. };
  26957. struct DisplayProperties2KHR
  26958. {
  26959. using NativeType = VkDisplayProperties2KHR;
  26960. static const bool allowDuplicate = false;
  26961. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayProperties2KHR;
  26962. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  26963. VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {},
  26964. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  26965. : pNext( pNext_ )
  26966. , displayProperties( displayProperties_ )
  26967. {
  26968. }
  26969. VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26970. DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26971. : DisplayProperties2KHR( *reinterpret_cast<DisplayProperties2KHR const *>( &rhs ) )
  26972. {
  26973. }
  26974. DisplayProperties2KHR & operator=( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  26975. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  26976. DisplayProperties2KHR & operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  26977. {
  26978. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR const *>( &rhs );
  26979. return *this;
  26980. }
  26981. operator VkDisplayProperties2KHR const &() const VULKAN_HPP_NOEXCEPT
  26982. {
  26983. return *reinterpret_cast<const VkDisplayProperties2KHR *>( this );
  26984. }
  26985. operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT
  26986. {
  26987. return *reinterpret_cast<VkDisplayProperties2KHR *>( this );
  26988. }
  26989. #if defined( VULKAN_HPP_USE_REFLECT )
  26990. # if 14 <= VULKAN_HPP_CPP_VERSION
  26991. auto
  26992. # else
  26993. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const &>
  26994. # endif
  26995. reflect() const VULKAN_HPP_NOEXCEPT
  26996. {
  26997. return std::tie( sType, pNext, displayProperties );
  26998. }
  26999. #endif
  27000. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27001. auto operator<=>( DisplayProperties2KHR const & ) const = default;
  27002. #else
  27003. bool operator==( DisplayProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  27004. {
  27005. # if defined( VULKAN_HPP_USE_REFLECT )
  27006. return this->reflect() == rhs.reflect();
  27007. # else
  27008. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayProperties == rhs.displayProperties );
  27009. # endif
  27010. }
  27011. bool operator!=( DisplayProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  27012. {
  27013. return !operator==( rhs );
  27014. }
  27015. #endif
  27016. public:
  27017. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR;
  27018. void * pNext = {};
  27019. VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {};
  27020. };
  27021. template <>
  27022. struct CppType<StructureType, StructureType::eDisplayProperties2KHR>
  27023. {
  27024. using Type = DisplayProperties2KHR;
  27025. };
  27026. struct DisplaySurfaceCreateInfoKHR
  27027. {
  27028. using NativeType = VkDisplaySurfaceCreateInfoKHR;
  27029. static const bool allowDuplicate = false;
  27030. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplaySurfaceCreateInfoKHR;
  27031. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27032. VULKAN_HPP_CONSTEXPR
  27033. DisplaySurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ = {},
  27034. VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {},
  27035. uint32_t planeIndex_ = {},
  27036. uint32_t planeStackIndex_ = {},
  27037. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  27038. float globalAlpha_ = {},
  27039. VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque,
  27040. VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {},
  27041. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  27042. : pNext( pNext_ )
  27043. , flags( flags_ )
  27044. , displayMode( displayMode_ )
  27045. , planeIndex( planeIndex_ )
  27046. , planeStackIndex( planeStackIndex_ )
  27047. , transform( transform_ )
  27048. , globalAlpha( globalAlpha_ )
  27049. , alphaMode( alphaMode_ )
  27050. , imageExtent( imageExtent_ )
  27051. {
  27052. }
  27053. VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27054. DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  27055. : DisplaySurfaceCreateInfoKHR( *reinterpret_cast<DisplaySurfaceCreateInfoKHR const *>( &rhs ) )
  27056. {
  27057. }
  27058. DisplaySurfaceCreateInfoKHR & operator=( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27059. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27060. DisplaySurfaceCreateInfoKHR & operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  27061. {
  27062. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const *>( &rhs );
  27063. return *this;
  27064. }
  27065. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27066. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  27067. {
  27068. pNext = pNext_;
  27069. return *this;
  27070. }
  27071. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  27072. {
  27073. flags = flags_;
  27074. return *this;
  27075. }
  27076. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT
  27077. {
  27078. displayMode = displayMode_;
  27079. return *this;
  27080. }
  27081. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT
  27082. {
  27083. planeIndex = planeIndex_;
  27084. return *this;
  27085. }
  27086. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT
  27087. {
  27088. planeStackIndex = planeStackIndex_;
  27089. return *this;
  27090. }
  27091. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
  27092. {
  27093. transform = transform_;
  27094. return *this;
  27095. }
  27096. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT
  27097. {
  27098. globalAlpha = globalAlpha_;
  27099. return *this;
  27100. }
  27101. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT
  27102. {
  27103. alphaMode = alphaMode_;
  27104. return *this;
  27105. }
  27106. VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
  27107. {
  27108. imageExtent = imageExtent_;
  27109. return *this;
  27110. }
  27111. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27112. operator VkDisplaySurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  27113. {
  27114. return *reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( this );
  27115. }
  27116. operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  27117. {
  27118. return *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR *>( this );
  27119. }
  27120. #if defined( VULKAN_HPP_USE_REFLECT )
  27121. # if 14 <= VULKAN_HPP_CPP_VERSION
  27122. auto
  27123. # else
  27124. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  27125. const void * const &,
  27126. VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR const &,
  27127. VULKAN_HPP_NAMESPACE::DisplayModeKHR const &,
  27128. uint32_t const &,
  27129. uint32_t const &,
  27130. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &,
  27131. float const &,
  27132. VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR const &,
  27133. VULKAN_HPP_NAMESPACE::Extent2D const &>
  27134. # endif
  27135. reflect() const VULKAN_HPP_NOEXCEPT
  27136. {
  27137. return std::tie( sType, pNext, flags, displayMode, planeIndex, planeStackIndex, transform, globalAlpha, alphaMode, imageExtent );
  27138. }
  27139. #endif
  27140. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27141. auto operator<=>( DisplaySurfaceCreateInfoKHR const & ) const = default;
  27142. #else
  27143. bool operator==( DisplaySurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  27144. {
  27145. # if defined( VULKAN_HPP_USE_REFLECT )
  27146. return this->reflect() == rhs.reflect();
  27147. # else
  27148. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( displayMode == rhs.displayMode ) &&
  27149. ( planeIndex == rhs.planeIndex ) && ( planeStackIndex == rhs.planeStackIndex ) && ( transform == rhs.transform ) &&
  27150. ( globalAlpha == rhs.globalAlpha ) && ( alphaMode == rhs.alphaMode ) && ( imageExtent == rhs.imageExtent );
  27151. # endif
  27152. }
  27153. bool operator!=( DisplaySurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  27154. {
  27155. return !operator==( rhs );
  27156. }
  27157. #endif
  27158. public:
  27159. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR;
  27160. const void * pNext = {};
  27161. VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {};
  27162. VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {};
  27163. uint32_t planeIndex = {};
  27164. uint32_t planeStackIndex = {};
  27165. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  27166. float globalAlpha = {};
  27167. VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque;
  27168. VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
  27169. };
  27170. template <>
  27171. struct CppType<StructureType, StructureType::eDisplaySurfaceCreateInfoKHR>
  27172. {
  27173. using Type = DisplaySurfaceCreateInfoKHR;
  27174. };
  27175. struct DrawIndexedIndirectCommand
  27176. {
  27177. using NativeType = VkDrawIndexedIndirectCommand;
  27178. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27179. VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( uint32_t indexCount_ = {},
  27180. uint32_t instanceCount_ = {},
  27181. uint32_t firstIndex_ = {},
  27182. int32_t vertexOffset_ = {},
  27183. uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT
  27184. : indexCount( indexCount_ )
  27185. , instanceCount( instanceCount_ )
  27186. , firstIndex( firstIndex_ )
  27187. , vertexOffset( vertexOffset_ )
  27188. , firstInstance( firstInstance_ )
  27189. {
  27190. }
  27191. VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27192. DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
  27193. : DrawIndexedIndirectCommand( *reinterpret_cast<DrawIndexedIndirectCommand const *>( &rhs ) )
  27194. {
  27195. }
  27196. DrawIndexedIndirectCommand & operator=( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27197. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27198. DrawIndexedIndirectCommand & operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
  27199. {
  27200. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand const *>( &rhs );
  27201. return *this;
  27202. }
  27203. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27204. VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
  27205. {
  27206. indexCount = indexCount_;
  27207. return *this;
  27208. }
  27209. VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
  27210. {
  27211. instanceCount = instanceCount_;
  27212. return *this;
  27213. }
  27214. VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
  27215. {
  27216. firstIndex = firstIndex_;
  27217. return *this;
  27218. }
  27219. VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT
  27220. {
  27221. vertexOffset = vertexOffset_;
  27222. return *this;
  27223. }
  27224. VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
  27225. {
  27226. firstInstance = firstInstance_;
  27227. return *this;
  27228. }
  27229. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27230. operator VkDrawIndexedIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
  27231. {
  27232. return *reinterpret_cast<const VkDrawIndexedIndirectCommand *>( this );
  27233. }
  27234. operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT
  27235. {
  27236. return *reinterpret_cast<VkDrawIndexedIndirectCommand *>( this );
  27237. }
  27238. #if defined( VULKAN_HPP_USE_REFLECT )
  27239. # if 14 <= VULKAN_HPP_CPP_VERSION
  27240. auto
  27241. # else
  27242. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, int32_t const &, uint32_t const &>
  27243. # endif
  27244. reflect() const VULKAN_HPP_NOEXCEPT
  27245. {
  27246. return std::tie( indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
  27247. }
  27248. #endif
  27249. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27250. auto operator<=>( DrawIndexedIndirectCommand const & ) const = default;
  27251. #else
  27252. bool operator==( DrawIndexedIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  27253. {
  27254. # if defined( VULKAN_HPP_USE_REFLECT )
  27255. return this->reflect() == rhs.reflect();
  27256. # else
  27257. return ( indexCount == rhs.indexCount ) && ( instanceCount == rhs.instanceCount ) && ( firstIndex == rhs.firstIndex ) &&
  27258. ( vertexOffset == rhs.vertexOffset ) && ( firstInstance == rhs.firstInstance );
  27259. # endif
  27260. }
  27261. bool operator!=( DrawIndexedIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  27262. {
  27263. return !operator==( rhs );
  27264. }
  27265. #endif
  27266. public:
  27267. uint32_t indexCount = {};
  27268. uint32_t instanceCount = {};
  27269. uint32_t firstIndex = {};
  27270. int32_t vertexOffset = {};
  27271. uint32_t firstInstance = {};
  27272. };
  27273. struct DrawIndirectCommand
  27274. {
  27275. using NativeType = VkDrawIndirectCommand;
  27276. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27277. VULKAN_HPP_CONSTEXPR DrawIndirectCommand( uint32_t vertexCount_ = {},
  27278. uint32_t instanceCount_ = {},
  27279. uint32_t firstVertex_ = {},
  27280. uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT
  27281. : vertexCount( vertexCount_ )
  27282. , instanceCount( instanceCount_ )
  27283. , firstVertex( firstVertex_ )
  27284. , firstInstance( firstInstance_ )
  27285. {
  27286. }
  27287. VULKAN_HPP_CONSTEXPR DrawIndirectCommand( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27288. DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT : DrawIndirectCommand( *reinterpret_cast<DrawIndirectCommand const *>( &rhs ) )
  27289. {
  27290. }
  27291. DrawIndirectCommand & operator=( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27292. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27293. DrawIndirectCommand & operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT
  27294. {
  27295. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndirectCommand const *>( &rhs );
  27296. return *this;
  27297. }
  27298. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27299. VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
  27300. {
  27301. vertexCount = vertexCount_;
  27302. return *this;
  27303. }
  27304. VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT
  27305. {
  27306. instanceCount = instanceCount_;
  27307. return *this;
  27308. }
  27309. VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
  27310. {
  27311. firstVertex = firstVertex_;
  27312. return *this;
  27313. }
  27314. VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT
  27315. {
  27316. firstInstance = firstInstance_;
  27317. return *this;
  27318. }
  27319. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27320. operator VkDrawIndirectCommand const &() const VULKAN_HPP_NOEXCEPT
  27321. {
  27322. return *reinterpret_cast<const VkDrawIndirectCommand *>( this );
  27323. }
  27324. operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT
  27325. {
  27326. return *reinterpret_cast<VkDrawIndirectCommand *>( this );
  27327. }
  27328. #if defined( VULKAN_HPP_USE_REFLECT )
  27329. # if 14 <= VULKAN_HPP_CPP_VERSION
  27330. auto
  27331. # else
  27332. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
  27333. # endif
  27334. reflect() const VULKAN_HPP_NOEXCEPT
  27335. {
  27336. return std::tie( vertexCount, instanceCount, firstVertex, firstInstance );
  27337. }
  27338. #endif
  27339. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27340. auto operator<=>( DrawIndirectCommand const & ) const = default;
  27341. #else
  27342. bool operator==( DrawIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  27343. {
  27344. # if defined( VULKAN_HPP_USE_REFLECT )
  27345. return this->reflect() == rhs.reflect();
  27346. # else
  27347. return ( vertexCount == rhs.vertexCount ) && ( instanceCount == rhs.instanceCount ) && ( firstVertex == rhs.firstVertex ) &&
  27348. ( firstInstance == rhs.firstInstance );
  27349. # endif
  27350. }
  27351. bool operator!=( DrawIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT
  27352. {
  27353. return !operator==( rhs );
  27354. }
  27355. #endif
  27356. public:
  27357. uint32_t vertexCount = {};
  27358. uint32_t instanceCount = {};
  27359. uint32_t firstVertex = {};
  27360. uint32_t firstInstance = {};
  27361. };
  27362. struct DrawMeshTasksIndirectCommandEXT
  27363. {
  27364. using NativeType = VkDrawMeshTasksIndirectCommandEXT;
  27365. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27366. VULKAN_HPP_CONSTEXPR
  27367. DrawMeshTasksIndirectCommandEXT( uint32_t groupCountX_ = {}, uint32_t groupCountY_ = {}, uint32_t groupCountZ_ = {} ) VULKAN_HPP_NOEXCEPT
  27368. : groupCountX( groupCountX_ )
  27369. , groupCountY( groupCountY_ )
  27370. , groupCountZ( groupCountZ_ )
  27371. {
  27372. }
  27373. VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandEXT( DrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27374. DrawMeshTasksIndirectCommandEXT( VkDrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  27375. : DrawMeshTasksIndirectCommandEXT( *reinterpret_cast<DrawMeshTasksIndirectCommandEXT const *>( &rhs ) )
  27376. {
  27377. }
  27378. DrawMeshTasksIndirectCommandEXT & operator=( DrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27379. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27380. DrawMeshTasksIndirectCommandEXT & operator=( VkDrawMeshTasksIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  27381. {
  27382. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT const *>( &rhs );
  27383. return *this;
  27384. }
  27385. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27386. VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandEXT & setGroupCountX( uint32_t groupCountX_ ) VULKAN_HPP_NOEXCEPT
  27387. {
  27388. groupCountX = groupCountX_;
  27389. return *this;
  27390. }
  27391. VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandEXT & setGroupCountY( uint32_t groupCountY_ ) VULKAN_HPP_NOEXCEPT
  27392. {
  27393. groupCountY = groupCountY_;
  27394. return *this;
  27395. }
  27396. VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandEXT & setGroupCountZ( uint32_t groupCountZ_ ) VULKAN_HPP_NOEXCEPT
  27397. {
  27398. groupCountZ = groupCountZ_;
  27399. return *this;
  27400. }
  27401. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27402. operator VkDrawMeshTasksIndirectCommandEXT const &() const VULKAN_HPP_NOEXCEPT
  27403. {
  27404. return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandEXT *>( this );
  27405. }
  27406. operator VkDrawMeshTasksIndirectCommandEXT &() VULKAN_HPP_NOEXCEPT
  27407. {
  27408. return *reinterpret_cast<VkDrawMeshTasksIndirectCommandEXT *>( this );
  27409. }
  27410. #if defined( VULKAN_HPP_USE_REFLECT )
  27411. # if 14 <= VULKAN_HPP_CPP_VERSION
  27412. auto
  27413. # else
  27414. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  27415. # endif
  27416. reflect() const VULKAN_HPP_NOEXCEPT
  27417. {
  27418. return std::tie( groupCountX, groupCountY, groupCountZ );
  27419. }
  27420. #endif
  27421. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27422. auto operator<=>( DrawMeshTasksIndirectCommandEXT const & ) const = default;
  27423. #else
  27424. bool operator==( DrawMeshTasksIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  27425. {
  27426. # if defined( VULKAN_HPP_USE_REFLECT )
  27427. return this->reflect() == rhs.reflect();
  27428. # else
  27429. return ( groupCountX == rhs.groupCountX ) && ( groupCountY == rhs.groupCountY ) && ( groupCountZ == rhs.groupCountZ );
  27430. # endif
  27431. }
  27432. bool operator!=( DrawMeshTasksIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  27433. {
  27434. return !operator==( rhs );
  27435. }
  27436. #endif
  27437. public:
  27438. uint32_t groupCountX = {};
  27439. uint32_t groupCountY = {};
  27440. uint32_t groupCountZ = {};
  27441. };
  27442. struct DrawMeshTasksIndirectCommandNV
  27443. {
  27444. using NativeType = VkDrawMeshTasksIndirectCommandNV;
  27445. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27446. VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( uint32_t taskCount_ = {}, uint32_t firstTask_ = {} ) VULKAN_HPP_NOEXCEPT
  27447. : taskCount( taskCount_ )
  27448. , firstTask( firstTask_ )
  27449. {
  27450. }
  27451. VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27452. DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  27453. : DrawMeshTasksIndirectCommandNV( *reinterpret_cast<DrawMeshTasksIndirectCommandNV const *>( &rhs ) )
  27454. {
  27455. }
  27456. DrawMeshTasksIndirectCommandNV & operator=( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27457. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27458. DrawMeshTasksIndirectCommandNV & operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  27459. {
  27460. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV const *>( &rhs );
  27461. return *this;
  27462. }
  27463. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27464. VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT
  27465. {
  27466. taskCount = taskCount_;
  27467. return *this;
  27468. }
  27469. VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT
  27470. {
  27471. firstTask = firstTask_;
  27472. return *this;
  27473. }
  27474. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27475. operator VkDrawMeshTasksIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  27476. {
  27477. return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandNV *>( this );
  27478. }
  27479. operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  27480. {
  27481. return *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV *>( this );
  27482. }
  27483. #if defined( VULKAN_HPP_USE_REFLECT )
  27484. # if 14 <= VULKAN_HPP_CPP_VERSION
  27485. auto
  27486. # else
  27487. std::tuple<uint32_t const &, uint32_t const &>
  27488. # endif
  27489. reflect() const VULKAN_HPP_NOEXCEPT
  27490. {
  27491. return std::tie( taskCount, firstTask );
  27492. }
  27493. #endif
  27494. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27495. auto operator<=>( DrawMeshTasksIndirectCommandNV const & ) const = default;
  27496. #else
  27497. bool operator==( DrawMeshTasksIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  27498. {
  27499. # if defined( VULKAN_HPP_USE_REFLECT )
  27500. return this->reflect() == rhs.reflect();
  27501. # else
  27502. return ( taskCount == rhs.taskCount ) && ( firstTask == rhs.firstTask );
  27503. # endif
  27504. }
  27505. bool operator!=( DrawMeshTasksIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  27506. {
  27507. return !operator==( rhs );
  27508. }
  27509. #endif
  27510. public:
  27511. uint32_t taskCount = {};
  27512. uint32_t firstTask = {};
  27513. };
  27514. struct DrmFormatModifierProperties2EXT
  27515. {
  27516. using NativeType = VkDrmFormatModifierProperties2EXT;
  27517. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27518. VULKAN_HPP_CONSTEXPR DrmFormatModifierProperties2EXT( uint64_t drmFormatModifier_ = {},
  27519. uint32_t drmFormatModifierPlaneCount_ = {},
  27520. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 drmFormatModifierTilingFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
  27521. : drmFormatModifier( drmFormatModifier_ )
  27522. , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
  27523. , drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
  27524. {
  27525. }
  27526. VULKAN_HPP_CONSTEXPR DrmFormatModifierProperties2EXT( DrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27527. DrmFormatModifierProperties2EXT( VkDrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  27528. : DrmFormatModifierProperties2EXT( *reinterpret_cast<DrmFormatModifierProperties2EXT const *>( &rhs ) )
  27529. {
  27530. }
  27531. DrmFormatModifierProperties2EXT & operator=( DrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27532. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27533. DrmFormatModifierProperties2EXT & operator=( VkDrmFormatModifierProperties2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  27534. {
  27535. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT const *>( &rhs );
  27536. return *this;
  27537. }
  27538. operator VkDrmFormatModifierProperties2EXT const &() const VULKAN_HPP_NOEXCEPT
  27539. {
  27540. return *reinterpret_cast<const VkDrmFormatModifierProperties2EXT *>( this );
  27541. }
  27542. operator VkDrmFormatModifierProperties2EXT &() VULKAN_HPP_NOEXCEPT
  27543. {
  27544. return *reinterpret_cast<VkDrmFormatModifierProperties2EXT *>( this );
  27545. }
  27546. #if defined( VULKAN_HPP_USE_REFLECT )
  27547. # if 14 <= VULKAN_HPP_CPP_VERSION
  27548. auto
  27549. # else
  27550. std::tuple<uint64_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &>
  27551. # endif
  27552. reflect() const VULKAN_HPP_NOEXCEPT
  27553. {
  27554. return std::tie( drmFormatModifier, drmFormatModifierPlaneCount, drmFormatModifierTilingFeatures );
  27555. }
  27556. #endif
  27557. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27558. auto operator<=>( DrmFormatModifierProperties2EXT const & ) const = default;
  27559. #else
  27560. bool operator==( DrmFormatModifierProperties2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  27561. {
  27562. # if defined( VULKAN_HPP_USE_REFLECT )
  27563. return this->reflect() == rhs.reflect();
  27564. # else
  27565. return ( drmFormatModifier == rhs.drmFormatModifier ) && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) &&
  27566. ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
  27567. # endif
  27568. }
  27569. bool operator!=( DrmFormatModifierProperties2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  27570. {
  27571. return !operator==( rhs );
  27572. }
  27573. #endif
  27574. public:
  27575. uint64_t drmFormatModifier = {};
  27576. uint32_t drmFormatModifierPlaneCount = {};
  27577. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 drmFormatModifierTilingFeatures = {};
  27578. };
  27579. struct DrmFormatModifierPropertiesEXT
  27580. {
  27581. using NativeType = VkDrmFormatModifierPropertiesEXT;
  27582. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27583. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = {},
  27584. uint32_t drmFormatModifierPlaneCount_ = {},
  27585. VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
  27586. : drmFormatModifier( drmFormatModifier_ )
  27587. , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
  27588. , drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ )
  27589. {
  27590. }
  27591. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27592. DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  27593. : DrmFormatModifierPropertiesEXT( *reinterpret_cast<DrmFormatModifierPropertiesEXT const *>( &rhs ) )
  27594. {
  27595. }
  27596. DrmFormatModifierPropertiesEXT & operator=( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27597. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27598. DrmFormatModifierPropertiesEXT & operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  27599. {
  27600. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT const *>( &rhs );
  27601. return *this;
  27602. }
  27603. operator VkDrmFormatModifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  27604. {
  27605. return *reinterpret_cast<const VkDrmFormatModifierPropertiesEXT *>( this );
  27606. }
  27607. operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  27608. {
  27609. return *reinterpret_cast<VkDrmFormatModifierPropertiesEXT *>( this );
  27610. }
  27611. #if defined( VULKAN_HPP_USE_REFLECT )
  27612. # if 14 <= VULKAN_HPP_CPP_VERSION
  27613. auto
  27614. # else
  27615. std::tuple<uint64_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &>
  27616. # endif
  27617. reflect() const VULKAN_HPP_NOEXCEPT
  27618. {
  27619. return std::tie( drmFormatModifier, drmFormatModifierPlaneCount, drmFormatModifierTilingFeatures );
  27620. }
  27621. #endif
  27622. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27623. auto operator<=>( DrmFormatModifierPropertiesEXT const & ) const = default;
  27624. #else
  27625. bool operator==( DrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  27626. {
  27627. # if defined( VULKAN_HPP_USE_REFLECT )
  27628. return this->reflect() == rhs.reflect();
  27629. # else
  27630. return ( drmFormatModifier == rhs.drmFormatModifier ) && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) &&
  27631. ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
  27632. # endif
  27633. }
  27634. bool operator!=( DrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  27635. {
  27636. return !operator==( rhs );
  27637. }
  27638. #endif
  27639. public:
  27640. uint64_t drmFormatModifier = {};
  27641. uint32_t drmFormatModifierPlaneCount = {};
  27642. VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {};
  27643. };
  27644. struct DrmFormatModifierPropertiesList2EXT
  27645. {
  27646. using NativeType = VkDrmFormatModifierPropertiesList2EXT;
  27647. static const bool allowDuplicate = false;
  27648. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesList2EXT;
  27649. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27650. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesList2EXT( uint32_t drmFormatModifierCount_ = {},
  27651. VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT * pDrmFormatModifierProperties_ = {},
  27652. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  27653. : pNext( pNext_ )
  27654. , drmFormatModifierCount( drmFormatModifierCount_ )
  27655. , pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
  27656. {
  27657. }
  27658. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesList2EXT( DrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27659. DrmFormatModifierPropertiesList2EXT( VkDrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  27660. : DrmFormatModifierPropertiesList2EXT( *reinterpret_cast<DrmFormatModifierPropertiesList2EXT const *>( &rhs ) )
  27661. {
  27662. }
  27663. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  27664. DrmFormatModifierPropertiesList2EXT(
  27665. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT> const & drmFormatModifierProperties_,
  27666. void * pNext_ = nullptr )
  27667. : pNext( pNext_ )
  27668. , drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifierProperties_.size() ) )
  27669. , pDrmFormatModifierProperties( drmFormatModifierProperties_.data() )
  27670. {
  27671. }
  27672. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  27673. DrmFormatModifierPropertiesList2EXT & operator=( DrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27674. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27675. DrmFormatModifierPropertiesList2EXT & operator=( VkDrmFormatModifierPropertiesList2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  27676. {
  27677. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT const *>( &rhs );
  27678. return *this;
  27679. }
  27680. operator VkDrmFormatModifierPropertiesList2EXT const &() const VULKAN_HPP_NOEXCEPT
  27681. {
  27682. return *reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT *>( this );
  27683. }
  27684. operator VkDrmFormatModifierPropertiesList2EXT &() VULKAN_HPP_NOEXCEPT
  27685. {
  27686. return *reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT *>( this );
  27687. }
  27688. #if defined( VULKAN_HPP_USE_REFLECT )
  27689. # if 14 <= VULKAN_HPP_CPP_VERSION
  27690. auto
  27691. # else
  27692. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT * const &>
  27693. # endif
  27694. reflect() const VULKAN_HPP_NOEXCEPT
  27695. {
  27696. return std::tie( sType, pNext, drmFormatModifierCount, pDrmFormatModifierProperties );
  27697. }
  27698. #endif
  27699. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27700. auto operator<=>( DrmFormatModifierPropertiesList2EXT const & ) const = default;
  27701. #else
  27702. bool operator==( DrmFormatModifierPropertiesList2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  27703. {
  27704. # if defined( VULKAN_HPP_USE_REFLECT )
  27705. return this->reflect() == rhs.reflect();
  27706. # else
  27707. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) &&
  27708. ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
  27709. # endif
  27710. }
  27711. bool operator!=( DrmFormatModifierPropertiesList2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  27712. {
  27713. return !operator==( rhs );
  27714. }
  27715. #endif
  27716. public:
  27717. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesList2EXT;
  27718. void * pNext = {};
  27719. uint32_t drmFormatModifierCount = {};
  27720. VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT * pDrmFormatModifierProperties = {};
  27721. };
  27722. template <>
  27723. struct CppType<StructureType, StructureType::eDrmFormatModifierPropertiesList2EXT>
  27724. {
  27725. using Type = DrmFormatModifierPropertiesList2EXT;
  27726. };
  27727. struct DrmFormatModifierPropertiesListEXT
  27728. {
  27729. using NativeType = VkDrmFormatModifierPropertiesListEXT;
  27730. static const bool allowDuplicate = false;
  27731. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesListEXT;
  27732. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27733. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( uint32_t drmFormatModifierCount_ = {},
  27734. VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * pDrmFormatModifierProperties_ = {},
  27735. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  27736. : pNext( pNext_ )
  27737. , drmFormatModifierCount( drmFormatModifierCount_ )
  27738. , pDrmFormatModifierProperties( pDrmFormatModifierProperties_ )
  27739. {
  27740. }
  27741. VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27742. DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  27743. : DrmFormatModifierPropertiesListEXT( *reinterpret_cast<DrmFormatModifierPropertiesListEXT const *>( &rhs ) )
  27744. {
  27745. }
  27746. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  27747. DrmFormatModifierPropertiesListEXT(
  27748. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT> const & drmFormatModifierProperties_,
  27749. void * pNext_ = nullptr )
  27750. : pNext( pNext_ )
  27751. , drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifierProperties_.size() ) )
  27752. , pDrmFormatModifierProperties( drmFormatModifierProperties_.data() )
  27753. {
  27754. }
  27755. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  27756. DrmFormatModifierPropertiesListEXT & operator=( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27757. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27758. DrmFormatModifierPropertiesListEXT & operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  27759. {
  27760. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT const *>( &rhs );
  27761. return *this;
  27762. }
  27763. operator VkDrmFormatModifierPropertiesListEXT const &() const VULKAN_HPP_NOEXCEPT
  27764. {
  27765. return *reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT *>( this );
  27766. }
  27767. operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT
  27768. {
  27769. return *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT *>( this );
  27770. }
  27771. #if defined( VULKAN_HPP_USE_REFLECT )
  27772. # if 14 <= VULKAN_HPP_CPP_VERSION
  27773. auto
  27774. # else
  27775. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * const &>
  27776. # endif
  27777. reflect() const VULKAN_HPP_NOEXCEPT
  27778. {
  27779. return std::tie( sType, pNext, drmFormatModifierCount, pDrmFormatModifierProperties );
  27780. }
  27781. #endif
  27782. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27783. auto operator<=>( DrmFormatModifierPropertiesListEXT const & ) const = default;
  27784. #else
  27785. bool operator==( DrmFormatModifierPropertiesListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  27786. {
  27787. # if defined( VULKAN_HPP_USE_REFLECT )
  27788. return this->reflect() == rhs.reflect();
  27789. # else
  27790. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) &&
  27791. ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
  27792. # endif
  27793. }
  27794. bool operator!=( DrmFormatModifierPropertiesListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  27795. {
  27796. return !operator==( rhs );
  27797. }
  27798. #endif
  27799. public:
  27800. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT;
  27801. void * pNext = {};
  27802. uint32_t drmFormatModifierCount = {};
  27803. VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * pDrmFormatModifierProperties = {};
  27804. };
  27805. template <>
  27806. struct CppType<StructureType, StructureType::eDrmFormatModifierPropertiesListEXT>
  27807. {
  27808. using Type = DrmFormatModifierPropertiesListEXT;
  27809. };
  27810. struct EventCreateInfo
  27811. {
  27812. using NativeType = VkEventCreateInfo;
  27813. static const bool allowDuplicate = false;
  27814. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eEventCreateInfo;
  27815. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27816. VULKAN_HPP_CONSTEXPR EventCreateInfo( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  27817. : pNext( pNext_ )
  27818. , flags( flags_ )
  27819. {
  27820. }
  27821. VULKAN_HPP_CONSTEXPR EventCreateInfo( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27822. EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : EventCreateInfo( *reinterpret_cast<EventCreateInfo const *>( &rhs ) ) {}
  27823. EventCreateInfo & operator=( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27824. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27825. EventCreateInfo & operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  27826. {
  27827. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::EventCreateInfo const *>( &rhs );
  27828. return *this;
  27829. }
  27830. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27831. VULKAN_HPP_CONSTEXPR_14 EventCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  27832. {
  27833. pNext = pNext_;
  27834. return *this;
  27835. }
  27836. VULKAN_HPP_CONSTEXPR_14 EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  27837. {
  27838. flags = flags_;
  27839. return *this;
  27840. }
  27841. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27842. operator VkEventCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  27843. {
  27844. return *reinterpret_cast<const VkEventCreateInfo *>( this );
  27845. }
  27846. operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT
  27847. {
  27848. return *reinterpret_cast<VkEventCreateInfo *>( this );
  27849. }
  27850. #if defined( VULKAN_HPP_USE_REFLECT )
  27851. # if 14 <= VULKAN_HPP_CPP_VERSION
  27852. auto
  27853. # else
  27854. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::EventCreateFlags const &>
  27855. # endif
  27856. reflect() const VULKAN_HPP_NOEXCEPT
  27857. {
  27858. return std::tie( sType, pNext, flags );
  27859. }
  27860. #endif
  27861. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27862. auto operator<=>( EventCreateInfo const & ) const = default;
  27863. #else
  27864. bool operator==( EventCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  27865. {
  27866. # if defined( VULKAN_HPP_USE_REFLECT )
  27867. return this->reflect() == rhs.reflect();
  27868. # else
  27869. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  27870. # endif
  27871. }
  27872. bool operator!=( EventCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  27873. {
  27874. return !operator==( rhs );
  27875. }
  27876. #endif
  27877. public:
  27878. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo;
  27879. const void * pNext = {};
  27880. VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {};
  27881. };
  27882. template <>
  27883. struct CppType<StructureType, StructureType::eEventCreateInfo>
  27884. {
  27885. using Type = EventCreateInfo;
  27886. };
  27887. struct PipelineLibraryCreateInfoKHR
  27888. {
  27889. using NativeType = VkPipelineLibraryCreateInfoKHR;
  27890. static const bool allowDuplicate = false;
  27891. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLibraryCreateInfoKHR;
  27892. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27893. VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( uint32_t libraryCount_ = {},
  27894. const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_ = {},
  27895. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  27896. : pNext( pNext_ )
  27897. , libraryCount( libraryCount_ )
  27898. , pLibraries( pLibraries_ )
  27899. {
  27900. }
  27901. VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27902. PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  27903. : PipelineLibraryCreateInfoKHR( *reinterpret_cast<PipelineLibraryCreateInfoKHR const *>( &rhs ) )
  27904. {
  27905. }
  27906. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  27907. PipelineLibraryCreateInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_,
  27908. const void * pNext_ = nullptr )
  27909. : pNext( pNext_ ), libraryCount( static_cast<uint32_t>( libraries_.size() ) ), pLibraries( libraries_.data() )
  27910. {
  27911. }
  27912. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  27913. PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  27914. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  27915. PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  27916. {
  27917. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const *>( &rhs );
  27918. return *this;
  27919. }
  27920. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  27921. VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  27922. {
  27923. pNext = pNext_;
  27924. return *this;
  27925. }
  27926. VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT
  27927. {
  27928. libraryCount = libraryCount_;
  27929. return *this;
  27930. }
  27931. VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_ ) VULKAN_HPP_NOEXCEPT
  27932. {
  27933. pLibraries = pLibraries_;
  27934. return *this;
  27935. }
  27936. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  27937. PipelineLibraryCreateInfoKHR &
  27938. setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & libraries_ ) VULKAN_HPP_NOEXCEPT
  27939. {
  27940. libraryCount = static_cast<uint32_t>( libraries_.size() );
  27941. pLibraries = libraries_.data();
  27942. return *this;
  27943. }
  27944. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  27945. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  27946. operator VkPipelineLibraryCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  27947. {
  27948. return *reinterpret_cast<const VkPipelineLibraryCreateInfoKHR *>( this );
  27949. }
  27950. operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  27951. {
  27952. return *reinterpret_cast<VkPipelineLibraryCreateInfoKHR *>( this );
  27953. }
  27954. #if defined( VULKAN_HPP_USE_REFLECT )
  27955. # if 14 <= VULKAN_HPP_CPP_VERSION
  27956. auto
  27957. # else
  27958. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Pipeline * const &>
  27959. # endif
  27960. reflect() const VULKAN_HPP_NOEXCEPT
  27961. {
  27962. return std::tie( sType, pNext, libraryCount, pLibraries );
  27963. }
  27964. #endif
  27965. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  27966. auto operator<=>( PipelineLibraryCreateInfoKHR const & ) const = default;
  27967. #else
  27968. bool operator==( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  27969. {
  27970. # if defined( VULKAN_HPP_USE_REFLECT )
  27971. return this->reflect() == rhs.reflect();
  27972. # else
  27973. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( libraryCount == rhs.libraryCount ) && ( pLibraries == rhs.pLibraries );
  27974. # endif
  27975. }
  27976. bool operator!=( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  27977. {
  27978. return !operator==( rhs );
  27979. }
  27980. #endif
  27981. public:
  27982. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLibraryCreateInfoKHR;
  27983. const void * pNext = {};
  27984. uint32_t libraryCount = {};
  27985. const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries = {};
  27986. };
  27987. template <>
  27988. struct CppType<StructureType, StructureType::ePipelineLibraryCreateInfoKHR>
  27989. {
  27990. using Type = PipelineLibraryCreateInfoKHR;
  27991. };
  27992. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  27993. struct ExecutionGraphPipelineCreateInfoAMDX
  27994. {
  27995. using NativeType = VkExecutionGraphPipelineCreateInfoAMDX;
  27996. static const bool allowDuplicate = false;
  27997. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExecutionGraphPipelineCreateInfoAMDX;
  27998. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  27999. VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineCreateInfoAMDX( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
  28000. uint32_t stageCount_ = {},
  28001. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {},
  28002. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {},
  28003. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  28004. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  28005. int32_t basePipelineIndex_ = {},
  28006. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28007. : pNext( pNext_ )
  28008. , flags( flags_ )
  28009. , stageCount( stageCount_ )
  28010. , pStages( pStages_ )
  28011. , pLibraryInfo( pLibraryInfo_ )
  28012. , layout( layout_ )
  28013. , basePipelineHandle( basePipelineHandle_ )
  28014. , basePipelineIndex( basePipelineIndex_ )
  28015. {
  28016. }
  28017. VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineCreateInfoAMDX( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28018. ExecutionGraphPipelineCreateInfoAMDX( VkExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  28019. : ExecutionGraphPipelineCreateInfoAMDX( *reinterpret_cast<ExecutionGraphPipelineCreateInfoAMDX const *>( &rhs ) )
  28020. {
  28021. }
  28022. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  28023. ExecutionGraphPipelineCreateInfoAMDX(
  28024. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_,
  28025. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_,
  28026. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {},
  28027. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  28028. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  28029. int32_t basePipelineIndex_ = {},
  28030. const void * pNext_ = nullptr )
  28031. : pNext( pNext_ )
  28032. , flags( flags_ )
  28033. , stageCount( static_cast<uint32_t>( stages_.size() ) )
  28034. , pStages( stages_.data() )
  28035. , pLibraryInfo( pLibraryInfo_ )
  28036. , layout( layout_ )
  28037. , basePipelineHandle( basePipelineHandle_ )
  28038. , basePipelineIndex( basePipelineIndex_ )
  28039. {
  28040. }
  28041. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  28042. ExecutionGraphPipelineCreateInfoAMDX & operator=( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28043. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28044. ExecutionGraphPipelineCreateInfoAMDX & operator=( VkExecutionGraphPipelineCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  28045. {
  28046. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const *>( &rhs );
  28047. return *this;
  28048. }
  28049. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28050. VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28051. {
  28052. pNext = pNext_;
  28053. return *this;
  28054. }
  28055. VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  28056. {
  28057. flags = flags_;
  28058. return *this;
  28059. }
  28060. VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
  28061. {
  28062. stageCount = stageCount_;
  28063. return *this;
  28064. }
  28065. VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX &
  28066. setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
  28067. {
  28068. pStages = pStages_;
  28069. return *this;
  28070. }
  28071. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  28072. ExecutionGraphPipelineCreateInfoAMDX &
  28073. setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
  28074. {
  28075. stageCount = static_cast<uint32_t>( stages_.size() );
  28076. pStages = stages_.data();
  28077. return *this;
  28078. }
  28079. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  28080. VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX &
  28081. setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT
  28082. {
  28083. pLibraryInfo = pLibraryInfo_;
  28084. return *this;
  28085. }
  28086. VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
  28087. {
  28088. layout = layout_;
  28089. return *this;
  28090. }
  28091. VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX &
  28092. setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
  28093. {
  28094. basePipelineHandle = basePipelineHandle_;
  28095. return *this;
  28096. }
  28097. VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineCreateInfoAMDX & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
  28098. {
  28099. basePipelineIndex = basePipelineIndex_;
  28100. return *this;
  28101. }
  28102. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28103. operator VkExecutionGraphPipelineCreateInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
  28104. {
  28105. return *reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( this );
  28106. }
  28107. operator VkExecutionGraphPipelineCreateInfoAMDX &() VULKAN_HPP_NOEXCEPT
  28108. {
  28109. return *reinterpret_cast<VkExecutionGraphPipelineCreateInfoAMDX *>( this );
  28110. }
  28111. # if defined( VULKAN_HPP_USE_REFLECT )
  28112. # if 14 <= VULKAN_HPP_CPP_VERSION
  28113. auto
  28114. # else
  28115. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  28116. const void * const &,
  28117. VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &,
  28118. uint32_t const &,
  28119. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &,
  28120. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * const &,
  28121. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  28122. VULKAN_HPP_NAMESPACE::Pipeline const &,
  28123. int32_t const &>
  28124. # endif
  28125. reflect() const VULKAN_HPP_NOEXCEPT
  28126. {
  28127. return std::tie( sType, pNext, flags, stageCount, pStages, pLibraryInfo, layout, basePipelineHandle, basePipelineIndex );
  28128. }
  28129. # endif
  28130. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28131. auto operator<=>( ExecutionGraphPipelineCreateInfoAMDX const & ) const = default;
  28132. # else
  28133. bool operator==( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
  28134. {
  28135. # if defined( VULKAN_HPP_USE_REFLECT )
  28136. return this->reflect() == rhs.reflect();
  28137. # else
  28138. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) &&
  28139. ( pLibraryInfo == rhs.pLibraryInfo ) && ( layout == rhs.layout ) && ( basePipelineHandle == rhs.basePipelineHandle ) &&
  28140. ( basePipelineIndex == rhs.basePipelineIndex );
  28141. # endif
  28142. }
  28143. bool operator!=( ExecutionGraphPipelineCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
  28144. {
  28145. return !operator==( rhs );
  28146. }
  28147. # endif
  28148. public:
  28149. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExecutionGraphPipelineCreateInfoAMDX;
  28150. const void * pNext = {};
  28151. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
  28152. uint32_t stageCount = {};
  28153. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
  28154. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo = {};
  28155. VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
  28156. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
  28157. int32_t basePipelineIndex = {};
  28158. };
  28159. template <>
  28160. struct CppType<StructureType, StructureType::eExecutionGraphPipelineCreateInfoAMDX>
  28161. {
  28162. using Type = ExecutionGraphPipelineCreateInfoAMDX;
  28163. };
  28164. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  28165. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  28166. struct ExecutionGraphPipelineScratchSizeAMDX
  28167. {
  28168. using NativeType = VkExecutionGraphPipelineScratchSizeAMDX;
  28169. static const bool allowDuplicate = false;
  28170. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExecutionGraphPipelineScratchSizeAMDX;
  28171. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28172. VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineScratchSizeAMDX( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28173. : pNext( pNext_ )
  28174. , size( size_ )
  28175. {
  28176. }
  28177. VULKAN_HPP_CONSTEXPR ExecutionGraphPipelineScratchSizeAMDX( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28178. ExecutionGraphPipelineScratchSizeAMDX( VkExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  28179. : ExecutionGraphPipelineScratchSizeAMDX( *reinterpret_cast<ExecutionGraphPipelineScratchSizeAMDX const *>( &rhs ) )
  28180. {
  28181. }
  28182. ExecutionGraphPipelineScratchSizeAMDX & operator=( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28183. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28184. ExecutionGraphPipelineScratchSizeAMDX & operator=( VkExecutionGraphPipelineScratchSizeAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  28185. {
  28186. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX const *>( &rhs );
  28187. return *this;
  28188. }
  28189. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28190. VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineScratchSizeAMDX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28191. {
  28192. pNext = pNext_;
  28193. return *this;
  28194. }
  28195. VULKAN_HPP_CONSTEXPR_14 ExecutionGraphPipelineScratchSizeAMDX & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  28196. {
  28197. size = size_;
  28198. return *this;
  28199. }
  28200. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28201. operator VkExecutionGraphPipelineScratchSizeAMDX const &() const VULKAN_HPP_NOEXCEPT
  28202. {
  28203. return *reinterpret_cast<const VkExecutionGraphPipelineScratchSizeAMDX *>( this );
  28204. }
  28205. operator VkExecutionGraphPipelineScratchSizeAMDX &() VULKAN_HPP_NOEXCEPT
  28206. {
  28207. return *reinterpret_cast<VkExecutionGraphPipelineScratchSizeAMDX *>( this );
  28208. }
  28209. # if defined( VULKAN_HPP_USE_REFLECT )
  28210. # if 14 <= VULKAN_HPP_CPP_VERSION
  28211. auto
  28212. # else
  28213. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  28214. # endif
  28215. reflect() const VULKAN_HPP_NOEXCEPT
  28216. {
  28217. return std::tie( sType, pNext, size );
  28218. }
  28219. # endif
  28220. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28221. auto operator<=>( ExecutionGraphPipelineScratchSizeAMDX const & ) const = default;
  28222. # else
  28223. bool operator==( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
  28224. {
  28225. # if defined( VULKAN_HPP_USE_REFLECT )
  28226. return this->reflect() == rhs.reflect();
  28227. # else
  28228. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( size == rhs.size );
  28229. # endif
  28230. }
  28231. bool operator!=( ExecutionGraphPipelineScratchSizeAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
  28232. {
  28233. return !operator==( rhs );
  28234. }
  28235. # endif
  28236. public:
  28237. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExecutionGraphPipelineScratchSizeAMDX;
  28238. void * pNext = {};
  28239. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  28240. };
  28241. template <>
  28242. struct CppType<StructureType, StructureType::eExecutionGraphPipelineScratchSizeAMDX>
  28243. {
  28244. using Type = ExecutionGraphPipelineScratchSizeAMDX;
  28245. };
  28246. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  28247. struct ExportFenceCreateInfo
  28248. {
  28249. using NativeType = VkExportFenceCreateInfo;
  28250. static const bool allowDuplicate = false;
  28251. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceCreateInfo;
  28252. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28253. VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {},
  28254. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28255. : pNext( pNext_ )
  28256. , handleTypes( handleTypes_ )
  28257. {
  28258. }
  28259. VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28260. ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28261. : ExportFenceCreateInfo( *reinterpret_cast<ExportFenceCreateInfo const *>( &rhs ) )
  28262. {
  28263. }
  28264. ExportFenceCreateInfo & operator=( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28265. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28266. ExportFenceCreateInfo & operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28267. {
  28268. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const *>( &rhs );
  28269. return *this;
  28270. }
  28271. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28272. VULKAN_HPP_CONSTEXPR_14 ExportFenceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28273. {
  28274. pNext = pNext_;
  28275. return *this;
  28276. }
  28277. VULKAN_HPP_CONSTEXPR_14 ExportFenceCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
  28278. {
  28279. handleTypes = handleTypes_;
  28280. return *this;
  28281. }
  28282. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28283. operator VkExportFenceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  28284. {
  28285. return *reinterpret_cast<const VkExportFenceCreateInfo *>( this );
  28286. }
  28287. operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
  28288. {
  28289. return *reinterpret_cast<VkExportFenceCreateInfo *>( this );
  28290. }
  28291. #if defined( VULKAN_HPP_USE_REFLECT )
  28292. # if 14 <= VULKAN_HPP_CPP_VERSION
  28293. auto
  28294. # else
  28295. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags const &>
  28296. # endif
  28297. reflect() const VULKAN_HPP_NOEXCEPT
  28298. {
  28299. return std::tie( sType, pNext, handleTypes );
  28300. }
  28301. #endif
  28302. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28303. auto operator<=>( ExportFenceCreateInfo const & ) const = default;
  28304. #else
  28305. bool operator==( ExportFenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28306. {
  28307. # if defined( VULKAN_HPP_USE_REFLECT )
  28308. return this->reflect() == rhs.reflect();
  28309. # else
  28310. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  28311. # endif
  28312. }
  28313. bool operator!=( ExportFenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28314. {
  28315. return !operator==( rhs );
  28316. }
  28317. #endif
  28318. public:
  28319. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo;
  28320. const void * pNext = {};
  28321. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {};
  28322. };
  28323. template <>
  28324. struct CppType<StructureType, StructureType::eExportFenceCreateInfo>
  28325. {
  28326. using Type = ExportFenceCreateInfo;
  28327. };
  28328. using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
  28329. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  28330. struct ExportFenceWin32HandleInfoKHR
  28331. {
  28332. using NativeType = VkExportFenceWin32HandleInfoKHR;
  28333. static const bool allowDuplicate = false;
  28334. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceWin32HandleInfoKHR;
  28335. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28336. VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( const SECURITY_ATTRIBUTES * pAttributes_ = {},
  28337. DWORD dwAccess_ = {},
  28338. LPCWSTR name_ = {},
  28339. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28340. : pNext( pNext_ )
  28341. , pAttributes( pAttributes_ )
  28342. , dwAccess( dwAccess_ )
  28343. , name( name_ )
  28344. {
  28345. }
  28346. VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28347. ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  28348. : ExportFenceWin32HandleInfoKHR( *reinterpret_cast<ExportFenceWin32HandleInfoKHR const *>( &rhs ) )
  28349. {
  28350. }
  28351. ExportFenceWin32HandleInfoKHR & operator=( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28352. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28353. ExportFenceWin32HandleInfoKHR & operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  28354. {
  28355. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR const *>( &rhs );
  28356. return *this;
  28357. }
  28358. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28359. VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28360. {
  28361. pNext = pNext_;
  28362. return *this;
  28363. }
  28364. VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
  28365. {
  28366. pAttributes = pAttributes_;
  28367. return *this;
  28368. }
  28369. VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
  28370. {
  28371. dwAccess = dwAccess_;
  28372. return *this;
  28373. }
  28374. VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  28375. {
  28376. name = name_;
  28377. return *this;
  28378. }
  28379. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28380. operator VkExportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  28381. {
  28382. return *reinterpret_cast<const VkExportFenceWin32HandleInfoKHR *>( this );
  28383. }
  28384. operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  28385. {
  28386. return *reinterpret_cast<VkExportFenceWin32HandleInfoKHR *>( this );
  28387. }
  28388. # if defined( VULKAN_HPP_USE_REFLECT )
  28389. # if 14 <= VULKAN_HPP_CPP_VERSION
  28390. auto
  28391. # else
  28392. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &, LPCWSTR const &>
  28393. # endif
  28394. reflect() const VULKAN_HPP_NOEXCEPT
  28395. {
  28396. return std::tie( sType, pNext, pAttributes, dwAccess, name );
  28397. }
  28398. # endif
  28399. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28400. auto operator<=>( ExportFenceWin32HandleInfoKHR const & ) const = default;
  28401. # else
  28402. bool operator==( ExportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  28403. {
  28404. # if defined( VULKAN_HPP_USE_REFLECT )
  28405. return this->reflect() == rhs.reflect();
  28406. # else
  28407. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && ( dwAccess == rhs.dwAccess ) && ( name == rhs.name );
  28408. # endif
  28409. }
  28410. bool operator!=( ExportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  28411. {
  28412. return !operator==( rhs );
  28413. }
  28414. # endif
  28415. public:
  28416. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR;
  28417. const void * pNext = {};
  28418. const SECURITY_ATTRIBUTES * pAttributes = {};
  28419. DWORD dwAccess = {};
  28420. LPCWSTR name = {};
  28421. };
  28422. template <>
  28423. struct CppType<StructureType, StructureType::eExportFenceWin32HandleInfoKHR>
  28424. {
  28425. using Type = ExportFenceWin32HandleInfoKHR;
  28426. };
  28427. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  28428. struct ExportMemoryAllocateInfo
  28429. {
  28430. using NativeType = VkExportMemoryAllocateInfo;
  28431. static const bool allowDuplicate = false;
  28432. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfo;
  28433. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28434. VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {},
  28435. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28436. : pNext( pNext_ )
  28437. , handleTypes( handleTypes_ )
  28438. {
  28439. }
  28440. VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28441. ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28442. : ExportMemoryAllocateInfo( *reinterpret_cast<ExportMemoryAllocateInfo const *>( &rhs ) )
  28443. {
  28444. }
  28445. ExportMemoryAllocateInfo & operator=( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28446. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28447. ExportMemoryAllocateInfo & operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  28448. {
  28449. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo const *>( &rhs );
  28450. return *this;
  28451. }
  28452. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28453. VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28454. {
  28455. pNext = pNext_;
  28456. return *this;
  28457. }
  28458. VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
  28459. {
  28460. handleTypes = handleTypes_;
  28461. return *this;
  28462. }
  28463. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28464. operator VkExportMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  28465. {
  28466. return *reinterpret_cast<const VkExportMemoryAllocateInfo *>( this );
  28467. }
  28468. operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
  28469. {
  28470. return *reinterpret_cast<VkExportMemoryAllocateInfo *>( this );
  28471. }
  28472. #if defined( VULKAN_HPP_USE_REFLECT )
  28473. # if 14 <= VULKAN_HPP_CPP_VERSION
  28474. auto
  28475. # else
  28476. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
  28477. # endif
  28478. reflect() const VULKAN_HPP_NOEXCEPT
  28479. {
  28480. return std::tie( sType, pNext, handleTypes );
  28481. }
  28482. #endif
  28483. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28484. auto operator<=>( ExportMemoryAllocateInfo const & ) const = default;
  28485. #else
  28486. bool operator==( ExportMemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28487. {
  28488. # if defined( VULKAN_HPP_USE_REFLECT )
  28489. return this->reflect() == rhs.reflect();
  28490. # else
  28491. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  28492. # endif
  28493. }
  28494. bool operator!=( ExportMemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  28495. {
  28496. return !operator==( rhs );
  28497. }
  28498. #endif
  28499. public:
  28500. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo;
  28501. const void * pNext = {};
  28502. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
  28503. };
  28504. template <>
  28505. struct CppType<StructureType, StructureType::eExportMemoryAllocateInfo>
  28506. {
  28507. using Type = ExportMemoryAllocateInfo;
  28508. };
  28509. using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
  28510. struct ExportMemoryAllocateInfoNV
  28511. {
  28512. using NativeType = VkExportMemoryAllocateInfoNV;
  28513. static const bool allowDuplicate = false;
  28514. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfoNV;
  28515. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28516. VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {},
  28517. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28518. : pNext( pNext_ )
  28519. , handleTypes( handleTypes_ )
  28520. {
  28521. }
  28522. VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28523. ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  28524. : ExportMemoryAllocateInfoNV( *reinterpret_cast<ExportMemoryAllocateInfoNV const *>( &rhs ) )
  28525. {
  28526. }
  28527. ExportMemoryAllocateInfoNV & operator=( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28528. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28529. ExportMemoryAllocateInfoNV & operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  28530. {
  28531. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV const *>( &rhs );
  28532. return *this;
  28533. }
  28534. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28535. VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28536. {
  28537. pNext = pNext_;
  28538. return *this;
  28539. }
  28540. VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfoNV &
  28541. setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
  28542. {
  28543. handleTypes = handleTypes_;
  28544. return *this;
  28545. }
  28546. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28547. operator VkExportMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  28548. {
  28549. return *reinterpret_cast<const VkExportMemoryAllocateInfoNV *>( this );
  28550. }
  28551. operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT
  28552. {
  28553. return *reinterpret_cast<VkExportMemoryAllocateInfoNV *>( this );
  28554. }
  28555. #if defined( VULKAN_HPP_USE_REFLECT )
  28556. # if 14 <= VULKAN_HPP_CPP_VERSION
  28557. auto
  28558. # else
  28559. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &>
  28560. # endif
  28561. reflect() const VULKAN_HPP_NOEXCEPT
  28562. {
  28563. return std::tie( sType, pNext, handleTypes );
  28564. }
  28565. #endif
  28566. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28567. auto operator<=>( ExportMemoryAllocateInfoNV const & ) const = default;
  28568. #else
  28569. bool operator==( ExportMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  28570. {
  28571. # if defined( VULKAN_HPP_USE_REFLECT )
  28572. return this->reflect() == rhs.reflect();
  28573. # else
  28574. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  28575. # endif
  28576. }
  28577. bool operator!=( ExportMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  28578. {
  28579. return !operator==( rhs );
  28580. }
  28581. #endif
  28582. public:
  28583. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV;
  28584. const void * pNext = {};
  28585. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
  28586. };
  28587. template <>
  28588. struct CppType<StructureType, StructureType::eExportMemoryAllocateInfoNV>
  28589. {
  28590. using Type = ExportMemoryAllocateInfoNV;
  28591. };
  28592. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  28593. struct ExportMemoryWin32HandleInfoKHR
  28594. {
  28595. using NativeType = VkExportMemoryWin32HandleInfoKHR;
  28596. static const bool allowDuplicate = false;
  28597. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoKHR;
  28598. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28599. VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( const SECURITY_ATTRIBUTES * pAttributes_ = {},
  28600. DWORD dwAccess_ = {},
  28601. LPCWSTR name_ = {},
  28602. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28603. : pNext( pNext_ )
  28604. , pAttributes( pAttributes_ )
  28605. , dwAccess( dwAccess_ )
  28606. , name( name_ )
  28607. {
  28608. }
  28609. VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28610. ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  28611. : ExportMemoryWin32HandleInfoKHR( *reinterpret_cast<ExportMemoryWin32HandleInfoKHR const *>( &rhs ) )
  28612. {
  28613. }
  28614. ExportMemoryWin32HandleInfoKHR & operator=( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28615. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28616. ExportMemoryWin32HandleInfoKHR & operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  28617. {
  28618. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR const *>( &rhs );
  28619. return *this;
  28620. }
  28621. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28622. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28623. {
  28624. pNext = pNext_;
  28625. return *this;
  28626. }
  28627. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
  28628. {
  28629. pAttributes = pAttributes_;
  28630. return *this;
  28631. }
  28632. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
  28633. {
  28634. dwAccess = dwAccess_;
  28635. return *this;
  28636. }
  28637. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  28638. {
  28639. name = name_;
  28640. return *this;
  28641. }
  28642. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28643. operator VkExportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  28644. {
  28645. return *reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR *>( this );
  28646. }
  28647. operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  28648. {
  28649. return *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR *>( this );
  28650. }
  28651. # if defined( VULKAN_HPP_USE_REFLECT )
  28652. # if 14 <= VULKAN_HPP_CPP_VERSION
  28653. auto
  28654. # else
  28655. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &, LPCWSTR const &>
  28656. # endif
  28657. reflect() const VULKAN_HPP_NOEXCEPT
  28658. {
  28659. return std::tie( sType, pNext, pAttributes, dwAccess, name );
  28660. }
  28661. # endif
  28662. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28663. auto operator<=>( ExportMemoryWin32HandleInfoKHR const & ) const = default;
  28664. # else
  28665. bool operator==( ExportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  28666. {
  28667. # if defined( VULKAN_HPP_USE_REFLECT )
  28668. return this->reflect() == rhs.reflect();
  28669. # else
  28670. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && ( dwAccess == rhs.dwAccess ) && ( name == rhs.name );
  28671. # endif
  28672. }
  28673. bool operator!=( ExportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  28674. {
  28675. return !operator==( rhs );
  28676. }
  28677. # endif
  28678. public:
  28679. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR;
  28680. const void * pNext = {};
  28681. const SECURITY_ATTRIBUTES * pAttributes = {};
  28682. DWORD dwAccess = {};
  28683. LPCWSTR name = {};
  28684. };
  28685. template <>
  28686. struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoKHR>
  28687. {
  28688. using Type = ExportMemoryWin32HandleInfoKHR;
  28689. };
  28690. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  28691. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  28692. struct ExportMemoryWin32HandleInfoNV
  28693. {
  28694. using NativeType = VkExportMemoryWin32HandleInfoNV;
  28695. static const bool allowDuplicate = false;
  28696. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoNV;
  28697. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28698. VULKAN_HPP_CONSTEXPR
  28699. ExportMemoryWin32HandleInfoNV( const SECURITY_ATTRIBUTES * pAttributes_ = {}, DWORD dwAccess_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28700. : pNext( pNext_ )
  28701. , pAttributes( pAttributes_ )
  28702. , dwAccess( dwAccess_ )
  28703. {
  28704. }
  28705. VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28706. ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  28707. : ExportMemoryWin32HandleInfoNV( *reinterpret_cast<ExportMemoryWin32HandleInfoNV const *>( &rhs ) )
  28708. {
  28709. }
  28710. ExportMemoryWin32HandleInfoNV & operator=( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28711. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28712. ExportMemoryWin32HandleInfoNV & operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  28713. {
  28714. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV const *>( &rhs );
  28715. return *this;
  28716. }
  28717. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28718. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28719. {
  28720. pNext = pNext_;
  28721. return *this;
  28722. }
  28723. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
  28724. {
  28725. pAttributes = pAttributes_;
  28726. return *this;
  28727. }
  28728. VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
  28729. {
  28730. dwAccess = dwAccess_;
  28731. return *this;
  28732. }
  28733. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28734. operator VkExportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT
  28735. {
  28736. return *reinterpret_cast<const VkExportMemoryWin32HandleInfoNV *>( this );
  28737. }
  28738. operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
  28739. {
  28740. return *reinterpret_cast<VkExportMemoryWin32HandleInfoNV *>( this );
  28741. }
  28742. # if defined( VULKAN_HPP_USE_REFLECT )
  28743. # if 14 <= VULKAN_HPP_CPP_VERSION
  28744. auto
  28745. # else
  28746. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &>
  28747. # endif
  28748. reflect() const VULKAN_HPP_NOEXCEPT
  28749. {
  28750. return std::tie( sType, pNext, pAttributes, dwAccess );
  28751. }
  28752. # endif
  28753. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28754. auto operator<=>( ExportMemoryWin32HandleInfoNV const & ) const = default;
  28755. # else
  28756. bool operator==( ExportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  28757. {
  28758. # if defined( VULKAN_HPP_USE_REFLECT )
  28759. return this->reflect() == rhs.reflect();
  28760. # else
  28761. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && ( dwAccess == rhs.dwAccess );
  28762. # endif
  28763. }
  28764. bool operator!=( ExportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  28765. {
  28766. return !operator==( rhs );
  28767. }
  28768. # endif
  28769. public:
  28770. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV;
  28771. const void * pNext = {};
  28772. const SECURITY_ATTRIBUTES * pAttributes = {};
  28773. DWORD dwAccess = {};
  28774. };
  28775. template <>
  28776. struct CppType<StructureType, StructureType::eExportMemoryWin32HandleInfoNV>
  28777. {
  28778. using Type = ExportMemoryWin32HandleInfoNV;
  28779. };
  28780. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  28781. #if defined( VK_USE_PLATFORM_METAL_EXT )
  28782. struct ExportMetalBufferInfoEXT
  28783. {
  28784. using NativeType = VkExportMetalBufferInfoEXT;
  28785. static const bool allowDuplicate = true;
  28786. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalBufferInfoEXT;
  28787. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28788. VULKAN_HPP_CONSTEXPR ExportMetalBufferInfoEXT( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  28789. MTLBuffer_id mtlBuffer_ = {},
  28790. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28791. : pNext( pNext_ )
  28792. , memory( memory_ )
  28793. , mtlBuffer( mtlBuffer_ )
  28794. {
  28795. }
  28796. VULKAN_HPP_CONSTEXPR ExportMetalBufferInfoEXT( ExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28797. ExportMetalBufferInfoEXT( VkExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  28798. : ExportMetalBufferInfoEXT( *reinterpret_cast<ExportMetalBufferInfoEXT const *>( &rhs ) )
  28799. {
  28800. }
  28801. ExportMetalBufferInfoEXT & operator=( ExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28802. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28803. ExportMetalBufferInfoEXT & operator=( VkExportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  28804. {
  28805. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT const *>( &rhs );
  28806. return *this;
  28807. }
  28808. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28809. VULKAN_HPP_CONSTEXPR_14 ExportMetalBufferInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28810. {
  28811. pNext = pNext_;
  28812. return *this;
  28813. }
  28814. VULKAN_HPP_CONSTEXPR_14 ExportMetalBufferInfoEXT & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  28815. {
  28816. memory = memory_;
  28817. return *this;
  28818. }
  28819. VULKAN_HPP_CONSTEXPR_14 ExportMetalBufferInfoEXT & setMtlBuffer( MTLBuffer_id mtlBuffer_ ) VULKAN_HPP_NOEXCEPT
  28820. {
  28821. mtlBuffer = mtlBuffer_;
  28822. return *this;
  28823. }
  28824. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28825. operator VkExportMetalBufferInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  28826. {
  28827. return *reinterpret_cast<const VkExportMetalBufferInfoEXT *>( this );
  28828. }
  28829. operator VkExportMetalBufferInfoEXT &() VULKAN_HPP_NOEXCEPT
  28830. {
  28831. return *reinterpret_cast<VkExportMetalBufferInfoEXT *>( this );
  28832. }
  28833. # if defined( VULKAN_HPP_USE_REFLECT )
  28834. # if 14 <= VULKAN_HPP_CPP_VERSION
  28835. auto
  28836. # else
  28837. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &, MTLBuffer_id const &>
  28838. # endif
  28839. reflect() const VULKAN_HPP_NOEXCEPT
  28840. {
  28841. return std::tie( sType, pNext, memory, mtlBuffer );
  28842. }
  28843. # endif
  28844. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28845. auto operator<=>( ExportMetalBufferInfoEXT const & ) const = default;
  28846. # else
  28847. bool operator==( ExportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  28848. {
  28849. # if defined( VULKAN_HPP_USE_REFLECT )
  28850. return this->reflect() == rhs.reflect();
  28851. # else
  28852. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( mtlBuffer == rhs.mtlBuffer );
  28853. # endif
  28854. }
  28855. bool operator!=( ExportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  28856. {
  28857. return !operator==( rhs );
  28858. }
  28859. # endif
  28860. public:
  28861. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalBufferInfoEXT;
  28862. const void * pNext = {};
  28863. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  28864. MTLBuffer_id mtlBuffer = {};
  28865. };
  28866. template <>
  28867. struct CppType<StructureType, StructureType::eExportMetalBufferInfoEXT>
  28868. {
  28869. using Type = ExportMetalBufferInfoEXT;
  28870. };
  28871. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  28872. #if defined( VK_USE_PLATFORM_METAL_EXT )
  28873. struct ExportMetalCommandQueueInfoEXT
  28874. {
  28875. using NativeType = VkExportMetalCommandQueueInfoEXT;
  28876. static const bool allowDuplicate = true;
  28877. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalCommandQueueInfoEXT;
  28878. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28879. VULKAN_HPP_CONSTEXPR ExportMetalCommandQueueInfoEXT( VULKAN_HPP_NAMESPACE::Queue queue_ = {},
  28880. MTLCommandQueue_id mtlCommandQueue_ = {},
  28881. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28882. : pNext( pNext_ )
  28883. , queue( queue_ )
  28884. , mtlCommandQueue( mtlCommandQueue_ )
  28885. {
  28886. }
  28887. VULKAN_HPP_CONSTEXPR ExportMetalCommandQueueInfoEXT( ExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28888. ExportMetalCommandQueueInfoEXT( VkExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  28889. : ExportMetalCommandQueueInfoEXT( *reinterpret_cast<ExportMetalCommandQueueInfoEXT const *>( &rhs ) )
  28890. {
  28891. }
  28892. ExportMetalCommandQueueInfoEXT & operator=( ExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28893. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28894. ExportMetalCommandQueueInfoEXT & operator=( VkExportMetalCommandQueueInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  28895. {
  28896. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT const *>( &rhs );
  28897. return *this;
  28898. }
  28899. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28900. VULKAN_HPP_CONSTEXPR_14 ExportMetalCommandQueueInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28901. {
  28902. pNext = pNext_;
  28903. return *this;
  28904. }
  28905. VULKAN_HPP_CONSTEXPR_14 ExportMetalCommandQueueInfoEXT & setQueue( VULKAN_HPP_NAMESPACE::Queue queue_ ) VULKAN_HPP_NOEXCEPT
  28906. {
  28907. queue = queue_;
  28908. return *this;
  28909. }
  28910. VULKAN_HPP_CONSTEXPR_14 ExportMetalCommandQueueInfoEXT & setMtlCommandQueue( MTLCommandQueue_id mtlCommandQueue_ ) VULKAN_HPP_NOEXCEPT
  28911. {
  28912. mtlCommandQueue = mtlCommandQueue_;
  28913. return *this;
  28914. }
  28915. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28916. operator VkExportMetalCommandQueueInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  28917. {
  28918. return *reinterpret_cast<const VkExportMetalCommandQueueInfoEXT *>( this );
  28919. }
  28920. operator VkExportMetalCommandQueueInfoEXT &() VULKAN_HPP_NOEXCEPT
  28921. {
  28922. return *reinterpret_cast<VkExportMetalCommandQueueInfoEXT *>( this );
  28923. }
  28924. # if defined( VULKAN_HPP_USE_REFLECT )
  28925. # if 14 <= VULKAN_HPP_CPP_VERSION
  28926. auto
  28927. # else
  28928. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Queue const &, MTLCommandQueue_id const &>
  28929. # endif
  28930. reflect() const VULKAN_HPP_NOEXCEPT
  28931. {
  28932. return std::tie( sType, pNext, queue, mtlCommandQueue );
  28933. }
  28934. # endif
  28935. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  28936. auto operator<=>( ExportMetalCommandQueueInfoEXT const & ) const = default;
  28937. # else
  28938. bool operator==( ExportMetalCommandQueueInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  28939. {
  28940. # if defined( VULKAN_HPP_USE_REFLECT )
  28941. return this->reflect() == rhs.reflect();
  28942. # else
  28943. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queue == rhs.queue ) && ( mtlCommandQueue == rhs.mtlCommandQueue );
  28944. # endif
  28945. }
  28946. bool operator!=( ExportMetalCommandQueueInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  28947. {
  28948. return !operator==( rhs );
  28949. }
  28950. # endif
  28951. public:
  28952. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalCommandQueueInfoEXT;
  28953. const void * pNext = {};
  28954. VULKAN_HPP_NAMESPACE::Queue queue = {};
  28955. MTLCommandQueue_id mtlCommandQueue = {};
  28956. };
  28957. template <>
  28958. struct CppType<StructureType, StructureType::eExportMetalCommandQueueInfoEXT>
  28959. {
  28960. using Type = ExportMetalCommandQueueInfoEXT;
  28961. };
  28962. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  28963. #if defined( VK_USE_PLATFORM_METAL_EXT )
  28964. struct ExportMetalDeviceInfoEXT
  28965. {
  28966. using NativeType = VkExportMetalDeviceInfoEXT;
  28967. static const bool allowDuplicate = false;
  28968. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalDeviceInfoEXT;
  28969. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  28970. VULKAN_HPP_CONSTEXPR ExportMetalDeviceInfoEXT( MTLDevice_id mtlDevice_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  28971. : pNext( pNext_ )
  28972. , mtlDevice( mtlDevice_ )
  28973. {
  28974. }
  28975. VULKAN_HPP_CONSTEXPR ExportMetalDeviceInfoEXT( ExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28976. ExportMetalDeviceInfoEXT( VkExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  28977. : ExportMetalDeviceInfoEXT( *reinterpret_cast<ExportMetalDeviceInfoEXT const *>( &rhs ) )
  28978. {
  28979. }
  28980. ExportMetalDeviceInfoEXT & operator=( ExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  28981. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  28982. ExportMetalDeviceInfoEXT & operator=( VkExportMetalDeviceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  28983. {
  28984. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT const *>( &rhs );
  28985. return *this;
  28986. }
  28987. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  28988. VULKAN_HPP_CONSTEXPR_14 ExportMetalDeviceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  28989. {
  28990. pNext = pNext_;
  28991. return *this;
  28992. }
  28993. VULKAN_HPP_CONSTEXPR_14 ExportMetalDeviceInfoEXT & setMtlDevice( MTLDevice_id mtlDevice_ ) VULKAN_HPP_NOEXCEPT
  28994. {
  28995. mtlDevice = mtlDevice_;
  28996. return *this;
  28997. }
  28998. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  28999. operator VkExportMetalDeviceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  29000. {
  29001. return *reinterpret_cast<const VkExportMetalDeviceInfoEXT *>( this );
  29002. }
  29003. operator VkExportMetalDeviceInfoEXT &() VULKAN_HPP_NOEXCEPT
  29004. {
  29005. return *reinterpret_cast<VkExportMetalDeviceInfoEXT *>( this );
  29006. }
  29007. # if defined( VULKAN_HPP_USE_REFLECT )
  29008. # if 14 <= VULKAN_HPP_CPP_VERSION
  29009. auto
  29010. # else
  29011. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, MTLDevice_id const &>
  29012. # endif
  29013. reflect() const VULKAN_HPP_NOEXCEPT
  29014. {
  29015. return std::tie( sType, pNext, mtlDevice );
  29016. }
  29017. # endif
  29018. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29019. auto operator<=>( ExportMetalDeviceInfoEXT const & ) const = default;
  29020. # else
  29021. bool operator==( ExportMetalDeviceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29022. {
  29023. # if defined( VULKAN_HPP_USE_REFLECT )
  29024. return this->reflect() == rhs.reflect();
  29025. # else
  29026. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mtlDevice == rhs.mtlDevice );
  29027. # endif
  29028. }
  29029. bool operator!=( ExportMetalDeviceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29030. {
  29031. return !operator==( rhs );
  29032. }
  29033. # endif
  29034. public:
  29035. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalDeviceInfoEXT;
  29036. const void * pNext = {};
  29037. MTLDevice_id mtlDevice = {};
  29038. };
  29039. template <>
  29040. struct CppType<StructureType, StructureType::eExportMetalDeviceInfoEXT>
  29041. {
  29042. using Type = ExportMetalDeviceInfoEXT;
  29043. };
  29044. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  29045. #if defined( VK_USE_PLATFORM_METAL_EXT )
  29046. struct ExportMetalIOSurfaceInfoEXT
  29047. {
  29048. using NativeType = VkExportMetalIOSurfaceInfoEXT;
  29049. static const bool allowDuplicate = true;
  29050. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalIoSurfaceInfoEXT;
  29051. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29052. VULKAN_HPP_CONSTEXPR
  29053. ExportMetalIOSurfaceInfoEXT( VULKAN_HPP_NAMESPACE::Image image_ = {}, IOSurfaceRef ioSurface_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29054. : pNext( pNext_ )
  29055. , image( image_ )
  29056. , ioSurface( ioSurface_ )
  29057. {
  29058. }
  29059. VULKAN_HPP_CONSTEXPR ExportMetalIOSurfaceInfoEXT( ExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29060. ExportMetalIOSurfaceInfoEXT( VkExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29061. : ExportMetalIOSurfaceInfoEXT( *reinterpret_cast<ExportMetalIOSurfaceInfoEXT const *>( &rhs ) )
  29062. {
  29063. }
  29064. ExportMetalIOSurfaceInfoEXT & operator=( ExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29065. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29066. ExportMetalIOSurfaceInfoEXT & operator=( VkExportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29067. {
  29068. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT const *>( &rhs );
  29069. return *this;
  29070. }
  29071. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29072. VULKAN_HPP_CONSTEXPR_14 ExportMetalIOSurfaceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29073. {
  29074. pNext = pNext_;
  29075. return *this;
  29076. }
  29077. VULKAN_HPP_CONSTEXPR_14 ExportMetalIOSurfaceInfoEXT & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  29078. {
  29079. image = image_;
  29080. return *this;
  29081. }
  29082. VULKAN_HPP_CONSTEXPR_14 ExportMetalIOSurfaceInfoEXT & setIoSurface( IOSurfaceRef ioSurface_ ) VULKAN_HPP_NOEXCEPT
  29083. {
  29084. ioSurface = ioSurface_;
  29085. return *this;
  29086. }
  29087. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29088. operator VkExportMetalIOSurfaceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  29089. {
  29090. return *reinterpret_cast<const VkExportMetalIOSurfaceInfoEXT *>( this );
  29091. }
  29092. operator VkExportMetalIOSurfaceInfoEXT &() VULKAN_HPP_NOEXCEPT
  29093. {
  29094. return *reinterpret_cast<VkExportMetalIOSurfaceInfoEXT *>( this );
  29095. }
  29096. # if defined( VULKAN_HPP_USE_REFLECT )
  29097. # if 14 <= VULKAN_HPP_CPP_VERSION
  29098. auto
  29099. # else
  29100. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, IOSurfaceRef const &>
  29101. # endif
  29102. reflect() const VULKAN_HPP_NOEXCEPT
  29103. {
  29104. return std::tie( sType, pNext, image, ioSurface );
  29105. }
  29106. # endif
  29107. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29108. auto operator<=>( ExportMetalIOSurfaceInfoEXT const & ) const = default;
  29109. # else
  29110. bool operator==( ExportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29111. {
  29112. # if defined( VULKAN_HPP_USE_REFLECT )
  29113. return this->reflect() == rhs.reflect();
  29114. # else
  29115. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( ioSurface == rhs.ioSurface );
  29116. # endif
  29117. }
  29118. bool operator!=( ExportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29119. {
  29120. return !operator==( rhs );
  29121. }
  29122. # endif
  29123. public:
  29124. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalIoSurfaceInfoEXT;
  29125. const void * pNext = {};
  29126. VULKAN_HPP_NAMESPACE::Image image = {};
  29127. IOSurfaceRef ioSurface = {};
  29128. };
  29129. template <>
  29130. struct CppType<StructureType, StructureType::eExportMetalIoSurfaceInfoEXT>
  29131. {
  29132. using Type = ExportMetalIOSurfaceInfoEXT;
  29133. };
  29134. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  29135. #if defined( VK_USE_PLATFORM_METAL_EXT )
  29136. struct ExportMetalObjectCreateInfoEXT
  29137. {
  29138. using NativeType = VkExportMetalObjectCreateInfoEXT;
  29139. static const bool allowDuplicate = true;
  29140. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalObjectCreateInfoEXT;
  29141. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29142. VULKAN_HPP_CONSTEXPR ExportMetalObjectCreateInfoEXT(
  29143. VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType_ = VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT::eMetalDevice,
  29144. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29145. : pNext( pNext_ )
  29146. , exportObjectType( exportObjectType_ )
  29147. {
  29148. }
  29149. VULKAN_HPP_CONSTEXPR ExportMetalObjectCreateInfoEXT( ExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29150. ExportMetalObjectCreateInfoEXT( VkExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29151. : ExportMetalObjectCreateInfoEXT( *reinterpret_cast<ExportMetalObjectCreateInfoEXT const *>( &rhs ) )
  29152. {
  29153. }
  29154. ExportMetalObjectCreateInfoEXT & operator=( ExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29155. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29156. ExportMetalObjectCreateInfoEXT & operator=( VkExportMetalObjectCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29157. {
  29158. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT const *>( &rhs );
  29159. return *this;
  29160. }
  29161. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29162. VULKAN_HPP_CONSTEXPR_14 ExportMetalObjectCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29163. {
  29164. pNext = pNext_;
  29165. return *this;
  29166. }
  29167. VULKAN_HPP_CONSTEXPR_14 ExportMetalObjectCreateInfoEXT &
  29168. setExportObjectType( VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType_ ) VULKAN_HPP_NOEXCEPT
  29169. {
  29170. exportObjectType = exportObjectType_;
  29171. return *this;
  29172. }
  29173. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29174. operator VkExportMetalObjectCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  29175. {
  29176. return *reinterpret_cast<const VkExportMetalObjectCreateInfoEXT *>( this );
  29177. }
  29178. operator VkExportMetalObjectCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  29179. {
  29180. return *reinterpret_cast<VkExportMetalObjectCreateInfoEXT *>( this );
  29181. }
  29182. # if defined( VULKAN_HPP_USE_REFLECT )
  29183. # if 14 <= VULKAN_HPP_CPP_VERSION
  29184. auto
  29185. # else
  29186. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT const &>
  29187. # endif
  29188. reflect() const VULKAN_HPP_NOEXCEPT
  29189. {
  29190. return std::tie( sType, pNext, exportObjectType );
  29191. }
  29192. # endif
  29193. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29194. auto operator<=>( ExportMetalObjectCreateInfoEXT const & ) const = default;
  29195. # else
  29196. bool operator==( ExportMetalObjectCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29197. {
  29198. # if defined( VULKAN_HPP_USE_REFLECT )
  29199. return this->reflect() == rhs.reflect();
  29200. # else
  29201. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( exportObjectType == rhs.exportObjectType );
  29202. # endif
  29203. }
  29204. bool operator!=( ExportMetalObjectCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29205. {
  29206. return !operator==( rhs );
  29207. }
  29208. # endif
  29209. public:
  29210. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalObjectCreateInfoEXT;
  29211. const void * pNext = {};
  29212. VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT exportObjectType = VULKAN_HPP_NAMESPACE::ExportMetalObjectTypeFlagBitsEXT::eMetalDevice;
  29213. };
  29214. template <>
  29215. struct CppType<StructureType, StructureType::eExportMetalObjectCreateInfoEXT>
  29216. {
  29217. using Type = ExportMetalObjectCreateInfoEXT;
  29218. };
  29219. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  29220. #if defined( VK_USE_PLATFORM_METAL_EXT )
  29221. struct ExportMetalObjectsInfoEXT
  29222. {
  29223. using NativeType = VkExportMetalObjectsInfoEXT;
  29224. static const bool allowDuplicate = false;
  29225. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalObjectsInfoEXT;
  29226. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29227. VULKAN_HPP_CONSTEXPR ExportMetalObjectsInfoEXT( const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext( pNext_ ) {}
  29228. VULKAN_HPP_CONSTEXPR ExportMetalObjectsInfoEXT( ExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29229. ExportMetalObjectsInfoEXT( VkExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29230. : ExportMetalObjectsInfoEXT( *reinterpret_cast<ExportMetalObjectsInfoEXT const *>( &rhs ) )
  29231. {
  29232. }
  29233. ExportMetalObjectsInfoEXT & operator=( ExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29234. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29235. ExportMetalObjectsInfoEXT & operator=( VkExportMetalObjectsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29236. {
  29237. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT const *>( &rhs );
  29238. return *this;
  29239. }
  29240. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29241. VULKAN_HPP_CONSTEXPR_14 ExportMetalObjectsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29242. {
  29243. pNext = pNext_;
  29244. return *this;
  29245. }
  29246. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29247. operator VkExportMetalObjectsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  29248. {
  29249. return *reinterpret_cast<const VkExportMetalObjectsInfoEXT *>( this );
  29250. }
  29251. operator VkExportMetalObjectsInfoEXT &() VULKAN_HPP_NOEXCEPT
  29252. {
  29253. return *reinterpret_cast<VkExportMetalObjectsInfoEXT *>( this );
  29254. }
  29255. # if defined( VULKAN_HPP_USE_REFLECT )
  29256. # if 14 <= VULKAN_HPP_CPP_VERSION
  29257. auto
  29258. # else
  29259. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &>
  29260. # endif
  29261. reflect() const VULKAN_HPP_NOEXCEPT
  29262. {
  29263. return std::tie( sType, pNext );
  29264. }
  29265. # endif
  29266. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29267. auto operator<=>( ExportMetalObjectsInfoEXT const & ) const = default;
  29268. # else
  29269. bool operator==( ExportMetalObjectsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29270. {
  29271. # if defined( VULKAN_HPP_USE_REFLECT )
  29272. return this->reflect() == rhs.reflect();
  29273. # else
  29274. return ( sType == rhs.sType ) && ( pNext == rhs.pNext );
  29275. # endif
  29276. }
  29277. bool operator!=( ExportMetalObjectsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29278. {
  29279. return !operator==( rhs );
  29280. }
  29281. # endif
  29282. public:
  29283. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalObjectsInfoEXT;
  29284. const void * pNext = {};
  29285. };
  29286. template <>
  29287. struct CppType<StructureType, StructureType::eExportMetalObjectsInfoEXT>
  29288. {
  29289. using Type = ExportMetalObjectsInfoEXT;
  29290. };
  29291. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  29292. #if defined( VK_USE_PLATFORM_METAL_EXT )
  29293. struct ExportMetalSharedEventInfoEXT
  29294. {
  29295. using NativeType = VkExportMetalSharedEventInfoEXT;
  29296. static const bool allowDuplicate = true;
  29297. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalSharedEventInfoEXT;
  29298. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29299. VULKAN_HPP_CONSTEXPR ExportMetalSharedEventInfoEXT( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  29300. VULKAN_HPP_NAMESPACE::Event event_ = {},
  29301. MTLSharedEvent_id mtlSharedEvent_ = {},
  29302. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29303. : pNext( pNext_ )
  29304. , semaphore( semaphore_ )
  29305. , event( event_ )
  29306. , mtlSharedEvent( mtlSharedEvent_ )
  29307. {
  29308. }
  29309. VULKAN_HPP_CONSTEXPR ExportMetalSharedEventInfoEXT( ExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29310. ExportMetalSharedEventInfoEXT( VkExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29311. : ExportMetalSharedEventInfoEXT( *reinterpret_cast<ExportMetalSharedEventInfoEXT const *>( &rhs ) )
  29312. {
  29313. }
  29314. ExportMetalSharedEventInfoEXT & operator=( ExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29315. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29316. ExportMetalSharedEventInfoEXT & operator=( VkExportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29317. {
  29318. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT const *>( &rhs );
  29319. return *this;
  29320. }
  29321. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29322. VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29323. {
  29324. pNext = pNext_;
  29325. return *this;
  29326. }
  29327. VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  29328. {
  29329. semaphore = semaphore_;
  29330. return *this;
  29331. }
  29332. VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setEvent( VULKAN_HPP_NAMESPACE::Event event_ ) VULKAN_HPP_NOEXCEPT
  29333. {
  29334. event = event_;
  29335. return *this;
  29336. }
  29337. VULKAN_HPP_CONSTEXPR_14 ExportMetalSharedEventInfoEXT & setMtlSharedEvent( MTLSharedEvent_id mtlSharedEvent_ ) VULKAN_HPP_NOEXCEPT
  29338. {
  29339. mtlSharedEvent = mtlSharedEvent_;
  29340. return *this;
  29341. }
  29342. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29343. operator VkExportMetalSharedEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  29344. {
  29345. return *reinterpret_cast<const VkExportMetalSharedEventInfoEXT *>( this );
  29346. }
  29347. operator VkExportMetalSharedEventInfoEXT &() VULKAN_HPP_NOEXCEPT
  29348. {
  29349. return *reinterpret_cast<VkExportMetalSharedEventInfoEXT *>( this );
  29350. }
  29351. # if defined( VULKAN_HPP_USE_REFLECT )
  29352. # if 14 <= VULKAN_HPP_CPP_VERSION
  29353. auto
  29354. # else
  29355. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  29356. const void * const &,
  29357. VULKAN_HPP_NAMESPACE::Semaphore const &,
  29358. VULKAN_HPP_NAMESPACE::Event const &,
  29359. MTLSharedEvent_id const &>
  29360. # endif
  29361. reflect() const VULKAN_HPP_NOEXCEPT
  29362. {
  29363. return std::tie( sType, pNext, semaphore, event, mtlSharedEvent );
  29364. }
  29365. # endif
  29366. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29367. auto operator<=>( ExportMetalSharedEventInfoEXT const & ) const = default;
  29368. # else
  29369. bool operator==( ExportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29370. {
  29371. # if defined( VULKAN_HPP_USE_REFLECT )
  29372. return this->reflect() == rhs.reflect();
  29373. # else
  29374. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( event == rhs.event ) &&
  29375. ( mtlSharedEvent == rhs.mtlSharedEvent );
  29376. # endif
  29377. }
  29378. bool operator!=( ExportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29379. {
  29380. return !operator==( rhs );
  29381. }
  29382. # endif
  29383. public:
  29384. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalSharedEventInfoEXT;
  29385. const void * pNext = {};
  29386. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  29387. VULKAN_HPP_NAMESPACE::Event event = {};
  29388. MTLSharedEvent_id mtlSharedEvent = {};
  29389. };
  29390. template <>
  29391. struct CppType<StructureType, StructureType::eExportMetalSharedEventInfoEXT>
  29392. {
  29393. using Type = ExportMetalSharedEventInfoEXT;
  29394. };
  29395. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  29396. #if defined( VK_USE_PLATFORM_METAL_EXT )
  29397. struct ExportMetalTextureInfoEXT
  29398. {
  29399. using NativeType = VkExportMetalTextureInfoEXT;
  29400. static const bool allowDuplicate = true;
  29401. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMetalTextureInfoEXT;
  29402. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29403. VULKAN_HPP_CONSTEXPR ExportMetalTextureInfoEXT( VULKAN_HPP_NAMESPACE::Image image_ = {},
  29404. VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  29405. VULKAN_HPP_NAMESPACE::BufferView bufferView_ = {},
  29406. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
  29407. MTLTexture_id mtlTexture_ = {},
  29408. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29409. : pNext( pNext_ )
  29410. , image( image_ )
  29411. , imageView( imageView_ )
  29412. , bufferView( bufferView_ )
  29413. , plane( plane_ )
  29414. , mtlTexture( mtlTexture_ )
  29415. {
  29416. }
  29417. VULKAN_HPP_CONSTEXPR ExportMetalTextureInfoEXT( ExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29418. ExportMetalTextureInfoEXT( VkExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29419. : ExportMetalTextureInfoEXT( *reinterpret_cast<ExportMetalTextureInfoEXT const *>( &rhs ) )
  29420. {
  29421. }
  29422. ExportMetalTextureInfoEXT & operator=( ExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29423. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29424. ExportMetalTextureInfoEXT & operator=( VkExportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  29425. {
  29426. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT const *>( &rhs );
  29427. return *this;
  29428. }
  29429. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29430. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29431. {
  29432. pNext = pNext_;
  29433. return *this;
  29434. }
  29435. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  29436. {
  29437. image = image_;
  29438. return *this;
  29439. }
  29440. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  29441. {
  29442. imageView = imageView_;
  29443. return *this;
  29444. }
  29445. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView_ ) VULKAN_HPP_NOEXCEPT
  29446. {
  29447. bufferView = bufferView_;
  29448. return *this;
  29449. }
  29450. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setPlane( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ ) VULKAN_HPP_NOEXCEPT
  29451. {
  29452. plane = plane_;
  29453. return *this;
  29454. }
  29455. VULKAN_HPP_CONSTEXPR_14 ExportMetalTextureInfoEXT & setMtlTexture( MTLTexture_id mtlTexture_ ) VULKAN_HPP_NOEXCEPT
  29456. {
  29457. mtlTexture = mtlTexture_;
  29458. return *this;
  29459. }
  29460. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29461. operator VkExportMetalTextureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  29462. {
  29463. return *reinterpret_cast<const VkExportMetalTextureInfoEXT *>( this );
  29464. }
  29465. operator VkExportMetalTextureInfoEXT &() VULKAN_HPP_NOEXCEPT
  29466. {
  29467. return *reinterpret_cast<VkExportMetalTextureInfoEXT *>( this );
  29468. }
  29469. # if defined( VULKAN_HPP_USE_REFLECT )
  29470. # if 14 <= VULKAN_HPP_CPP_VERSION
  29471. auto
  29472. # else
  29473. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  29474. const void * const &,
  29475. VULKAN_HPP_NAMESPACE::Image const &,
  29476. VULKAN_HPP_NAMESPACE::ImageView const &,
  29477. VULKAN_HPP_NAMESPACE::BufferView const &,
  29478. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &,
  29479. MTLTexture_id const &>
  29480. # endif
  29481. reflect() const VULKAN_HPP_NOEXCEPT
  29482. {
  29483. return std::tie( sType, pNext, image, imageView, bufferView, plane, mtlTexture );
  29484. }
  29485. # endif
  29486. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29487. auto operator<=>( ExportMetalTextureInfoEXT const & ) const = default;
  29488. # else
  29489. bool operator==( ExportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29490. {
  29491. # if defined( VULKAN_HPP_USE_REFLECT )
  29492. return this->reflect() == rhs.reflect();
  29493. # else
  29494. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( imageView == rhs.imageView ) && ( bufferView == rhs.bufferView ) &&
  29495. ( plane == rhs.plane ) && ( mtlTexture == rhs.mtlTexture );
  29496. # endif
  29497. }
  29498. bool operator!=( ExportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  29499. {
  29500. return !operator==( rhs );
  29501. }
  29502. # endif
  29503. public:
  29504. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMetalTextureInfoEXT;
  29505. const void * pNext = {};
  29506. VULKAN_HPP_NAMESPACE::Image image = {};
  29507. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  29508. VULKAN_HPP_NAMESPACE::BufferView bufferView = {};
  29509. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
  29510. MTLTexture_id mtlTexture = {};
  29511. };
  29512. template <>
  29513. struct CppType<StructureType, StructureType::eExportMetalTextureInfoEXT>
  29514. {
  29515. using Type = ExportMetalTextureInfoEXT;
  29516. };
  29517. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  29518. struct ExportSemaphoreCreateInfo
  29519. {
  29520. using NativeType = VkExportSemaphoreCreateInfo;
  29521. static const bool allowDuplicate = false;
  29522. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreCreateInfo;
  29523. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29524. VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {},
  29525. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29526. : pNext( pNext_ )
  29527. , handleTypes( handleTypes_ )
  29528. {
  29529. }
  29530. VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29531. ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  29532. : ExportSemaphoreCreateInfo( *reinterpret_cast<ExportSemaphoreCreateInfo const *>( &rhs ) )
  29533. {
  29534. }
  29535. ExportSemaphoreCreateInfo & operator=( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29536. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29537. ExportSemaphoreCreateInfo & operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  29538. {
  29539. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo const *>( &rhs );
  29540. return *this;
  29541. }
  29542. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29543. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29544. {
  29545. pNext = pNext_;
  29546. return *this;
  29547. }
  29548. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreCreateInfo &
  29549. setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
  29550. {
  29551. handleTypes = handleTypes_;
  29552. return *this;
  29553. }
  29554. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29555. operator VkExportSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  29556. {
  29557. return *reinterpret_cast<const VkExportSemaphoreCreateInfo *>( this );
  29558. }
  29559. operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
  29560. {
  29561. return *reinterpret_cast<VkExportSemaphoreCreateInfo *>( this );
  29562. }
  29563. #if defined( VULKAN_HPP_USE_REFLECT )
  29564. # if 14 <= VULKAN_HPP_CPP_VERSION
  29565. auto
  29566. # else
  29567. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags const &>
  29568. # endif
  29569. reflect() const VULKAN_HPP_NOEXCEPT
  29570. {
  29571. return std::tie( sType, pNext, handleTypes );
  29572. }
  29573. #endif
  29574. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29575. auto operator<=>( ExportSemaphoreCreateInfo const & ) const = default;
  29576. #else
  29577. bool operator==( ExportSemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  29578. {
  29579. # if defined( VULKAN_HPP_USE_REFLECT )
  29580. return this->reflect() == rhs.reflect();
  29581. # else
  29582. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  29583. # endif
  29584. }
  29585. bool operator!=( ExportSemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  29586. {
  29587. return !operator==( rhs );
  29588. }
  29589. #endif
  29590. public:
  29591. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo;
  29592. const void * pNext = {};
  29593. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {};
  29594. };
  29595. template <>
  29596. struct CppType<StructureType, StructureType::eExportSemaphoreCreateInfo>
  29597. {
  29598. using Type = ExportSemaphoreCreateInfo;
  29599. };
  29600. using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
  29601. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  29602. struct ExportSemaphoreWin32HandleInfoKHR
  29603. {
  29604. using NativeType = VkExportSemaphoreWin32HandleInfoKHR;
  29605. static const bool allowDuplicate = false;
  29606. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
  29607. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29608. VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( const SECURITY_ATTRIBUTES * pAttributes_ = {},
  29609. DWORD dwAccess_ = {},
  29610. LPCWSTR name_ = {},
  29611. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29612. : pNext( pNext_ )
  29613. , pAttributes( pAttributes_ )
  29614. , dwAccess( dwAccess_ )
  29615. , name( name_ )
  29616. {
  29617. }
  29618. VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29619. ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  29620. : ExportSemaphoreWin32HandleInfoKHR( *reinterpret_cast<ExportSemaphoreWin32HandleInfoKHR const *>( &rhs ) )
  29621. {
  29622. }
  29623. ExportSemaphoreWin32HandleInfoKHR & operator=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29624. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29625. ExportSemaphoreWin32HandleInfoKHR & operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  29626. {
  29627. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR const *>( &rhs );
  29628. return *this;
  29629. }
  29630. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  29631. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  29632. {
  29633. pNext = pNext_;
  29634. return *this;
  29635. }
  29636. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT
  29637. {
  29638. pAttributes = pAttributes_;
  29639. return *this;
  29640. }
  29641. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT
  29642. {
  29643. dwAccess = dwAccess_;
  29644. return *this;
  29645. }
  29646. VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  29647. {
  29648. name = name_;
  29649. return *this;
  29650. }
  29651. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  29652. operator VkExportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  29653. {
  29654. return *reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR *>( this );
  29655. }
  29656. operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  29657. {
  29658. return *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR *>( this );
  29659. }
  29660. # if defined( VULKAN_HPP_USE_REFLECT )
  29661. # if 14 <= VULKAN_HPP_CPP_VERSION
  29662. auto
  29663. # else
  29664. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const SECURITY_ATTRIBUTES * const &, DWORD const &, LPCWSTR const &>
  29665. # endif
  29666. reflect() const VULKAN_HPP_NOEXCEPT
  29667. {
  29668. return std::tie( sType, pNext, pAttributes, dwAccess, name );
  29669. }
  29670. # endif
  29671. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29672. auto operator<=>( ExportSemaphoreWin32HandleInfoKHR const & ) const = default;
  29673. # else
  29674. bool operator==( ExportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  29675. {
  29676. # if defined( VULKAN_HPP_USE_REFLECT )
  29677. return this->reflect() == rhs.reflect();
  29678. # else
  29679. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && ( dwAccess == rhs.dwAccess ) && ( name == rhs.name );
  29680. # endif
  29681. }
  29682. bool operator!=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  29683. {
  29684. return !operator==( rhs );
  29685. }
  29686. # endif
  29687. public:
  29688. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
  29689. const void * pNext = {};
  29690. const SECURITY_ATTRIBUTES * pAttributes = {};
  29691. DWORD dwAccess = {};
  29692. LPCWSTR name = {};
  29693. };
  29694. template <>
  29695. struct CppType<StructureType, StructureType::eExportSemaphoreWin32HandleInfoKHR>
  29696. {
  29697. using Type = ExportSemaphoreWin32HandleInfoKHR;
  29698. };
  29699. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  29700. struct ExtensionProperties
  29701. {
  29702. using NativeType = VkExtensionProperties;
  29703. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29704. VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & extensionName_ = {},
  29705. uint32_t specVersion_ = {} ) VULKAN_HPP_NOEXCEPT
  29706. : extensionName( extensionName_ )
  29707. , specVersion( specVersion_ )
  29708. {
  29709. }
  29710. VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29711. ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT : ExtensionProperties( *reinterpret_cast<ExtensionProperties const *>( &rhs ) )
  29712. {
  29713. }
  29714. ExtensionProperties & operator=( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29715. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29716. ExtensionProperties & operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  29717. {
  29718. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExtensionProperties const *>( &rhs );
  29719. return *this;
  29720. }
  29721. operator VkExtensionProperties const &() const VULKAN_HPP_NOEXCEPT
  29722. {
  29723. return *reinterpret_cast<const VkExtensionProperties *>( this );
  29724. }
  29725. operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT
  29726. {
  29727. return *reinterpret_cast<VkExtensionProperties *>( this );
  29728. }
  29729. #if defined( VULKAN_HPP_USE_REFLECT )
  29730. # if 14 <= VULKAN_HPP_CPP_VERSION
  29731. auto
  29732. # else
  29733. std::tuple<VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &, uint32_t const &>
  29734. # endif
  29735. reflect() const VULKAN_HPP_NOEXCEPT
  29736. {
  29737. return std::tie( extensionName, specVersion );
  29738. }
  29739. #endif
  29740. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29741. auto operator<=>( ExtensionProperties const & ) const = default;
  29742. #else
  29743. bool operator==( ExtensionProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  29744. {
  29745. # if defined( VULKAN_HPP_USE_REFLECT )
  29746. return this->reflect() == rhs.reflect();
  29747. # else
  29748. return ( extensionName == rhs.extensionName ) && ( specVersion == rhs.specVersion );
  29749. # endif
  29750. }
  29751. bool operator!=( ExtensionProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  29752. {
  29753. return !operator==( rhs );
  29754. }
  29755. #endif
  29756. public:
  29757. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> extensionName = {};
  29758. uint32_t specVersion = {};
  29759. };
  29760. struct ExternalMemoryProperties
  29761. {
  29762. using NativeType = VkExternalMemoryProperties;
  29763. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29764. VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {},
  29765. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {},
  29766. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
  29767. : externalMemoryFeatures( externalMemoryFeatures_ )
  29768. , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
  29769. , compatibleHandleTypes( compatibleHandleTypes_ )
  29770. {
  29771. }
  29772. VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29773. ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  29774. : ExternalMemoryProperties( *reinterpret_cast<ExternalMemoryProperties const *>( &rhs ) )
  29775. {
  29776. }
  29777. ExternalMemoryProperties & operator=( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29778. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29779. ExternalMemoryProperties & operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  29780. {
  29781. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const *>( &rhs );
  29782. return *this;
  29783. }
  29784. operator VkExternalMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
  29785. {
  29786. return *reinterpret_cast<const VkExternalMemoryProperties *>( this );
  29787. }
  29788. operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT
  29789. {
  29790. return *reinterpret_cast<VkExternalMemoryProperties *>( this );
  29791. }
  29792. #if defined( VULKAN_HPP_USE_REFLECT )
  29793. # if 14 <= VULKAN_HPP_CPP_VERSION
  29794. auto
  29795. # else
  29796. std::tuple<VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags const &,
  29797. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &,
  29798. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
  29799. # endif
  29800. reflect() const VULKAN_HPP_NOEXCEPT
  29801. {
  29802. return std::tie( externalMemoryFeatures, exportFromImportedHandleTypes, compatibleHandleTypes );
  29803. }
  29804. #endif
  29805. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29806. auto operator<=>( ExternalMemoryProperties const & ) const = default;
  29807. #else
  29808. bool operator==( ExternalMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  29809. {
  29810. # if defined( VULKAN_HPP_USE_REFLECT )
  29811. return this->reflect() == rhs.reflect();
  29812. # else
  29813. return ( externalMemoryFeatures == rhs.externalMemoryFeatures ) && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) &&
  29814. ( compatibleHandleTypes == rhs.compatibleHandleTypes );
  29815. # endif
  29816. }
  29817. bool operator!=( ExternalMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  29818. {
  29819. return !operator==( rhs );
  29820. }
  29821. #endif
  29822. public:
  29823. VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {};
  29824. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {};
  29825. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {};
  29826. };
  29827. using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
  29828. struct ExternalBufferProperties
  29829. {
  29830. using NativeType = VkExternalBufferProperties;
  29831. static const bool allowDuplicate = false;
  29832. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalBufferProperties;
  29833. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29834. VULKAN_HPP_CONSTEXPR ExternalBufferProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {},
  29835. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29836. : pNext( pNext_ )
  29837. , externalMemoryProperties( externalMemoryProperties_ )
  29838. {
  29839. }
  29840. VULKAN_HPP_CONSTEXPR ExternalBufferProperties( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29841. ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  29842. : ExternalBufferProperties( *reinterpret_cast<ExternalBufferProperties const *>( &rhs ) )
  29843. {
  29844. }
  29845. ExternalBufferProperties & operator=( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29846. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29847. ExternalBufferProperties & operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  29848. {
  29849. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalBufferProperties const *>( &rhs );
  29850. return *this;
  29851. }
  29852. operator VkExternalBufferProperties const &() const VULKAN_HPP_NOEXCEPT
  29853. {
  29854. return *reinterpret_cast<const VkExternalBufferProperties *>( this );
  29855. }
  29856. operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT
  29857. {
  29858. return *reinterpret_cast<VkExternalBufferProperties *>( this );
  29859. }
  29860. #if defined( VULKAN_HPP_USE_REFLECT )
  29861. # if 14 <= VULKAN_HPP_CPP_VERSION
  29862. auto
  29863. # else
  29864. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const &>
  29865. # endif
  29866. reflect() const VULKAN_HPP_NOEXCEPT
  29867. {
  29868. return std::tie( sType, pNext, externalMemoryProperties );
  29869. }
  29870. #endif
  29871. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29872. auto operator<=>( ExternalBufferProperties const & ) const = default;
  29873. #else
  29874. bool operator==( ExternalBufferProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  29875. {
  29876. # if defined( VULKAN_HPP_USE_REFLECT )
  29877. return this->reflect() == rhs.reflect();
  29878. # else
  29879. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalMemoryProperties == rhs.externalMemoryProperties );
  29880. # endif
  29881. }
  29882. bool operator!=( ExternalBufferProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  29883. {
  29884. return !operator==( rhs );
  29885. }
  29886. #endif
  29887. public:
  29888. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties;
  29889. void * pNext = {};
  29890. VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
  29891. };
  29892. template <>
  29893. struct CppType<StructureType, StructureType::eExternalBufferProperties>
  29894. {
  29895. using Type = ExternalBufferProperties;
  29896. };
  29897. using ExternalBufferPropertiesKHR = ExternalBufferProperties;
  29898. struct ExternalFenceProperties
  29899. {
  29900. using NativeType = VkExternalFenceProperties;
  29901. static const bool allowDuplicate = false;
  29902. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFenceProperties;
  29903. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29904. VULKAN_HPP_CONSTEXPR ExternalFenceProperties( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {},
  29905. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {},
  29906. VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {},
  29907. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29908. : pNext( pNext_ )
  29909. , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
  29910. , compatibleHandleTypes( compatibleHandleTypes_ )
  29911. , externalFenceFeatures( externalFenceFeatures_ )
  29912. {
  29913. }
  29914. VULKAN_HPP_CONSTEXPR ExternalFenceProperties( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29915. ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  29916. : ExternalFenceProperties( *reinterpret_cast<ExternalFenceProperties const *>( &rhs ) )
  29917. {
  29918. }
  29919. ExternalFenceProperties & operator=( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29920. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29921. ExternalFenceProperties & operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  29922. {
  29923. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFenceProperties const *>( &rhs );
  29924. return *this;
  29925. }
  29926. operator VkExternalFenceProperties const &() const VULKAN_HPP_NOEXCEPT
  29927. {
  29928. return *reinterpret_cast<const VkExternalFenceProperties *>( this );
  29929. }
  29930. operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT
  29931. {
  29932. return *reinterpret_cast<VkExternalFenceProperties *>( this );
  29933. }
  29934. #if defined( VULKAN_HPP_USE_REFLECT )
  29935. # if 14 <= VULKAN_HPP_CPP_VERSION
  29936. auto
  29937. # else
  29938. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  29939. void * const &,
  29940. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags const &,
  29941. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags const &,
  29942. VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags const &>
  29943. # endif
  29944. reflect() const VULKAN_HPP_NOEXCEPT
  29945. {
  29946. return std::tie( sType, pNext, exportFromImportedHandleTypes, compatibleHandleTypes, externalFenceFeatures );
  29947. }
  29948. #endif
  29949. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  29950. auto operator<=>( ExternalFenceProperties const & ) const = default;
  29951. #else
  29952. bool operator==( ExternalFenceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  29953. {
  29954. # if defined( VULKAN_HPP_USE_REFLECT )
  29955. return this->reflect() == rhs.reflect();
  29956. # else
  29957. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) &&
  29958. ( compatibleHandleTypes == rhs.compatibleHandleTypes ) && ( externalFenceFeatures == rhs.externalFenceFeatures );
  29959. # endif
  29960. }
  29961. bool operator!=( ExternalFenceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  29962. {
  29963. return !operator==( rhs );
  29964. }
  29965. #endif
  29966. public:
  29967. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties;
  29968. void * pNext = {};
  29969. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {};
  29970. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {};
  29971. VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {};
  29972. };
  29973. template <>
  29974. struct CppType<StructureType, StructureType::eExternalFenceProperties>
  29975. {
  29976. using Type = ExternalFenceProperties;
  29977. };
  29978. using ExternalFencePropertiesKHR = ExternalFenceProperties;
  29979. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  29980. struct ExternalFormatANDROID
  29981. {
  29982. using NativeType = VkExternalFormatANDROID;
  29983. static const bool allowDuplicate = false;
  29984. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatANDROID;
  29985. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  29986. VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( uint64_t externalFormat_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  29987. : pNext( pNext_ )
  29988. , externalFormat( externalFormat_ )
  29989. {
  29990. }
  29991. VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29992. ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  29993. : ExternalFormatANDROID( *reinterpret_cast<ExternalFormatANDROID const *>( &rhs ) )
  29994. {
  29995. }
  29996. ExternalFormatANDROID & operator=( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  29997. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  29998. ExternalFormatANDROID & operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  29999. {
  30000. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFormatANDROID const *>( &rhs );
  30001. return *this;
  30002. }
  30003. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30004. VULKAN_HPP_CONSTEXPR_14 ExternalFormatANDROID & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30005. {
  30006. pNext = pNext_;
  30007. return *this;
  30008. }
  30009. VULKAN_HPP_CONSTEXPR_14 ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT
  30010. {
  30011. externalFormat = externalFormat_;
  30012. return *this;
  30013. }
  30014. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30015. operator VkExternalFormatANDROID const &() const VULKAN_HPP_NOEXCEPT
  30016. {
  30017. return *reinterpret_cast<const VkExternalFormatANDROID *>( this );
  30018. }
  30019. operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT
  30020. {
  30021. return *reinterpret_cast<VkExternalFormatANDROID *>( this );
  30022. }
  30023. # if defined( VULKAN_HPP_USE_REFLECT )
  30024. # if 14 <= VULKAN_HPP_CPP_VERSION
  30025. auto
  30026. # else
  30027. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
  30028. # endif
  30029. reflect() const VULKAN_HPP_NOEXCEPT
  30030. {
  30031. return std::tie( sType, pNext, externalFormat );
  30032. }
  30033. # endif
  30034. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30035. auto operator<=>( ExternalFormatANDROID const & ) const = default;
  30036. # else
  30037. bool operator==( ExternalFormatANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  30038. {
  30039. # if defined( VULKAN_HPP_USE_REFLECT )
  30040. return this->reflect() == rhs.reflect();
  30041. # else
  30042. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalFormat == rhs.externalFormat );
  30043. # endif
  30044. }
  30045. bool operator!=( ExternalFormatANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  30046. {
  30047. return !operator==( rhs );
  30048. }
  30049. # endif
  30050. public:
  30051. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID;
  30052. void * pNext = {};
  30053. uint64_t externalFormat = {};
  30054. };
  30055. template <>
  30056. struct CppType<StructureType, StructureType::eExternalFormatANDROID>
  30057. {
  30058. using Type = ExternalFormatANDROID;
  30059. };
  30060. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  30061. #if defined( VK_USE_PLATFORM_SCREEN_QNX )
  30062. struct ExternalFormatQNX
  30063. {
  30064. using NativeType = VkExternalFormatQNX;
  30065. static const bool allowDuplicate = false;
  30066. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatQNX;
  30067. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30068. VULKAN_HPP_CONSTEXPR ExternalFormatQNX( uint64_t externalFormat_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30069. : pNext( pNext_ )
  30070. , externalFormat( externalFormat_ )
  30071. {
  30072. }
  30073. VULKAN_HPP_CONSTEXPR ExternalFormatQNX( ExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30074. ExternalFormatQNX( VkExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT : ExternalFormatQNX( *reinterpret_cast<ExternalFormatQNX const *>( &rhs ) ) {}
  30075. ExternalFormatQNX & operator=( ExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30076. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30077. ExternalFormatQNX & operator=( VkExternalFormatQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  30078. {
  30079. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalFormatQNX const *>( &rhs );
  30080. return *this;
  30081. }
  30082. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30083. VULKAN_HPP_CONSTEXPR_14 ExternalFormatQNX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30084. {
  30085. pNext = pNext_;
  30086. return *this;
  30087. }
  30088. VULKAN_HPP_CONSTEXPR_14 ExternalFormatQNX & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT
  30089. {
  30090. externalFormat = externalFormat_;
  30091. return *this;
  30092. }
  30093. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30094. operator VkExternalFormatQNX const &() const VULKAN_HPP_NOEXCEPT
  30095. {
  30096. return *reinterpret_cast<const VkExternalFormatQNX *>( this );
  30097. }
  30098. operator VkExternalFormatQNX &() VULKAN_HPP_NOEXCEPT
  30099. {
  30100. return *reinterpret_cast<VkExternalFormatQNX *>( this );
  30101. }
  30102. # if defined( VULKAN_HPP_USE_REFLECT )
  30103. # if 14 <= VULKAN_HPP_CPP_VERSION
  30104. auto
  30105. # else
  30106. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
  30107. # endif
  30108. reflect() const VULKAN_HPP_NOEXCEPT
  30109. {
  30110. return std::tie( sType, pNext, externalFormat );
  30111. }
  30112. # endif
  30113. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30114. auto operator<=>( ExternalFormatQNX const & ) const = default;
  30115. # else
  30116. bool operator==( ExternalFormatQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  30117. {
  30118. # if defined( VULKAN_HPP_USE_REFLECT )
  30119. return this->reflect() == rhs.reflect();
  30120. # else
  30121. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalFormat == rhs.externalFormat );
  30122. # endif
  30123. }
  30124. bool operator!=( ExternalFormatQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  30125. {
  30126. return !operator==( rhs );
  30127. }
  30128. # endif
  30129. public:
  30130. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatQNX;
  30131. void * pNext = {};
  30132. uint64_t externalFormat = {};
  30133. };
  30134. template <>
  30135. struct CppType<StructureType, StructureType::eExternalFormatQNX>
  30136. {
  30137. using Type = ExternalFormatQNX;
  30138. };
  30139. #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
  30140. struct ExternalImageFormatProperties
  30141. {
  30142. using NativeType = VkExternalImageFormatProperties;
  30143. static const bool allowDuplicate = false;
  30144. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalImageFormatProperties;
  30145. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30146. VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {},
  30147. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30148. : pNext( pNext_ )
  30149. , externalMemoryProperties( externalMemoryProperties_ )
  30150. {
  30151. }
  30152. VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30153. ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  30154. : ExternalImageFormatProperties( *reinterpret_cast<ExternalImageFormatProperties const *>( &rhs ) )
  30155. {
  30156. }
  30157. ExternalImageFormatProperties & operator=( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30158. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30159. ExternalImageFormatProperties & operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  30160. {
  30161. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties const *>( &rhs );
  30162. return *this;
  30163. }
  30164. operator VkExternalImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
  30165. {
  30166. return *reinterpret_cast<const VkExternalImageFormatProperties *>( this );
  30167. }
  30168. operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT
  30169. {
  30170. return *reinterpret_cast<VkExternalImageFormatProperties *>( this );
  30171. }
  30172. #if defined( VULKAN_HPP_USE_REFLECT )
  30173. # if 14 <= VULKAN_HPP_CPP_VERSION
  30174. auto
  30175. # else
  30176. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const &>
  30177. # endif
  30178. reflect() const VULKAN_HPP_NOEXCEPT
  30179. {
  30180. return std::tie( sType, pNext, externalMemoryProperties );
  30181. }
  30182. #endif
  30183. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30184. auto operator<=>( ExternalImageFormatProperties const & ) const = default;
  30185. #else
  30186. bool operator==( ExternalImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  30187. {
  30188. # if defined( VULKAN_HPP_USE_REFLECT )
  30189. return this->reflect() == rhs.reflect();
  30190. # else
  30191. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalMemoryProperties == rhs.externalMemoryProperties );
  30192. # endif
  30193. }
  30194. bool operator!=( ExternalImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  30195. {
  30196. return !operator==( rhs );
  30197. }
  30198. #endif
  30199. public:
  30200. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties;
  30201. void * pNext = {};
  30202. VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {};
  30203. };
  30204. template <>
  30205. struct CppType<StructureType, StructureType::eExternalImageFormatProperties>
  30206. {
  30207. using Type = ExternalImageFormatProperties;
  30208. };
  30209. using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
  30210. struct ImageFormatProperties
  30211. {
  30212. using NativeType = VkImageFormatProperties;
  30213. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30214. VULKAN_HPP_CONSTEXPR ImageFormatProperties( VULKAN_HPP_NAMESPACE::Extent3D maxExtent_ = {},
  30215. uint32_t maxMipLevels_ = {},
  30216. uint32_t maxArrayLayers_ = {},
  30217. VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {},
  30218. VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize_ = {} ) VULKAN_HPP_NOEXCEPT
  30219. : maxExtent( maxExtent_ )
  30220. , maxMipLevels( maxMipLevels_ )
  30221. , maxArrayLayers( maxArrayLayers_ )
  30222. , sampleCounts( sampleCounts_ )
  30223. , maxResourceSize( maxResourceSize_ )
  30224. {
  30225. }
  30226. VULKAN_HPP_CONSTEXPR ImageFormatProperties( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30227. ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  30228. : ImageFormatProperties( *reinterpret_cast<ImageFormatProperties const *>( &rhs ) )
  30229. {
  30230. }
  30231. ImageFormatProperties & operator=( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30232. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30233. ImageFormatProperties & operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  30234. {
  30235. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties const *>( &rhs );
  30236. return *this;
  30237. }
  30238. operator VkImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
  30239. {
  30240. return *reinterpret_cast<const VkImageFormatProperties *>( this );
  30241. }
  30242. operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT
  30243. {
  30244. return *reinterpret_cast<VkImageFormatProperties *>( this );
  30245. }
  30246. #if defined( VULKAN_HPP_USE_REFLECT )
  30247. # if 14 <= VULKAN_HPP_CPP_VERSION
  30248. auto
  30249. # else
  30250. std::tuple<VULKAN_HPP_NAMESPACE::Extent3D const &,
  30251. uint32_t const &,
  30252. uint32_t const &,
  30253. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  30254. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  30255. # endif
  30256. reflect() const VULKAN_HPP_NOEXCEPT
  30257. {
  30258. return std::tie( maxExtent, maxMipLevels, maxArrayLayers, sampleCounts, maxResourceSize );
  30259. }
  30260. #endif
  30261. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30262. auto operator<=>( ImageFormatProperties const & ) const = default;
  30263. #else
  30264. bool operator==( ImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  30265. {
  30266. # if defined( VULKAN_HPP_USE_REFLECT )
  30267. return this->reflect() == rhs.reflect();
  30268. # else
  30269. return ( maxExtent == rhs.maxExtent ) && ( maxMipLevels == rhs.maxMipLevels ) && ( maxArrayLayers == rhs.maxArrayLayers ) &&
  30270. ( sampleCounts == rhs.sampleCounts ) && ( maxResourceSize == rhs.maxResourceSize );
  30271. # endif
  30272. }
  30273. bool operator!=( ImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  30274. {
  30275. return !operator==( rhs );
  30276. }
  30277. #endif
  30278. public:
  30279. VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {};
  30280. uint32_t maxMipLevels = {};
  30281. uint32_t maxArrayLayers = {};
  30282. VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
  30283. VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {};
  30284. };
  30285. struct ExternalImageFormatPropertiesNV
  30286. {
  30287. using NativeType = VkExternalImageFormatPropertiesNV;
  30288. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30289. VULKAN_HPP_CONSTEXPR
  30290. ExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {},
  30291. VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures_ = {},
  30292. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes_ = {},
  30293. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT
  30294. : imageFormatProperties( imageFormatProperties_ )
  30295. , externalMemoryFeatures( externalMemoryFeatures_ )
  30296. , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
  30297. , compatibleHandleTypes( compatibleHandleTypes_ )
  30298. {
  30299. }
  30300. VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30301. ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  30302. : ExternalImageFormatPropertiesNV( *reinterpret_cast<ExternalImageFormatPropertiesNV const *>( &rhs ) )
  30303. {
  30304. }
  30305. ExternalImageFormatPropertiesNV & operator=( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30306. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30307. ExternalImageFormatPropertiesNV & operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  30308. {
  30309. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV const *>( &rhs );
  30310. return *this;
  30311. }
  30312. operator VkExternalImageFormatPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  30313. {
  30314. return *reinterpret_cast<const VkExternalImageFormatPropertiesNV *>( this );
  30315. }
  30316. operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT
  30317. {
  30318. return *reinterpret_cast<VkExternalImageFormatPropertiesNV *>( this );
  30319. }
  30320. #if defined( VULKAN_HPP_USE_REFLECT )
  30321. # if 14 <= VULKAN_HPP_CPP_VERSION
  30322. auto
  30323. # else
  30324. std::tuple<VULKAN_HPP_NAMESPACE::ImageFormatProperties const &,
  30325. VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV const &,
  30326. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &,
  30327. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &>
  30328. # endif
  30329. reflect() const VULKAN_HPP_NOEXCEPT
  30330. {
  30331. return std::tie( imageFormatProperties, externalMemoryFeatures, exportFromImportedHandleTypes, compatibleHandleTypes );
  30332. }
  30333. #endif
  30334. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30335. auto operator<=>( ExternalImageFormatPropertiesNV const & ) const = default;
  30336. #else
  30337. bool operator==( ExternalImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  30338. {
  30339. # if defined( VULKAN_HPP_USE_REFLECT )
  30340. return this->reflect() == rhs.reflect();
  30341. # else
  30342. return ( imageFormatProperties == rhs.imageFormatProperties ) && ( externalMemoryFeatures == rhs.externalMemoryFeatures ) &&
  30343. ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
  30344. # endif
  30345. }
  30346. bool operator!=( ExternalImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  30347. {
  30348. return !operator==( rhs );
  30349. }
  30350. #endif
  30351. public:
  30352. VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
  30353. VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {};
  30354. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {};
  30355. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {};
  30356. };
  30357. struct ExternalMemoryAcquireUnmodifiedEXT
  30358. {
  30359. using NativeType = VkExternalMemoryAcquireUnmodifiedEXT;
  30360. static const bool allowDuplicate = false;
  30361. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryAcquireUnmodifiedEXT;
  30362. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30363. VULKAN_HPP_CONSTEXPR ExternalMemoryAcquireUnmodifiedEXT( VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory_ = {},
  30364. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30365. : pNext( pNext_ )
  30366. , acquireUnmodifiedMemory( acquireUnmodifiedMemory_ )
  30367. {
  30368. }
  30369. VULKAN_HPP_CONSTEXPR ExternalMemoryAcquireUnmodifiedEXT( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30370. ExternalMemoryAcquireUnmodifiedEXT( VkExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30371. : ExternalMemoryAcquireUnmodifiedEXT( *reinterpret_cast<ExternalMemoryAcquireUnmodifiedEXT const *>( &rhs ) )
  30372. {
  30373. }
  30374. ExternalMemoryAcquireUnmodifiedEXT & operator=( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30375. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30376. ExternalMemoryAcquireUnmodifiedEXT & operator=( VkExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  30377. {
  30378. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT const *>( &rhs );
  30379. return *this;
  30380. }
  30381. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30382. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryAcquireUnmodifiedEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30383. {
  30384. pNext = pNext_;
  30385. return *this;
  30386. }
  30387. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryAcquireUnmodifiedEXT &
  30388. setAcquireUnmodifiedMemory( VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory_ ) VULKAN_HPP_NOEXCEPT
  30389. {
  30390. acquireUnmodifiedMemory = acquireUnmodifiedMemory_;
  30391. return *this;
  30392. }
  30393. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30394. operator VkExternalMemoryAcquireUnmodifiedEXT const &() const VULKAN_HPP_NOEXCEPT
  30395. {
  30396. return *reinterpret_cast<const VkExternalMemoryAcquireUnmodifiedEXT *>( this );
  30397. }
  30398. operator VkExternalMemoryAcquireUnmodifiedEXT &() VULKAN_HPP_NOEXCEPT
  30399. {
  30400. return *reinterpret_cast<VkExternalMemoryAcquireUnmodifiedEXT *>( this );
  30401. }
  30402. #if defined( VULKAN_HPP_USE_REFLECT )
  30403. # if 14 <= VULKAN_HPP_CPP_VERSION
  30404. auto
  30405. # else
  30406. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  30407. # endif
  30408. reflect() const VULKAN_HPP_NOEXCEPT
  30409. {
  30410. return std::tie( sType, pNext, acquireUnmodifiedMemory );
  30411. }
  30412. #endif
  30413. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30414. auto operator<=>( ExternalMemoryAcquireUnmodifiedEXT const & ) const = default;
  30415. #else
  30416. bool operator==( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  30417. {
  30418. # if defined( VULKAN_HPP_USE_REFLECT )
  30419. return this->reflect() == rhs.reflect();
  30420. # else
  30421. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( acquireUnmodifiedMemory == rhs.acquireUnmodifiedMemory );
  30422. # endif
  30423. }
  30424. bool operator!=( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  30425. {
  30426. return !operator==( rhs );
  30427. }
  30428. #endif
  30429. public:
  30430. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryAcquireUnmodifiedEXT;
  30431. const void * pNext = {};
  30432. VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory = {};
  30433. };
  30434. template <>
  30435. struct CppType<StructureType, StructureType::eExternalMemoryAcquireUnmodifiedEXT>
  30436. {
  30437. using Type = ExternalMemoryAcquireUnmodifiedEXT;
  30438. };
  30439. struct ExternalMemoryBufferCreateInfo
  30440. {
  30441. using NativeType = VkExternalMemoryBufferCreateInfo;
  30442. static const bool allowDuplicate = false;
  30443. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryBufferCreateInfo;
  30444. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30445. VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {},
  30446. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30447. : pNext( pNext_ )
  30448. , handleTypes( handleTypes_ )
  30449. {
  30450. }
  30451. VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30452. ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  30453. : ExternalMemoryBufferCreateInfo( *reinterpret_cast<ExternalMemoryBufferCreateInfo const *>( &rhs ) )
  30454. {
  30455. }
  30456. ExternalMemoryBufferCreateInfo & operator=( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30457. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30458. ExternalMemoryBufferCreateInfo & operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  30459. {
  30460. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const *>( &rhs );
  30461. return *this;
  30462. }
  30463. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30464. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryBufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30465. {
  30466. pNext = pNext_;
  30467. return *this;
  30468. }
  30469. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryBufferCreateInfo &
  30470. setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
  30471. {
  30472. handleTypes = handleTypes_;
  30473. return *this;
  30474. }
  30475. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30476. operator VkExternalMemoryBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  30477. {
  30478. return *reinterpret_cast<const VkExternalMemoryBufferCreateInfo *>( this );
  30479. }
  30480. operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT
  30481. {
  30482. return *reinterpret_cast<VkExternalMemoryBufferCreateInfo *>( this );
  30483. }
  30484. #if defined( VULKAN_HPP_USE_REFLECT )
  30485. # if 14 <= VULKAN_HPP_CPP_VERSION
  30486. auto
  30487. # else
  30488. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
  30489. # endif
  30490. reflect() const VULKAN_HPP_NOEXCEPT
  30491. {
  30492. return std::tie( sType, pNext, handleTypes );
  30493. }
  30494. #endif
  30495. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30496. auto operator<=>( ExternalMemoryBufferCreateInfo const & ) const = default;
  30497. #else
  30498. bool operator==( ExternalMemoryBufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  30499. {
  30500. # if defined( VULKAN_HPP_USE_REFLECT )
  30501. return this->reflect() == rhs.reflect();
  30502. # else
  30503. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  30504. # endif
  30505. }
  30506. bool operator!=( ExternalMemoryBufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  30507. {
  30508. return !operator==( rhs );
  30509. }
  30510. #endif
  30511. public:
  30512. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo;
  30513. const void * pNext = {};
  30514. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
  30515. };
  30516. template <>
  30517. struct CppType<StructureType, StructureType::eExternalMemoryBufferCreateInfo>
  30518. {
  30519. using Type = ExternalMemoryBufferCreateInfo;
  30520. };
  30521. using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
  30522. struct ExternalMemoryImageCreateInfo
  30523. {
  30524. using NativeType = VkExternalMemoryImageCreateInfo;
  30525. static const bool allowDuplicate = false;
  30526. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfo;
  30527. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30528. VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {},
  30529. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30530. : pNext( pNext_ )
  30531. , handleTypes( handleTypes_ )
  30532. {
  30533. }
  30534. VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30535. ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  30536. : ExternalMemoryImageCreateInfo( *reinterpret_cast<ExternalMemoryImageCreateInfo const *>( &rhs ) )
  30537. {
  30538. }
  30539. ExternalMemoryImageCreateInfo & operator=( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30540. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30541. ExternalMemoryImageCreateInfo & operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  30542. {
  30543. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo const *>( &rhs );
  30544. return *this;
  30545. }
  30546. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30547. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30548. {
  30549. pNext = pNext_;
  30550. return *this;
  30551. }
  30552. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfo &
  30553. setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT
  30554. {
  30555. handleTypes = handleTypes_;
  30556. return *this;
  30557. }
  30558. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30559. operator VkExternalMemoryImageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  30560. {
  30561. return *reinterpret_cast<const VkExternalMemoryImageCreateInfo *>( this );
  30562. }
  30563. operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT
  30564. {
  30565. return *reinterpret_cast<VkExternalMemoryImageCreateInfo *>( this );
  30566. }
  30567. #if defined( VULKAN_HPP_USE_REFLECT )
  30568. # if 14 <= VULKAN_HPP_CPP_VERSION
  30569. auto
  30570. # else
  30571. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags const &>
  30572. # endif
  30573. reflect() const VULKAN_HPP_NOEXCEPT
  30574. {
  30575. return std::tie( sType, pNext, handleTypes );
  30576. }
  30577. #endif
  30578. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30579. auto operator<=>( ExternalMemoryImageCreateInfo const & ) const = default;
  30580. #else
  30581. bool operator==( ExternalMemoryImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  30582. {
  30583. # if defined( VULKAN_HPP_USE_REFLECT )
  30584. return this->reflect() == rhs.reflect();
  30585. # else
  30586. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  30587. # endif
  30588. }
  30589. bool operator!=( ExternalMemoryImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  30590. {
  30591. return !operator==( rhs );
  30592. }
  30593. #endif
  30594. public:
  30595. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo;
  30596. const void * pNext = {};
  30597. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {};
  30598. };
  30599. template <>
  30600. struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfo>
  30601. {
  30602. using Type = ExternalMemoryImageCreateInfo;
  30603. };
  30604. using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
  30605. struct ExternalMemoryImageCreateInfoNV
  30606. {
  30607. using NativeType = VkExternalMemoryImageCreateInfoNV;
  30608. static const bool allowDuplicate = false;
  30609. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfoNV;
  30610. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30611. VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {},
  30612. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30613. : pNext( pNext_ )
  30614. , handleTypes( handleTypes_ )
  30615. {
  30616. }
  30617. VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30618. ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  30619. : ExternalMemoryImageCreateInfoNV( *reinterpret_cast<ExternalMemoryImageCreateInfoNV const *>( &rhs ) )
  30620. {
  30621. }
  30622. ExternalMemoryImageCreateInfoNV & operator=( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30623. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30624. ExternalMemoryImageCreateInfoNV & operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  30625. {
  30626. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV const *>( &rhs );
  30627. return *this;
  30628. }
  30629. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30630. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30631. {
  30632. pNext = pNext_;
  30633. return *this;
  30634. }
  30635. VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfoNV &
  30636. setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT
  30637. {
  30638. handleTypes = handleTypes_;
  30639. return *this;
  30640. }
  30641. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30642. operator VkExternalMemoryImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  30643. {
  30644. return *reinterpret_cast<const VkExternalMemoryImageCreateInfoNV *>( this );
  30645. }
  30646. operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  30647. {
  30648. return *reinterpret_cast<VkExternalMemoryImageCreateInfoNV *>( this );
  30649. }
  30650. #if defined( VULKAN_HPP_USE_REFLECT )
  30651. # if 14 <= VULKAN_HPP_CPP_VERSION
  30652. auto
  30653. # else
  30654. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &>
  30655. # endif
  30656. reflect() const VULKAN_HPP_NOEXCEPT
  30657. {
  30658. return std::tie( sType, pNext, handleTypes );
  30659. }
  30660. #endif
  30661. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30662. auto operator<=>( ExternalMemoryImageCreateInfoNV const & ) const = default;
  30663. #else
  30664. bool operator==( ExternalMemoryImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  30665. {
  30666. # if defined( VULKAN_HPP_USE_REFLECT )
  30667. return this->reflect() == rhs.reflect();
  30668. # else
  30669. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes );
  30670. # endif
  30671. }
  30672. bool operator!=( ExternalMemoryImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  30673. {
  30674. return !operator==( rhs );
  30675. }
  30676. #endif
  30677. public:
  30678. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV;
  30679. const void * pNext = {};
  30680. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {};
  30681. };
  30682. template <>
  30683. struct CppType<StructureType, StructureType::eExternalMemoryImageCreateInfoNV>
  30684. {
  30685. using Type = ExternalMemoryImageCreateInfoNV;
  30686. };
  30687. struct ExternalSemaphoreProperties
  30688. {
  30689. using NativeType = VkExternalSemaphoreProperties;
  30690. static const bool allowDuplicate = false;
  30691. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalSemaphoreProperties;
  30692. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30693. VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {},
  30694. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {},
  30695. VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {},
  30696. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30697. : pNext( pNext_ )
  30698. , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ )
  30699. , compatibleHandleTypes( compatibleHandleTypes_ )
  30700. , externalSemaphoreFeatures( externalSemaphoreFeatures_ )
  30701. {
  30702. }
  30703. VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30704. ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  30705. : ExternalSemaphoreProperties( *reinterpret_cast<ExternalSemaphoreProperties const *>( &rhs ) )
  30706. {
  30707. }
  30708. ExternalSemaphoreProperties & operator=( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30709. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30710. ExternalSemaphoreProperties & operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  30711. {
  30712. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const *>( &rhs );
  30713. return *this;
  30714. }
  30715. operator VkExternalSemaphoreProperties const &() const VULKAN_HPP_NOEXCEPT
  30716. {
  30717. return *reinterpret_cast<const VkExternalSemaphoreProperties *>( this );
  30718. }
  30719. operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
  30720. {
  30721. return *reinterpret_cast<VkExternalSemaphoreProperties *>( this );
  30722. }
  30723. #if defined( VULKAN_HPP_USE_REFLECT )
  30724. # if 14 <= VULKAN_HPP_CPP_VERSION
  30725. auto
  30726. # else
  30727. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  30728. void * const &,
  30729. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags const &,
  30730. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags const &,
  30731. VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags const &>
  30732. # endif
  30733. reflect() const VULKAN_HPP_NOEXCEPT
  30734. {
  30735. return std::tie( sType, pNext, exportFromImportedHandleTypes, compatibleHandleTypes, externalSemaphoreFeatures );
  30736. }
  30737. #endif
  30738. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30739. auto operator<=>( ExternalSemaphoreProperties const & ) const = default;
  30740. #else
  30741. bool operator==( ExternalSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  30742. {
  30743. # if defined( VULKAN_HPP_USE_REFLECT )
  30744. return this->reflect() == rhs.reflect();
  30745. # else
  30746. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) &&
  30747. ( compatibleHandleTypes == rhs.compatibleHandleTypes ) && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures );
  30748. # endif
  30749. }
  30750. bool operator!=( ExternalSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  30751. {
  30752. return !operator==( rhs );
  30753. }
  30754. #endif
  30755. public:
  30756. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties;
  30757. void * pNext = {};
  30758. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {};
  30759. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {};
  30760. VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {};
  30761. };
  30762. template <>
  30763. struct CppType<StructureType, StructureType::eExternalSemaphoreProperties>
  30764. {
  30765. using Type = ExternalSemaphoreProperties;
  30766. };
  30767. using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
  30768. struct FenceCreateInfo
  30769. {
  30770. using NativeType = VkFenceCreateInfo;
  30771. static const bool allowDuplicate = false;
  30772. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceCreateInfo;
  30773. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30774. VULKAN_HPP_CONSTEXPR FenceCreateInfo( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30775. : pNext( pNext_ )
  30776. , flags( flags_ )
  30777. {
  30778. }
  30779. VULKAN_HPP_CONSTEXPR FenceCreateInfo( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30780. FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : FenceCreateInfo( *reinterpret_cast<FenceCreateInfo const *>( &rhs ) ) {}
  30781. FenceCreateInfo & operator=( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30782. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30783. FenceCreateInfo & operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  30784. {
  30785. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceCreateInfo const *>( &rhs );
  30786. return *this;
  30787. }
  30788. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30789. VULKAN_HPP_CONSTEXPR_14 FenceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30790. {
  30791. pNext = pNext_;
  30792. return *this;
  30793. }
  30794. VULKAN_HPP_CONSTEXPR_14 FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  30795. {
  30796. flags = flags_;
  30797. return *this;
  30798. }
  30799. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30800. operator VkFenceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  30801. {
  30802. return *reinterpret_cast<const VkFenceCreateInfo *>( this );
  30803. }
  30804. operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT
  30805. {
  30806. return *reinterpret_cast<VkFenceCreateInfo *>( this );
  30807. }
  30808. #if defined( VULKAN_HPP_USE_REFLECT )
  30809. # if 14 <= VULKAN_HPP_CPP_VERSION
  30810. auto
  30811. # else
  30812. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::FenceCreateFlags const &>
  30813. # endif
  30814. reflect() const VULKAN_HPP_NOEXCEPT
  30815. {
  30816. return std::tie( sType, pNext, flags );
  30817. }
  30818. #endif
  30819. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30820. auto operator<=>( FenceCreateInfo const & ) const = default;
  30821. #else
  30822. bool operator==( FenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  30823. {
  30824. # if defined( VULKAN_HPP_USE_REFLECT )
  30825. return this->reflect() == rhs.reflect();
  30826. # else
  30827. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  30828. # endif
  30829. }
  30830. bool operator!=( FenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  30831. {
  30832. return !operator==( rhs );
  30833. }
  30834. #endif
  30835. public:
  30836. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo;
  30837. const void * pNext = {};
  30838. VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {};
  30839. };
  30840. template <>
  30841. struct CppType<StructureType, StructureType::eFenceCreateInfo>
  30842. {
  30843. using Type = FenceCreateInfo;
  30844. };
  30845. struct FenceGetFdInfoKHR
  30846. {
  30847. using NativeType = VkFenceGetFdInfoKHR;
  30848. static const bool allowDuplicate = false;
  30849. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetFdInfoKHR;
  30850. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30851. VULKAN_HPP_CONSTEXPR
  30852. FenceGetFdInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {},
  30853. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  30854. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30855. : pNext( pNext_ )
  30856. , fence( fence_ )
  30857. , handleType( handleType_ )
  30858. {
  30859. }
  30860. VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30861. FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : FenceGetFdInfoKHR( *reinterpret_cast<FenceGetFdInfoKHR const *>( &rhs ) ) {}
  30862. FenceGetFdInfoKHR & operator=( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30863. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30864. FenceGetFdInfoKHR & operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  30865. {
  30866. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR const *>( &rhs );
  30867. return *this;
  30868. }
  30869. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30870. VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30871. {
  30872. pNext = pNext_;
  30873. return *this;
  30874. }
  30875. VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
  30876. {
  30877. fence = fence_;
  30878. return *this;
  30879. }
  30880. VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  30881. {
  30882. handleType = handleType_;
  30883. return *this;
  30884. }
  30885. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30886. operator VkFenceGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  30887. {
  30888. return *reinterpret_cast<const VkFenceGetFdInfoKHR *>( this );
  30889. }
  30890. operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  30891. {
  30892. return *reinterpret_cast<VkFenceGetFdInfoKHR *>( this );
  30893. }
  30894. #if defined( VULKAN_HPP_USE_REFLECT )
  30895. # if 14 <= VULKAN_HPP_CPP_VERSION
  30896. auto
  30897. # else
  30898. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  30899. const void * const &,
  30900. VULKAN_HPP_NAMESPACE::Fence const &,
  30901. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &>
  30902. # endif
  30903. reflect() const VULKAN_HPP_NOEXCEPT
  30904. {
  30905. return std::tie( sType, pNext, fence, handleType );
  30906. }
  30907. #endif
  30908. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  30909. auto operator<=>( FenceGetFdInfoKHR const & ) const = default;
  30910. #else
  30911. bool operator==( FenceGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  30912. {
  30913. # if defined( VULKAN_HPP_USE_REFLECT )
  30914. return this->reflect() == rhs.reflect();
  30915. # else
  30916. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && ( handleType == rhs.handleType );
  30917. # endif
  30918. }
  30919. bool operator!=( FenceGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  30920. {
  30921. return !operator==( rhs );
  30922. }
  30923. #endif
  30924. public:
  30925. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR;
  30926. const void * pNext = {};
  30927. VULKAN_HPP_NAMESPACE::Fence fence = {};
  30928. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
  30929. };
  30930. template <>
  30931. struct CppType<StructureType, StructureType::eFenceGetFdInfoKHR>
  30932. {
  30933. using Type = FenceGetFdInfoKHR;
  30934. };
  30935. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  30936. struct FenceGetWin32HandleInfoKHR
  30937. {
  30938. using NativeType = VkFenceGetWin32HandleInfoKHR;
  30939. static const bool allowDuplicate = false;
  30940. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetWin32HandleInfoKHR;
  30941. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  30942. VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR(
  30943. VULKAN_HPP_NAMESPACE::Fence fence_ = {},
  30944. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  30945. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  30946. : pNext( pNext_ )
  30947. , fence( fence_ )
  30948. , handleType( handleType_ )
  30949. {
  30950. }
  30951. VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30952. FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  30953. : FenceGetWin32HandleInfoKHR( *reinterpret_cast<FenceGetWin32HandleInfoKHR const *>( &rhs ) )
  30954. {
  30955. }
  30956. FenceGetWin32HandleInfoKHR & operator=( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  30957. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  30958. FenceGetWin32HandleInfoKHR & operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  30959. {
  30960. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR const *>( &rhs );
  30961. return *this;
  30962. }
  30963. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  30964. VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  30965. {
  30966. pNext = pNext_;
  30967. return *this;
  30968. }
  30969. VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
  30970. {
  30971. fence = fence_;
  30972. return *this;
  30973. }
  30974. VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  30975. {
  30976. handleType = handleType_;
  30977. return *this;
  30978. }
  30979. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  30980. operator VkFenceGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  30981. {
  30982. return *reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( this );
  30983. }
  30984. operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  30985. {
  30986. return *reinterpret_cast<VkFenceGetWin32HandleInfoKHR *>( this );
  30987. }
  30988. # if defined( VULKAN_HPP_USE_REFLECT )
  30989. # if 14 <= VULKAN_HPP_CPP_VERSION
  30990. auto
  30991. # else
  30992. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  30993. const void * const &,
  30994. VULKAN_HPP_NAMESPACE::Fence const &,
  30995. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &>
  30996. # endif
  30997. reflect() const VULKAN_HPP_NOEXCEPT
  30998. {
  30999. return std::tie( sType, pNext, fence, handleType );
  31000. }
  31001. # endif
  31002. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31003. auto operator<=>( FenceGetWin32HandleInfoKHR const & ) const = default;
  31004. # else
  31005. bool operator==( FenceGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  31006. {
  31007. # if defined( VULKAN_HPP_USE_REFLECT )
  31008. return this->reflect() == rhs.reflect();
  31009. # else
  31010. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && ( handleType == rhs.handleType );
  31011. # endif
  31012. }
  31013. bool operator!=( FenceGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  31014. {
  31015. return !operator==( rhs );
  31016. }
  31017. # endif
  31018. public:
  31019. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR;
  31020. const void * pNext = {};
  31021. VULKAN_HPP_NAMESPACE::Fence fence = {};
  31022. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
  31023. };
  31024. template <>
  31025. struct CppType<StructureType, StructureType::eFenceGetWin32HandleInfoKHR>
  31026. {
  31027. using Type = FenceGetWin32HandleInfoKHR;
  31028. };
  31029. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  31030. struct FilterCubicImageViewImageFormatPropertiesEXT
  31031. {
  31032. using NativeType = VkFilterCubicImageViewImageFormatPropertiesEXT;
  31033. static const bool allowDuplicate = false;
  31034. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
  31035. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31036. VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {},
  31037. VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {},
  31038. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31039. : pNext( pNext_ )
  31040. , filterCubic( filterCubic_ )
  31041. , filterCubicMinmax( filterCubicMinmax_ )
  31042. {
  31043. }
  31044. VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31045. FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  31046. : FilterCubicImageViewImageFormatPropertiesEXT( *reinterpret_cast<FilterCubicImageViewImageFormatPropertiesEXT const *>( &rhs ) )
  31047. {
  31048. }
  31049. FilterCubicImageViewImageFormatPropertiesEXT & operator=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31050. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31051. FilterCubicImageViewImageFormatPropertiesEXT & operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  31052. {
  31053. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT const *>( &rhs );
  31054. return *this;
  31055. }
  31056. operator VkFilterCubicImageViewImageFormatPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  31057. {
  31058. return *reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT *>( this );
  31059. }
  31060. operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  31061. {
  31062. return *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT *>( this );
  31063. }
  31064. #if defined( VULKAN_HPP_USE_REFLECT )
  31065. # if 14 <= VULKAN_HPP_CPP_VERSION
  31066. auto
  31067. # else
  31068. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  31069. # endif
  31070. reflect() const VULKAN_HPP_NOEXCEPT
  31071. {
  31072. return std::tie( sType, pNext, filterCubic, filterCubicMinmax );
  31073. }
  31074. #endif
  31075. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31076. auto operator<=>( FilterCubicImageViewImageFormatPropertiesEXT const & ) const = default;
  31077. #else
  31078. bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  31079. {
  31080. # if defined( VULKAN_HPP_USE_REFLECT )
  31081. return this->reflect() == rhs.reflect();
  31082. # else
  31083. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( filterCubic == rhs.filterCubic ) && ( filterCubicMinmax == rhs.filterCubicMinmax );
  31084. # endif
  31085. }
  31086. bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  31087. {
  31088. return !operator==( rhs );
  31089. }
  31090. #endif
  31091. public:
  31092. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
  31093. void * pNext = {};
  31094. VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {};
  31095. VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {};
  31096. };
  31097. template <>
  31098. struct CppType<StructureType, StructureType::eFilterCubicImageViewImageFormatPropertiesEXT>
  31099. {
  31100. using Type = FilterCubicImageViewImageFormatPropertiesEXT;
  31101. };
  31102. struct FormatProperties
  31103. {
  31104. using NativeType = VkFormatProperties;
  31105. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31106. VULKAN_HPP_CONSTEXPR FormatProperties( VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {},
  31107. VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {},
  31108. VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {} ) VULKAN_HPP_NOEXCEPT
  31109. : linearTilingFeatures( linearTilingFeatures_ )
  31110. , optimalTilingFeatures( optimalTilingFeatures_ )
  31111. , bufferFeatures( bufferFeatures_ )
  31112. {
  31113. }
  31114. VULKAN_HPP_CONSTEXPR FormatProperties( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31115. FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT : FormatProperties( *reinterpret_cast<FormatProperties const *>( &rhs ) ) {}
  31116. FormatProperties & operator=( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31117. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31118. FormatProperties & operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  31119. {
  31120. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties const *>( &rhs );
  31121. return *this;
  31122. }
  31123. operator VkFormatProperties const &() const VULKAN_HPP_NOEXCEPT
  31124. {
  31125. return *reinterpret_cast<const VkFormatProperties *>( this );
  31126. }
  31127. operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT
  31128. {
  31129. return *reinterpret_cast<VkFormatProperties *>( this );
  31130. }
  31131. #if defined( VULKAN_HPP_USE_REFLECT )
  31132. # if 14 <= VULKAN_HPP_CPP_VERSION
  31133. auto
  31134. # else
  31135. std::tuple<VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  31136. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  31137. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &>
  31138. # endif
  31139. reflect() const VULKAN_HPP_NOEXCEPT
  31140. {
  31141. return std::tie( linearTilingFeatures, optimalTilingFeatures, bufferFeatures );
  31142. }
  31143. #endif
  31144. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31145. auto operator<=>( FormatProperties const & ) const = default;
  31146. #else
  31147. bool operator==( FormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  31148. {
  31149. # if defined( VULKAN_HPP_USE_REFLECT )
  31150. return this->reflect() == rhs.reflect();
  31151. # else
  31152. return ( linearTilingFeatures == rhs.linearTilingFeatures ) && ( optimalTilingFeatures == rhs.optimalTilingFeatures ) &&
  31153. ( bufferFeatures == rhs.bufferFeatures );
  31154. # endif
  31155. }
  31156. bool operator!=( FormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  31157. {
  31158. return !operator==( rhs );
  31159. }
  31160. #endif
  31161. public:
  31162. VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {};
  31163. VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {};
  31164. VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {};
  31165. };
  31166. struct FormatProperties2
  31167. {
  31168. using NativeType = VkFormatProperties2;
  31169. static const bool allowDuplicate = false;
  31170. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties2;
  31171. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31172. VULKAN_HPP_CONSTEXPR FormatProperties2( VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31173. : pNext( pNext_ )
  31174. , formatProperties( formatProperties_ )
  31175. {
  31176. }
  31177. VULKAN_HPP_CONSTEXPR FormatProperties2( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31178. FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT : FormatProperties2( *reinterpret_cast<FormatProperties2 const *>( &rhs ) ) {}
  31179. FormatProperties2 & operator=( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31180. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31181. FormatProperties2 & operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  31182. {
  31183. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties2 const *>( &rhs );
  31184. return *this;
  31185. }
  31186. operator VkFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
  31187. {
  31188. return *reinterpret_cast<const VkFormatProperties2 *>( this );
  31189. }
  31190. operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT
  31191. {
  31192. return *reinterpret_cast<VkFormatProperties2 *>( this );
  31193. }
  31194. #if defined( VULKAN_HPP_USE_REFLECT )
  31195. # if 14 <= VULKAN_HPP_CPP_VERSION
  31196. auto
  31197. # else
  31198. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::FormatProperties const &>
  31199. # endif
  31200. reflect() const VULKAN_HPP_NOEXCEPT
  31201. {
  31202. return std::tie( sType, pNext, formatProperties );
  31203. }
  31204. #endif
  31205. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31206. auto operator<=>( FormatProperties2 const & ) const = default;
  31207. #else
  31208. bool operator==( FormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31209. {
  31210. # if defined( VULKAN_HPP_USE_REFLECT )
  31211. return this->reflect() == rhs.reflect();
  31212. # else
  31213. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( formatProperties == rhs.formatProperties );
  31214. # endif
  31215. }
  31216. bool operator!=( FormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31217. {
  31218. return !operator==( rhs );
  31219. }
  31220. #endif
  31221. public:
  31222. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2;
  31223. void * pNext = {};
  31224. VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {};
  31225. };
  31226. template <>
  31227. struct CppType<StructureType, StructureType::eFormatProperties2>
  31228. {
  31229. using Type = FormatProperties2;
  31230. };
  31231. using FormatProperties2KHR = FormatProperties2;
  31232. struct FormatProperties3
  31233. {
  31234. using NativeType = VkFormatProperties3;
  31235. static const bool allowDuplicate = false;
  31236. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties3;
  31237. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31238. VULKAN_HPP_CONSTEXPR FormatProperties3( VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 linearTilingFeatures_ = {},
  31239. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 optimalTilingFeatures_ = {},
  31240. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 bufferFeatures_ = {},
  31241. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31242. : pNext( pNext_ )
  31243. , linearTilingFeatures( linearTilingFeatures_ )
  31244. , optimalTilingFeatures( optimalTilingFeatures_ )
  31245. , bufferFeatures( bufferFeatures_ )
  31246. {
  31247. }
  31248. VULKAN_HPP_CONSTEXPR FormatProperties3( FormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31249. FormatProperties3( VkFormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT : FormatProperties3( *reinterpret_cast<FormatProperties3 const *>( &rhs ) ) {}
  31250. FormatProperties3 & operator=( FormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31251. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31252. FormatProperties3 & operator=( VkFormatProperties3 const & rhs ) VULKAN_HPP_NOEXCEPT
  31253. {
  31254. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FormatProperties3 const *>( &rhs );
  31255. return *this;
  31256. }
  31257. operator VkFormatProperties3 const &() const VULKAN_HPP_NOEXCEPT
  31258. {
  31259. return *reinterpret_cast<const VkFormatProperties3 *>( this );
  31260. }
  31261. operator VkFormatProperties3 &() VULKAN_HPP_NOEXCEPT
  31262. {
  31263. return *reinterpret_cast<VkFormatProperties3 *>( this );
  31264. }
  31265. #if defined( VULKAN_HPP_USE_REFLECT )
  31266. # if 14 <= VULKAN_HPP_CPP_VERSION
  31267. auto
  31268. # else
  31269. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  31270. void * const &,
  31271. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &,
  31272. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &,
  31273. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 const &>
  31274. # endif
  31275. reflect() const VULKAN_HPP_NOEXCEPT
  31276. {
  31277. return std::tie( sType, pNext, linearTilingFeatures, optimalTilingFeatures, bufferFeatures );
  31278. }
  31279. #endif
  31280. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31281. auto operator<=>( FormatProperties3 const & ) const = default;
  31282. #else
  31283. bool operator==( FormatProperties3 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31284. {
  31285. # if defined( VULKAN_HPP_USE_REFLECT )
  31286. return this->reflect() == rhs.reflect();
  31287. # else
  31288. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( linearTilingFeatures == rhs.linearTilingFeatures ) &&
  31289. ( optimalTilingFeatures == rhs.optimalTilingFeatures ) && ( bufferFeatures == rhs.bufferFeatures );
  31290. # endif
  31291. }
  31292. bool operator!=( FormatProperties3 const & rhs ) const VULKAN_HPP_NOEXCEPT
  31293. {
  31294. return !operator==( rhs );
  31295. }
  31296. #endif
  31297. public:
  31298. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties3;
  31299. void * pNext = {};
  31300. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 linearTilingFeatures = {};
  31301. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 optimalTilingFeatures = {};
  31302. VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 bufferFeatures = {};
  31303. };
  31304. template <>
  31305. struct CppType<StructureType, StructureType::eFormatProperties3>
  31306. {
  31307. using Type = FormatProperties3;
  31308. };
  31309. using FormatProperties3KHR = FormatProperties3;
  31310. struct FragmentShadingRateAttachmentInfoKHR
  31311. {
  31312. using NativeType = VkFragmentShadingRateAttachmentInfoKHR;
  31313. static const bool allowDuplicate = false;
  31314. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
  31315. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31316. VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment_ = {},
  31317. VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {},
  31318. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31319. : pNext( pNext_ )
  31320. , pFragmentShadingRateAttachment( pFragmentShadingRateAttachment_ )
  31321. , shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ )
  31322. {
  31323. }
  31324. VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31325. FragmentShadingRateAttachmentInfoKHR( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  31326. : FragmentShadingRateAttachmentInfoKHR( *reinterpret_cast<FragmentShadingRateAttachmentInfoKHR const *>( &rhs ) )
  31327. {
  31328. }
  31329. FragmentShadingRateAttachmentInfoKHR & operator=( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31330. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31331. FragmentShadingRateAttachmentInfoKHR & operator=( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  31332. {
  31333. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR const *>( &rhs );
  31334. return *this;
  31335. }
  31336. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31337. VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31338. {
  31339. pNext = pNext_;
  31340. return *this;
  31341. }
  31342. VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR &
  31343. setPFragmentShadingRateAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment_ ) VULKAN_HPP_NOEXCEPT
  31344. {
  31345. pFragmentShadingRateAttachment = pFragmentShadingRateAttachment_;
  31346. return *this;
  31347. }
  31348. VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR &
  31349. setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
  31350. {
  31351. shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
  31352. return *this;
  31353. }
  31354. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31355. operator VkFragmentShadingRateAttachmentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  31356. {
  31357. return *reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR *>( this );
  31358. }
  31359. operator VkFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT
  31360. {
  31361. return *reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR *>( this );
  31362. }
  31363. #if defined( VULKAN_HPP_USE_REFLECT )
  31364. # if 14 <= VULKAN_HPP_CPP_VERSION
  31365. auto
  31366. # else
  31367. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  31368. const void * const &,
  31369. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &,
  31370. VULKAN_HPP_NAMESPACE::Extent2D const &>
  31371. # endif
  31372. reflect() const VULKAN_HPP_NOEXCEPT
  31373. {
  31374. return std::tie( sType, pNext, pFragmentShadingRateAttachment, shadingRateAttachmentTexelSize );
  31375. }
  31376. #endif
  31377. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31378. auto operator<=>( FragmentShadingRateAttachmentInfoKHR const & ) const = default;
  31379. #else
  31380. bool operator==( FragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  31381. {
  31382. # if defined( VULKAN_HPP_USE_REFLECT )
  31383. return this->reflect() == rhs.reflect();
  31384. # else
  31385. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pFragmentShadingRateAttachment == rhs.pFragmentShadingRateAttachment ) &&
  31386. ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize );
  31387. # endif
  31388. }
  31389. bool operator!=( FragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  31390. {
  31391. return !operator==( rhs );
  31392. }
  31393. #endif
  31394. public:
  31395. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFragmentShadingRateAttachmentInfoKHR;
  31396. const void * pNext = {};
  31397. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment = {};
  31398. VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {};
  31399. };
  31400. template <>
  31401. struct CppType<StructureType, StructureType::eFragmentShadingRateAttachmentInfoKHR>
  31402. {
  31403. using Type = FragmentShadingRateAttachmentInfoKHR;
  31404. };
  31405. struct FrameBoundaryEXT
  31406. {
  31407. using NativeType = VkFrameBoundaryEXT;
  31408. static const bool allowDuplicate = false;
  31409. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFrameBoundaryEXT;
  31410. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31411. VULKAN_HPP_CONSTEXPR FrameBoundaryEXT( VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags_ = {},
  31412. uint64_t frameID_ = {},
  31413. uint32_t imageCount_ = {},
  31414. const VULKAN_HPP_NAMESPACE::Image * pImages_ = {},
  31415. uint32_t bufferCount_ = {},
  31416. const VULKAN_HPP_NAMESPACE::Buffer * pBuffers_ = {},
  31417. uint64_t tagName_ = {},
  31418. size_t tagSize_ = {},
  31419. const void * pTag_ = {},
  31420. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31421. : pNext( pNext_ )
  31422. , flags( flags_ )
  31423. , frameID( frameID_ )
  31424. , imageCount( imageCount_ )
  31425. , pImages( pImages_ )
  31426. , bufferCount( bufferCount_ )
  31427. , pBuffers( pBuffers_ )
  31428. , tagName( tagName_ )
  31429. , tagSize( tagSize_ )
  31430. , pTag( pTag_ )
  31431. {
  31432. }
  31433. VULKAN_HPP_CONSTEXPR FrameBoundaryEXT( FrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31434. FrameBoundaryEXT( VkFrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT : FrameBoundaryEXT( *reinterpret_cast<FrameBoundaryEXT const *>( &rhs ) ) {}
  31435. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31436. template <typename T>
  31437. FrameBoundaryEXT( VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags_,
  31438. uint64_t frameID_,
  31439. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Image> const & images_,
  31440. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers_ = {},
  31441. uint64_t tagName_ = {},
  31442. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ = {},
  31443. const void * pNext_ = nullptr )
  31444. : pNext( pNext_ )
  31445. , flags( flags_ )
  31446. , frameID( frameID_ )
  31447. , imageCount( static_cast<uint32_t>( images_.size() ) )
  31448. , pImages( images_.data() )
  31449. , bufferCount( static_cast<uint32_t>( buffers_.size() ) )
  31450. , pBuffers( buffers_.data() )
  31451. , tagName( tagName_ )
  31452. , tagSize( tag_.size() * sizeof( T ) )
  31453. , pTag( tag_.data() )
  31454. {
  31455. }
  31456. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31457. FrameBoundaryEXT & operator=( FrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31458. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31459. FrameBoundaryEXT & operator=( VkFrameBoundaryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  31460. {
  31461. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FrameBoundaryEXT const *>( &rhs );
  31462. return *this;
  31463. }
  31464. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31465. VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31466. {
  31467. pNext = pNext_;
  31468. return *this;
  31469. }
  31470. VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setFlags( VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  31471. {
  31472. flags = flags_;
  31473. return *this;
  31474. }
  31475. VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setFrameID( uint64_t frameID_ ) VULKAN_HPP_NOEXCEPT
  31476. {
  31477. frameID = frameID_;
  31478. return *this;
  31479. }
  31480. VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setImageCount( uint32_t imageCount_ ) VULKAN_HPP_NOEXCEPT
  31481. {
  31482. imageCount = imageCount_;
  31483. return *this;
  31484. }
  31485. VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPImages( const VULKAN_HPP_NAMESPACE::Image * pImages_ ) VULKAN_HPP_NOEXCEPT
  31486. {
  31487. pImages = pImages_;
  31488. return *this;
  31489. }
  31490. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31491. FrameBoundaryEXT & setImages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Image> const & images_ ) VULKAN_HPP_NOEXCEPT
  31492. {
  31493. imageCount = static_cast<uint32_t>( images_.size() );
  31494. pImages = images_.data();
  31495. return *this;
  31496. }
  31497. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31498. VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setBufferCount( uint32_t bufferCount_ ) VULKAN_HPP_NOEXCEPT
  31499. {
  31500. bufferCount = bufferCount_;
  31501. return *this;
  31502. }
  31503. VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPBuffers( const VULKAN_HPP_NAMESPACE::Buffer * pBuffers_ ) VULKAN_HPP_NOEXCEPT
  31504. {
  31505. pBuffers = pBuffers_;
  31506. return *this;
  31507. }
  31508. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31509. FrameBoundaryEXT & setBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers_ ) VULKAN_HPP_NOEXCEPT
  31510. {
  31511. bufferCount = static_cast<uint32_t>( buffers_.size() );
  31512. pBuffers = buffers_.data();
  31513. return *this;
  31514. }
  31515. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31516. VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT
  31517. {
  31518. tagName = tagName_;
  31519. return *this;
  31520. }
  31521. VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT
  31522. {
  31523. tagSize = tagSize_;
  31524. return *this;
  31525. }
  31526. VULKAN_HPP_CONSTEXPR_14 FrameBoundaryEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT
  31527. {
  31528. pTag = pTag_;
  31529. return *this;
  31530. }
  31531. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31532. template <typename T>
  31533. FrameBoundaryEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & tag_ ) VULKAN_HPP_NOEXCEPT
  31534. {
  31535. tagSize = tag_.size() * sizeof( T );
  31536. pTag = tag_.data();
  31537. return *this;
  31538. }
  31539. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31540. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31541. operator VkFrameBoundaryEXT const &() const VULKAN_HPP_NOEXCEPT
  31542. {
  31543. return *reinterpret_cast<const VkFrameBoundaryEXT *>( this );
  31544. }
  31545. operator VkFrameBoundaryEXT &() VULKAN_HPP_NOEXCEPT
  31546. {
  31547. return *reinterpret_cast<VkFrameBoundaryEXT *>( this );
  31548. }
  31549. #if defined( VULKAN_HPP_USE_REFLECT )
  31550. # if 14 <= VULKAN_HPP_CPP_VERSION
  31551. auto
  31552. # else
  31553. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  31554. const void * const &,
  31555. VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT const &,
  31556. uint64_t const &,
  31557. uint32_t const &,
  31558. const VULKAN_HPP_NAMESPACE::Image * const &,
  31559. uint32_t const &,
  31560. const VULKAN_HPP_NAMESPACE::Buffer * const &,
  31561. uint64_t const &,
  31562. size_t const &,
  31563. const void * const &>
  31564. # endif
  31565. reflect() const VULKAN_HPP_NOEXCEPT
  31566. {
  31567. return std::tie( sType, pNext, flags, frameID, imageCount, pImages, bufferCount, pBuffers, tagName, tagSize, pTag );
  31568. }
  31569. #endif
  31570. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31571. auto operator<=>( FrameBoundaryEXT const & ) const = default;
  31572. #else
  31573. bool operator==( FrameBoundaryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  31574. {
  31575. # if defined( VULKAN_HPP_USE_REFLECT )
  31576. return this->reflect() == rhs.reflect();
  31577. # else
  31578. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( frameID == rhs.frameID ) && ( imageCount == rhs.imageCount ) &&
  31579. ( pImages == rhs.pImages ) && ( bufferCount == rhs.bufferCount ) && ( pBuffers == rhs.pBuffers ) && ( tagName == rhs.tagName ) &&
  31580. ( tagSize == rhs.tagSize ) && ( pTag == rhs.pTag );
  31581. # endif
  31582. }
  31583. bool operator!=( FrameBoundaryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  31584. {
  31585. return !operator==( rhs );
  31586. }
  31587. #endif
  31588. public:
  31589. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFrameBoundaryEXT;
  31590. const void * pNext = {};
  31591. VULKAN_HPP_NAMESPACE::FrameBoundaryFlagsEXT flags = {};
  31592. uint64_t frameID = {};
  31593. uint32_t imageCount = {};
  31594. const VULKAN_HPP_NAMESPACE::Image * pImages = {};
  31595. uint32_t bufferCount = {};
  31596. const VULKAN_HPP_NAMESPACE::Buffer * pBuffers = {};
  31597. uint64_t tagName = {};
  31598. size_t tagSize = {};
  31599. const void * pTag = {};
  31600. };
  31601. template <>
  31602. struct CppType<StructureType, StructureType::eFrameBoundaryEXT>
  31603. {
  31604. using Type = FrameBoundaryEXT;
  31605. };
  31606. struct FramebufferAttachmentImageInfo
  31607. {
  31608. using NativeType = VkFramebufferAttachmentImageInfo;
  31609. static const bool allowDuplicate = false;
  31610. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentImageInfo;
  31611. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31612. VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {},
  31613. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
  31614. uint32_t width_ = {},
  31615. uint32_t height_ = {},
  31616. uint32_t layerCount_ = {},
  31617. uint32_t viewFormatCount_ = {},
  31618. const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ = {},
  31619. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31620. : pNext( pNext_ )
  31621. , flags( flags_ )
  31622. , usage( usage_ )
  31623. , width( width_ )
  31624. , height( height_ )
  31625. , layerCount( layerCount_ )
  31626. , viewFormatCount( viewFormatCount_ )
  31627. , pViewFormats( pViewFormats_ )
  31628. {
  31629. }
  31630. VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31631. FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31632. : FramebufferAttachmentImageInfo( *reinterpret_cast<FramebufferAttachmentImageInfo const *>( &rhs ) )
  31633. {
  31634. }
  31635. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31636. FramebufferAttachmentImageInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_,
  31637. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_,
  31638. uint32_t width_,
  31639. uint32_t height_,
  31640. uint32_t layerCount_,
  31641. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_,
  31642. const void * pNext_ = nullptr )
  31643. : pNext( pNext_ )
  31644. , flags( flags_ )
  31645. , usage( usage_ )
  31646. , width( width_ )
  31647. , height( height_ )
  31648. , layerCount( layerCount_ )
  31649. , viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) )
  31650. , pViewFormats( viewFormats_.data() )
  31651. {
  31652. }
  31653. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31654. FramebufferAttachmentImageInfo & operator=( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31655. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31656. FramebufferAttachmentImageInfo & operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31657. {
  31658. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const *>( &rhs );
  31659. return *this;
  31660. }
  31661. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31662. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31663. {
  31664. pNext = pNext_;
  31665. return *this;
  31666. }
  31667. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  31668. {
  31669. flags = flags_;
  31670. return *this;
  31671. }
  31672. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  31673. {
  31674. usage = usage_;
  31675. return *this;
  31676. }
  31677. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  31678. {
  31679. width = width_;
  31680. return *this;
  31681. }
  31682. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  31683. {
  31684. height = height_;
  31685. return *this;
  31686. }
  31687. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  31688. {
  31689. layerCount = layerCount_;
  31690. return *this;
  31691. }
  31692. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
  31693. {
  31694. viewFormatCount = viewFormatCount_;
  31695. return *this;
  31696. }
  31697. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ ) VULKAN_HPP_NOEXCEPT
  31698. {
  31699. pViewFormats = pViewFormats_;
  31700. return *this;
  31701. }
  31702. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31703. FramebufferAttachmentImageInfo &
  31704. setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
  31705. {
  31706. viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
  31707. pViewFormats = viewFormats_.data();
  31708. return *this;
  31709. }
  31710. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31711. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31712. operator VkFramebufferAttachmentImageInfo const &() const VULKAN_HPP_NOEXCEPT
  31713. {
  31714. return *reinterpret_cast<const VkFramebufferAttachmentImageInfo *>( this );
  31715. }
  31716. operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT
  31717. {
  31718. return *reinterpret_cast<VkFramebufferAttachmentImageInfo *>( this );
  31719. }
  31720. #if defined( VULKAN_HPP_USE_REFLECT )
  31721. # if 14 <= VULKAN_HPP_CPP_VERSION
  31722. auto
  31723. # else
  31724. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  31725. const void * const &,
  31726. VULKAN_HPP_NAMESPACE::ImageCreateFlags const &,
  31727. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  31728. uint32_t const &,
  31729. uint32_t const &,
  31730. uint32_t const &,
  31731. uint32_t const &,
  31732. const VULKAN_HPP_NAMESPACE::Format * const &>
  31733. # endif
  31734. reflect() const VULKAN_HPP_NOEXCEPT
  31735. {
  31736. return std::tie( sType, pNext, flags, usage, width, height, layerCount, viewFormatCount, pViewFormats );
  31737. }
  31738. #endif
  31739. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31740. auto operator<=>( FramebufferAttachmentImageInfo const & ) const = default;
  31741. #else
  31742. bool operator==( FramebufferAttachmentImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  31743. {
  31744. # if defined( VULKAN_HPP_USE_REFLECT )
  31745. return this->reflect() == rhs.reflect();
  31746. # else
  31747. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( usage == rhs.usage ) && ( width == rhs.width ) &&
  31748. ( height == rhs.height ) && ( layerCount == rhs.layerCount ) && ( viewFormatCount == rhs.viewFormatCount ) && ( pViewFormats == rhs.pViewFormats );
  31749. # endif
  31750. }
  31751. bool operator!=( FramebufferAttachmentImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  31752. {
  31753. return !operator==( rhs );
  31754. }
  31755. #endif
  31756. public:
  31757. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo;
  31758. const void * pNext = {};
  31759. VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
  31760. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
  31761. uint32_t width = {};
  31762. uint32_t height = {};
  31763. uint32_t layerCount = {};
  31764. uint32_t viewFormatCount = {};
  31765. const VULKAN_HPP_NAMESPACE::Format * pViewFormats = {};
  31766. };
  31767. template <>
  31768. struct CppType<StructureType, StructureType::eFramebufferAttachmentImageInfo>
  31769. {
  31770. using Type = FramebufferAttachmentImageInfo;
  31771. };
  31772. using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
  31773. struct FramebufferAttachmentsCreateInfo
  31774. {
  31775. using NativeType = VkFramebufferAttachmentsCreateInfo;
  31776. static const bool allowDuplicate = false;
  31777. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentsCreateInfo;
  31778. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31779. VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( uint32_t attachmentImageInfoCount_ = {},
  31780. const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos_ = {},
  31781. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31782. : pNext( pNext_ )
  31783. , attachmentImageInfoCount( attachmentImageInfoCount_ )
  31784. , pAttachmentImageInfos( pAttachmentImageInfos_ )
  31785. {
  31786. }
  31787. VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31788. FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31789. : FramebufferAttachmentsCreateInfo( *reinterpret_cast<FramebufferAttachmentsCreateInfo const *>( &rhs ) )
  31790. {
  31791. }
  31792. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31793. FramebufferAttachmentsCreateInfo(
  31794. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_,
  31795. const void * pNext_ = nullptr )
  31796. : pNext( pNext_ )
  31797. , attachmentImageInfoCount( static_cast<uint32_t>( attachmentImageInfos_.size() ) )
  31798. , pAttachmentImageInfos( attachmentImageInfos_.data() )
  31799. {
  31800. }
  31801. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31802. FramebufferAttachmentsCreateInfo & operator=( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31803. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31804. FramebufferAttachmentsCreateInfo & operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31805. {
  31806. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo const *>( &rhs );
  31807. return *this;
  31808. }
  31809. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31810. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31811. {
  31812. pNext = pNext_;
  31813. return *this;
  31814. }
  31815. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT
  31816. {
  31817. attachmentImageInfoCount = attachmentImageInfoCount_;
  31818. return *this;
  31819. }
  31820. VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo &
  31821. setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT
  31822. {
  31823. pAttachmentImageInfos = pAttachmentImageInfos_;
  31824. return *this;
  31825. }
  31826. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31827. FramebufferAttachmentsCreateInfo & setAttachmentImageInfos(
  31828. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo> const & attachmentImageInfos_ )
  31829. VULKAN_HPP_NOEXCEPT
  31830. {
  31831. attachmentImageInfoCount = static_cast<uint32_t>( attachmentImageInfos_.size() );
  31832. pAttachmentImageInfos = attachmentImageInfos_.data();
  31833. return *this;
  31834. }
  31835. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31836. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31837. operator VkFramebufferAttachmentsCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  31838. {
  31839. return *reinterpret_cast<const VkFramebufferAttachmentsCreateInfo *>( this );
  31840. }
  31841. operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT
  31842. {
  31843. return *reinterpret_cast<VkFramebufferAttachmentsCreateInfo *>( this );
  31844. }
  31845. #if defined( VULKAN_HPP_USE_REFLECT )
  31846. # if 14 <= VULKAN_HPP_CPP_VERSION
  31847. auto
  31848. # else
  31849. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  31850. const void * const &,
  31851. uint32_t const &,
  31852. const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * const &>
  31853. # endif
  31854. reflect() const VULKAN_HPP_NOEXCEPT
  31855. {
  31856. return std::tie( sType, pNext, attachmentImageInfoCount, pAttachmentImageInfos );
  31857. }
  31858. #endif
  31859. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  31860. auto operator<=>( FramebufferAttachmentsCreateInfo const & ) const = default;
  31861. #else
  31862. bool operator==( FramebufferAttachmentsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  31863. {
  31864. # if defined( VULKAN_HPP_USE_REFLECT )
  31865. return this->reflect() == rhs.reflect();
  31866. # else
  31867. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount ) &&
  31868. ( pAttachmentImageInfos == rhs.pAttachmentImageInfos );
  31869. # endif
  31870. }
  31871. bool operator!=( FramebufferAttachmentsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  31872. {
  31873. return !operator==( rhs );
  31874. }
  31875. #endif
  31876. public:
  31877. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo;
  31878. const void * pNext = {};
  31879. uint32_t attachmentImageInfoCount = {};
  31880. const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos = {};
  31881. };
  31882. template <>
  31883. struct CppType<StructureType, StructureType::eFramebufferAttachmentsCreateInfo>
  31884. {
  31885. using Type = FramebufferAttachmentsCreateInfo;
  31886. };
  31887. using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
  31888. struct FramebufferCreateInfo
  31889. {
  31890. using NativeType = VkFramebufferCreateInfo;
  31891. static const bool allowDuplicate = false;
  31892. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferCreateInfo;
  31893. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  31894. VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ = {},
  31895. VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  31896. uint32_t attachmentCount_ = {},
  31897. const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ = {},
  31898. uint32_t width_ = {},
  31899. uint32_t height_ = {},
  31900. uint32_t layers_ = {},
  31901. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  31902. : pNext( pNext_ )
  31903. , flags( flags_ )
  31904. , renderPass( renderPass_ )
  31905. , attachmentCount( attachmentCount_ )
  31906. , pAttachments( pAttachments_ )
  31907. , width( width_ )
  31908. , height( height_ )
  31909. , layers( layers_ )
  31910. {
  31911. }
  31912. VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31913. FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31914. : FramebufferCreateInfo( *reinterpret_cast<FramebufferCreateInfo const *>( &rhs ) )
  31915. {
  31916. }
  31917. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31918. FramebufferCreateInfo( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_,
  31919. VULKAN_HPP_NAMESPACE::RenderPass renderPass_,
  31920. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_,
  31921. uint32_t width_ = {},
  31922. uint32_t height_ = {},
  31923. uint32_t layers_ = {},
  31924. const void * pNext_ = nullptr )
  31925. : pNext( pNext_ )
  31926. , flags( flags_ )
  31927. , renderPass( renderPass_ )
  31928. , attachmentCount( static_cast<uint32_t>( attachments_.size() ) )
  31929. , pAttachments( attachments_.data() )
  31930. , width( width_ )
  31931. , height( height_ )
  31932. , layers( layers_ )
  31933. {
  31934. }
  31935. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31936. FramebufferCreateInfo & operator=( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  31937. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  31938. FramebufferCreateInfo & operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  31939. {
  31940. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const *>( &rhs );
  31941. return *this;
  31942. }
  31943. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  31944. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  31945. {
  31946. pNext = pNext_;
  31947. return *this;
  31948. }
  31949. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  31950. {
  31951. flags = flags_;
  31952. return *this;
  31953. }
  31954. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
  31955. {
  31956. renderPass = renderPass_;
  31957. return *this;
  31958. }
  31959. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  31960. {
  31961. attachmentCount = attachmentCount_;
  31962. return *this;
  31963. }
  31964. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ ) VULKAN_HPP_NOEXCEPT
  31965. {
  31966. pAttachments = pAttachments_;
  31967. return *this;
  31968. }
  31969. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31970. FramebufferCreateInfo &
  31971. setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
  31972. {
  31973. attachmentCount = static_cast<uint32_t>( attachments_.size() );
  31974. pAttachments = attachments_.data();
  31975. return *this;
  31976. }
  31977. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  31978. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  31979. {
  31980. width = width_;
  31981. return *this;
  31982. }
  31983. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  31984. {
  31985. height = height_;
  31986. return *this;
  31987. }
  31988. VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & setLayers( uint32_t layers_ ) VULKAN_HPP_NOEXCEPT
  31989. {
  31990. layers = layers_;
  31991. return *this;
  31992. }
  31993. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  31994. operator VkFramebufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  31995. {
  31996. return *reinterpret_cast<const VkFramebufferCreateInfo *>( this );
  31997. }
  31998. operator VkFramebufferCreateInfo &() VULKAN_HPP_NOEXCEPT
  31999. {
  32000. return *reinterpret_cast<VkFramebufferCreateInfo *>( this );
  32001. }
  32002. #if defined( VULKAN_HPP_USE_REFLECT )
  32003. # if 14 <= VULKAN_HPP_CPP_VERSION
  32004. auto
  32005. # else
  32006. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  32007. const void * const &,
  32008. VULKAN_HPP_NAMESPACE::FramebufferCreateFlags const &,
  32009. VULKAN_HPP_NAMESPACE::RenderPass const &,
  32010. uint32_t const &,
  32011. const VULKAN_HPP_NAMESPACE::ImageView * const &,
  32012. uint32_t const &,
  32013. uint32_t const &,
  32014. uint32_t const &>
  32015. # endif
  32016. reflect() const VULKAN_HPP_NOEXCEPT
  32017. {
  32018. return std::tie( sType, pNext, flags, renderPass, attachmentCount, pAttachments, width, height, layers );
  32019. }
  32020. #endif
  32021. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32022. auto operator<=>( FramebufferCreateInfo const & ) const = default;
  32023. #else
  32024. bool operator==( FramebufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  32025. {
  32026. # if defined( VULKAN_HPP_USE_REFLECT )
  32027. return this->reflect() == rhs.reflect();
  32028. # else
  32029. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( renderPass == rhs.renderPass ) &&
  32030. ( attachmentCount == rhs.attachmentCount ) && ( pAttachments == rhs.pAttachments ) && ( width == rhs.width ) && ( height == rhs.height ) &&
  32031. ( layers == rhs.layers );
  32032. # endif
  32033. }
  32034. bool operator!=( FramebufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  32035. {
  32036. return !operator==( rhs );
  32037. }
  32038. #endif
  32039. public:
  32040. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo;
  32041. const void * pNext = {};
  32042. VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {};
  32043. VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
  32044. uint32_t attachmentCount = {};
  32045. const VULKAN_HPP_NAMESPACE::ImageView * pAttachments = {};
  32046. uint32_t width = {};
  32047. uint32_t height = {};
  32048. uint32_t layers = {};
  32049. };
  32050. template <>
  32051. struct CppType<StructureType, StructureType::eFramebufferCreateInfo>
  32052. {
  32053. using Type = FramebufferCreateInfo;
  32054. };
  32055. struct FramebufferMixedSamplesCombinationNV
  32056. {
  32057. using NativeType = VkFramebufferMixedSamplesCombinationNV;
  32058. static const bool allowDuplicate = false;
  32059. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferMixedSamplesCombinationNV;
  32060. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32061. VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV(
  32062. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge,
  32063. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  32064. VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples_ = {},
  32065. VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples_ = {},
  32066. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32067. : pNext( pNext_ )
  32068. , coverageReductionMode( coverageReductionMode_ )
  32069. , rasterizationSamples( rasterizationSamples_ )
  32070. , depthStencilSamples( depthStencilSamples_ )
  32071. , colorSamples( colorSamples_ )
  32072. {
  32073. }
  32074. VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32075. FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32076. : FramebufferMixedSamplesCombinationNV( *reinterpret_cast<FramebufferMixedSamplesCombinationNV const *>( &rhs ) )
  32077. {
  32078. }
  32079. FramebufferMixedSamplesCombinationNV & operator=( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32080. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32081. FramebufferMixedSamplesCombinationNV & operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32082. {
  32083. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV const *>( &rhs );
  32084. return *this;
  32085. }
  32086. operator VkFramebufferMixedSamplesCombinationNV const &() const VULKAN_HPP_NOEXCEPT
  32087. {
  32088. return *reinterpret_cast<const VkFramebufferMixedSamplesCombinationNV *>( this );
  32089. }
  32090. operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT
  32091. {
  32092. return *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( this );
  32093. }
  32094. #if defined( VULKAN_HPP_USE_REFLECT )
  32095. # if 14 <= VULKAN_HPP_CPP_VERSION
  32096. auto
  32097. # else
  32098. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  32099. void * const &,
  32100. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV const &,
  32101. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  32102. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  32103. VULKAN_HPP_NAMESPACE::SampleCountFlags const &>
  32104. # endif
  32105. reflect() const VULKAN_HPP_NOEXCEPT
  32106. {
  32107. return std::tie( sType, pNext, coverageReductionMode, rasterizationSamples, depthStencilSamples, colorSamples );
  32108. }
  32109. #endif
  32110. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32111. auto operator<=>( FramebufferMixedSamplesCombinationNV const & ) const = default;
  32112. #else
  32113. bool operator==( FramebufferMixedSamplesCombinationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32114. {
  32115. # if defined( VULKAN_HPP_USE_REFLECT )
  32116. return this->reflect() == rhs.reflect();
  32117. # else
  32118. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( coverageReductionMode == rhs.coverageReductionMode ) &&
  32119. ( rasterizationSamples == rhs.rasterizationSamples ) && ( depthStencilSamples == rhs.depthStencilSamples ) && ( colorSamples == rhs.colorSamples );
  32120. # endif
  32121. }
  32122. bool operator!=( FramebufferMixedSamplesCombinationNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32123. {
  32124. return !operator==( rhs );
  32125. }
  32126. #endif
  32127. public:
  32128. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV;
  32129. void * pNext = {};
  32130. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
  32131. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  32132. VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {};
  32133. VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {};
  32134. };
  32135. template <>
  32136. struct CppType<StructureType, StructureType::eFramebufferMixedSamplesCombinationNV>
  32137. {
  32138. using Type = FramebufferMixedSamplesCombinationNV;
  32139. };
  32140. struct IndirectCommandsStreamNV
  32141. {
  32142. using NativeType = VkIndirectCommandsStreamNV;
  32143. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32144. VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  32145. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {} ) VULKAN_HPP_NOEXCEPT
  32146. : buffer( buffer_ )
  32147. , offset( offset_ )
  32148. {
  32149. }
  32150. VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32151. IndirectCommandsStreamNV( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32152. : IndirectCommandsStreamNV( *reinterpret_cast<IndirectCommandsStreamNV const *>( &rhs ) )
  32153. {
  32154. }
  32155. IndirectCommandsStreamNV & operator=( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32156. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32157. IndirectCommandsStreamNV & operator=( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32158. {
  32159. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV const *>( &rhs );
  32160. return *this;
  32161. }
  32162. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32163. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  32164. {
  32165. buffer = buffer_;
  32166. return *this;
  32167. }
  32168. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsStreamNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  32169. {
  32170. offset = offset_;
  32171. return *this;
  32172. }
  32173. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32174. operator VkIndirectCommandsStreamNV const &() const VULKAN_HPP_NOEXCEPT
  32175. {
  32176. return *reinterpret_cast<const VkIndirectCommandsStreamNV *>( this );
  32177. }
  32178. operator VkIndirectCommandsStreamNV &() VULKAN_HPP_NOEXCEPT
  32179. {
  32180. return *reinterpret_cast<VkIndirectCommandsStreamNV *>( this );
  32181. }
  32182. #if defined( VULKAN_HPP_USE_REFLECT )
  32183. # if 14 <= VULKAN_HPP_CPP_VERSION
  32184. auto
  32185. # else
  32186. std::tuple<VULKAN_HPP_NAMESPACE::Buffer const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  32187. # endif
  32188. reflect() const VULKAN_HPP_NOEXCEPT
  32189. {
  32190. return std::tie( buffer, offset );
  32191. }
  32192. #endif
  32193. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32194. auto operator<=>( IndirectCommandsStreamNV const & ) const = default;
  32195. #else
  32196. bool operator==( IndirectCommandsStreamNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32197. {
  32198. # if defined( VULKAN_HPP_USE_REFLECT )
  32199. return this->reflect() == rhs.reflect();
  32200. # else
  32201. return ( buffer == rhs.buffer ) && ( offset == rhs.offset );
  32202. # endif
  32203. }
  32204. bool operator!=( IndirectCommandsStreamNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32205. {
  32206. return !operator==( rhs );
  32207. }
  32208. #endif
  32209. public:
  32210. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  32211. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  32212. };
  32213. struct GeneratedCommandsInfoNV
  32214. {
  32215. using NativeType = VkGeneratedCommandsInfoNV;
  32216. static const bool allowDuplicate = false;
  32217. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsInfoNV;
  32218. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32219. VULKAN_HPP_CONSTEXPR
  32220. GeneratedCommandsInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  32221. VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
  32222. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {},
  32223. uint32_t streamCount_ = {},
  32224. const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams_ = {},
  32225. uint32_t sequencesCount_ = {},
  32226. VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {},
  32227. VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {},
  32228. VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {},
  32229. VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {},
  32230. VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {},
  32231. VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {},
  32232. VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {},
  32233. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32234. : pNext( pNext_ )
  32235. , pipelineBindPoint( pipelineBindPoint_ )
  32236. , pipeline( pipeline_ )
  32237. , indirectCommandsLayout( indirectCommandsLayout_ )
  32238. , streamCount( streamCount_ )
  32239. , pStreams( pStreams_ )
  32240. , sequencesCount( sequencesCount_ )
  32241. , preprocessBuffer( preprocessBuffer_ )
  32242. , preprocessOffset( preprocessOffset_ )
  32243. , preprocessSize( preprocessSize_ )
  32244. , sequencesCountBuffer( sequencesCountBuffer_ )
  32245. , sequencesCountOffset( sequencesCountOffset_ )
  32246. , sequencesIndexBuffer( sequencesIndexBuffer_ )
  32247. , sequencesIndexOffset( sequencesIndexOffset_ )
  32248. {
  32249. }
  32250. VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32251. GeneratedCommandsInfoNV( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32252. : GeneratedCommandsInfoNV( *reinterpret_cast<GeneratedCommandsInfoNV const *>( &rhs ) )
  32253. {
  32254. }
  32255. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  32256. GeneratedCommandsInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_,
  32257. VULKAN_HPP_NAMESPACE::Pipeline pipeline_,
  32258. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_,
  32259. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const & streams_,
  32260. uint32_t sequencesCount_ = {},
  32261. VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {},
  32262. VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {},
  32263. VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {},
  32264. VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {},
  32265. VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {},
  32266. VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {},
  32267. VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {},
  32268. const void * pNext_ = nullptr )
  32269. : pNext( pNext_ )
  32270. , pipelineBindPoint( pipelineBindPoint_ )
  32271. , pipeline( pipeline_ )
  32272. , indirectCommandsLayout( indirectCommandsLayout_ )
  32273. , streamCount( static_cast<uint32_t>( streams_.size() ) )
  32274. , pStreams( streams_.data() )
  32275. , sequencesCount( sequencesCount_ )
  32276. , preprocessBuffer( preprocessBuffer_ )
  32277. , preprocessOffset( preprocessOffset_ )
  32278. , preprocessSize( preprocessSize_ )
  32279. , sequencesCountBuffer( sequencesCountBuffer_ )
  32280. , sequencesCountOffset( sequencesCountOffset_ )
  32281. , sequencesIndexBuffer( sequencesIndexBuffer_ )
  32282. , sequencesIndexOffset( sequencesIndexOffset_ )
  32283. {
  32284. }
  32285. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  32286. GeneratedCommandsInfoNV & operator=( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32287. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32288. GeneratedCommandsInfoNV & operator=( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32289. {
  32290. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV const *>( &rhs );
  32291. return *this;
  32292. }
  32293. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32294. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32295. {
  32296. pNext = pNext_;
  32297. return *this;
  32298. }
  32299. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  32300. {
  32301. pipelineBindPoint = pipelineBindPoint_;
  32302. return *this;
  32303. }
  32304. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
  32305. {
  32306. pipeline = pipeline_;
  32307. return *this;
  32308. }
  32309. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV &
  32310. setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
  32311. {
  32312. indirectCommandsLayout = indirectCommandsLayout_;
  32313. return *this;
  32314. }
  32315. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
  32316. {
  32317. streamCount = streamCount_;
  32318. return *this;
  32319. }
  32320. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPStreams( const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams_ ) VULKAN_HPP_NOEXCEPT
  32321. {
  32322. pStreams = pStreams_;
  32323. return *this;
  32324. }
  32325. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  32326. GeneratedCommandsInfoNV &
  32327. setStreams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV> const & streams_ ) VULKAN_HPP_NOEXCEPT
  32328. {
  32329. streamCount = static_cast<uint32_t>( streams_.size() );
  32330. pStreams = streams_.data();
  32331. return *this;
  32332. }
  32333. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  32334. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT
  32335. {
  32336. sequencesCount = sequencesCount_;
  32337. return *this;
  32338. }
  32339. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPreprocessBuffer( VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ ) VULKAN_HPP_NOEXCEPT
  32340. {
  32341. preprocessBuffer = preprocessBuffer_;
  32342. return *this;
  32343. }
  32344. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPreprocessOffset( VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ ) VULKAN_HPP_NOEXCEPT
  32345. {
  32346. preprocessOffset = preprocessOffset_;
  32347. return *this;
  32348. }
  32349. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT
  32350. {
  32351. preprocessSize = preprocessSize_;
  32352. return *this;
  32353. }
  32354. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT
  32355. {
  32356. sequencesCountBuffer = sequencesCountBuffer_;
  32357. return *this;
  32358. }
  32359. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT
  32360. {
  32361. sequencesCountOffset = sequencesCountOffset_;
  32362. return *this;
  32363. }
  32364. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT
  32365. {
  32366. sequencesIndexBuffer = sequencesIndexBuffer_;
  32367. return *this;
  32368. }
  32369. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT
  32370. {
  32371. sequencesIndexOffset = sequencesIndexOffset_;
  32372. return *this;
  32373. }
  32374. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32375. operator VkGeneratedCommandsInfoNV const &() const VULKAN_HPP_NOEXCEPT
  32376. {
  32377. return *reinterpret_cast<const VkGeneratedCommandsInfoNV *>( this );
  32378. }
  32379. operator VkGeneratedCommandsInfoNV &() VULKAN_HPP_NOEXCEPT
  32380. {
  32381. return *reinterpret_cast<VkGeneratedCommandsInfoNV *>( this );
  32382. }
  32383. #if defined( VULKAN_HPP_USE_REFLECT )
  32384. # if 14 <= VULKAN_HPP_CPP_VERSION
  32385. auto
  32386. # else
  32387. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  32388. const void * const &,
  32389. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  32390. VULKAN_HPP_NAMESPACE::Pipeline const &,
  32391. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const &,
  32392. uint32_t const &,
  32393. const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * const &,
  32394. uint32_t const &,
  32395. VULKAN_HPP_NAMESPACE::Buffer const &,
  32396. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  32397. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  32398. VULKAN_HPP_NAMESPACE::Buffer const &,
  32399. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  32400. VULKAN_HPP_NAMESPACE::Buffer const &,
  32401. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  32402. # endif
  32403. reflect() const VULKAN_HPP_NOEXCEPT
  32404. {
  32405. return std::tie( sType,
  32406. pNext,
  32407. pipelineBindPoint,
  32408. pipeline,
  32409. indirectCommandsLayout,
  32410. streamCount,
  32411. pStreams,
  32412. sequencesCount,
  32413. preprocessBuffer,
  32414. preprocessOffset,
  32415. preprocessSize,
  32416. sequencesCountBuffer,
  32417. sequencesCountOffset,
  32418. sequencesIndexBuffer,
  32419. sequencesIndexOffset );
  32420. }
  32421. #endif
  32422. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32423. auto operator<=>( GeneratedCommandsInfoNV const & ) const = default;
  32424. #else
  32425. bool operator==( GeneratedCommandsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32426. {
  32427. # if defined( VULKAN_HPP_USE_REFLECT )
  32428. return this->reflect() == rhs.reflect();
  32429. # else
  32430. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( pipeline == rhs.pipeline ) &&
  32431. ( indirectCommandsLayout == rhs.indirectCommandsLayout ) && ( streamCount == rhs.streamCount ) && ( pStreams == rhs.pStreams ) &&
  32432. ( sequencesCount == rhs.sequencesCount ) && ( preprocessBuffer == rhs.preprocessBuffer ) && ( preprocessOffset == rhs.preprocessOffset ) &&
  32433. ( preprocessSize == rhs.preprocessSize ) && ( sequencesCountBuffer == rhs.sequencesCountBuffer ) &&
  32434. ( sequencesCountOffset == rhs.sequencesCountOffset ) && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer ) &&
  32435. ( sequencesIndexOffset == rhs.sequencesIndexOffset );
  32436. # endif
  32437. }
  32438. bool operator!=( GeneratedCommandsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32439. {
  32440. return !operator==( rhs );
  32441. }
  32442. #endif
  32443. public:
  32444. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsInfoNV;
  32445. const void * pNext = {};
  32446. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  32447. VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
  32448. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
  32449. uint32_t streamCount = {};
  32450. const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams = {};
  32451. uint32_t sequencesCount = {};
  32452. VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer = {};
  32453. VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset = {};
  32454. VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize = {};
  32455. VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {};
  32456. VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {};
  32457. VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {};
  32458. VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {};
  32459. };
  32460. template <>
  32461. struct CppType<StructureType, StructureType::eGeneratedCommandsInfoNV>
  32462. {
  32463. using Type = GeneratedCommandsInfoNV;
  32464. };
  32465. struct GeneratedCommandsMemoryRequirementsInfoNV
  32466. {
  32467. using NativeType = VkGeneratedCommandsMemoryRequirementsInfoNV;
  32468. static const bool allowDuplicate = false;
  32469. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
  32470. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32471. VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV(
  32472. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  32473. VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
  32474. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {},
  32475. uint32_t maxSequencesCount_ = {},
  32476. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32477. : pNext( pNext_ )
  32478. , pipelineBindPoint( pipelineBindPoint_ )
  32479. , pipeline( pipeline_ )
  32480. , indirectCommandsLayout( indirectCommandsLayout_ )
  32481. , maxSequencesCount( maxSequencesCount_ )
  32482. {
  32483. }
  32484. VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32485. GeneratedCommandsMemoryRequirementsInfoNV( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32486. : GeneratedCommandsMemoryRequirementsInfoNV( *reinterpret_cast<GeneratedCommandsMemoryRequirementsInfoNV const *>( &rhs ) )
  32487. {
  32488. }
  32489. GeneratedCommandsMemoryRequirementsInfoNV & operator=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32490. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32491. GeneratedCommandsMemoryRequirementsInfoNV & operator=( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32492. {
  32493. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV const *>( &rhs );
  32494. return *this;
  32495. }
  32496. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32497. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32498. {
  32499. pNext = pNext_;
  32500. return *this;
  32501. }
  32502. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV &
  32503. setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  32504. {
  32505. pipelineBindPoint = pipelineBindPoint_;
  32506. return *this;
  32507. }
  32508. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
  32509. {
  32510. pipeline = pipeline_;
  32511. return *this;
  32512. }
  32513. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV &
  32514. setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
  32515. {
  32516. indirectCommandsLayout = indirectCommandsLayout_;
  32517. return *this;
  32518. }
  32519. VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT
  32520. {
  32521. maxSequencesCount = maxSequencesCount_;
  32522. return *this;
  32523. }
  32524. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32525. operator VkGeneratedCommandsMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT
  32526. {
  32527. return *reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( this );
  32528. }
  32529. operator VkGeneratedCommandsMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT
  32530. {
  32531. return *reinterpret_cast<VkGeneratedCommandsMemoryRequirementsInfoNV *>( this );
  32532. }
  32533. #if defined( VULKAN_HPP_USE_REFLECT )
  32534. # if 14 <= VULKAN_HPP_CPP_VERSION
  32535. auto
  32536. # else
  32537. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  32538. const void * const &,
  32539. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  32540. VULKAN_HPP_NAMESPACE::Pipeline const &,
  32541. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const &,
  32542. uint32_t const &>
  32543. # endif
  32544. reflect() const VULKAN_HPP_NOEXCEPT
  32545. {
  32546. return std::tie( sType, pNext, pipelineBindPoint, pipeline, indirectCommandsLayout, maxSequencesCount );
  32547. }
  32548. #endif
  32549. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32550. auto operator<=>( GeneratedCommandsMemoryRequirementsInfoNV const & ) const = default;
  32551. #else
  32552. bool operator==( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32553. {
  32554. # if defined( VULKAN_HPP_USE_REFLECT )
  32555. return this->reflect() == rhs.reflect();
  32556. # else
  32557. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( pipeline == rhs.pipeline ) &&
  32558. ( indirectCommandsLayout == rhs.indirectCommandsLayout ) && ( maxSequencesCount == rhs.maxSequencesCount );
  32559. # endif
  32560. }
  32561. bool operator!=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32562. {
  32563. return !operator==( rhs );
  32564. }
  32565. #endif
  32566. public:
  32567. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV;
  32568. const void * pNext = {};
  32569. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  32570. VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
  32571. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {};
  32572. uint32_t maxSequencesCount = {};
  32573. };
  32574. template <>
  32575. struct CppType<StructureType, StructureType::eGeneratedCommandsMemoryRequirementsInfoNV>
  32576. {
  32577. using Type = GeneratedCommandsMemoryRequirementsInfoNV;
  32578. };
  32579. struct LatencyTimingsFrameReportNV
  32580. {
  32581. using NativeType = VkLatencyTimingsFrameReportNV;
  32582. static const bool allowDuplicate = false;
  32583. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencyTimingsFrameReportNV;
  32584. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32585. VULKAN_HPP_CONSTEXPR LatencyTimingsFrameReportNV( uint64_t presentID_ = {},
  32586. uint64_t inputSampleTimeUs_ = {},
  32587. uint64_t simStartTimeUs_ = {},
  32588. uint64_t simEndTimeUs_ = {},
  32589. uint64_t renderSubmitStartTimeUs_ = {},
  32590. uint64_t renderSubmitEndTimeUs_ = {},
  32591. uint64_t presentStartTimeUs_ = {},
  32592. uint64_t presentEndTimeUs_ = {},
  32593. uint64_t driverStartTimeUs_ = {},
  32594. uint64_t driverEndTimeUs_ = {},
  32595. uint64_t osRenderQueueStartTimeUs_ = {},
  32596. uint64_t osRenderQueueEndTimeUs_ = {},
  32597. uint64_t gpuRenderStartTimeUs_ = {},
  32598. uint64_t gpuRenderEndTimeUs_ = {},
  32599. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32600. : pNext( pNext_ )
  32601. , presentID( presentID_ )
  32602. , inputSampleTimeUs( inputSampleTimeUs_ )
  32603. , simStartTimeUs( simStartTimeUs_ )
  32604. , simEndTimeUs( simEndTimeUs_ )
  32605. , renderSubmitStartTimeUs( renderSubmitStartTimeUs_ )
  32606. , renderSubmitEndTimeUs( renderSubmitEndTimeUs_ )
  32607. , presentStartTimeUs( presentStartTimeUs_ )
  32608. , presentEndTimeUs( presentEndTimeUs_ )
  32609. , driverStartTimeUs( driverStartTimeUs_ )
  32610. , driverEndTimeUs( driverEndTimeUs_ )
  32611. , osRenderQueueStartTimeUs( osRenderQueueStartTimeUs_ )
  32612. , osRenderQueueEndTimeUs( osRenderQueueEndTimeUs_ )
  32613. , gpuRenderStartTimeUs( gpuRenderStartTimeUs_ )
  32614. , gpuRenderEndTimeUs( gpuRenderEndTimeUs_ )
  32615. {
  32616. }
  32617. VULKAN_HPP_CONSTEXPR LatencyTimingsFrameReportNV( LatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32618. LatencyTimingsFrameReportNV( VkLatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32619. : LatencyTimingsFrameReportNV( *reinterpret_cast<LatencyTimingsFrameReportNV const *>( &rhs ) )
  32620. {
  32621. }
  32622. LatencyTimingsFrameReportNV & operator=( LatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32623. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32624. LatencyTimingsFrameReportNV & operator=( VkLatencyTimingsFrameReportNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32625. {
  32626. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV const *>( &rhs );
  32627. return *this;
  32628. }
  32629. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32630. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32631. {
  32632. pNext = pNext_;
  32633. return *this;
  32634. }
  32635. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT
  32636. {
  32637. presentID = presentID_;
  32638. return *this;
  32639. }
  32640. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setInputSampleTimeUs( uint64_t inputSampleTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32641. {
  32642. inputSampleTimeUs = inputSampleTimeUs_;
  32643. return *this;
  32644. }
  32645. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setSimStartTimeUs( uint64_t simStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32646. {
  32647. simStartTimeUs = simStartTimeUs_;
  32648. return *this;
  32649. }
  32650. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setSimEndTimeUs( uint64_t simEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32651. {
  32652. simEndTimeUs = simEndTimeUs_;
  32653. return *this;
  32654. }
  32655. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setRenderSubmitStartTimeUs( uint64_t renderSubmitStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32656. {
  32657. renderSubmitStartTimeUs = renderSubmitStartTimeUs_;
  32658. return *this;
  32659. }
  32660. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setRenderSubmitEndTimeUs( uint64_t renderSubmitEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32661. {
  32662. renderSubmitEndTimeUs = renderSubmitEndTimeUs_;
  32663. return *this;
  32664. }
  32665. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentStartTimeUs( uint64_t presentStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32666. {
  32667. presentStartTimeUs = presentStartTimeUs_;
  32668. return *this;
  32669. }
  32670. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setPresentEndTimeUs( uint64_t presentEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32671. {
  32672. presentEndTimeUs = presentEndTimeUs_;
  32673. return *this;
  32674. }
  32675. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setDriverStartTimeUs( uint64_t driverStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32676. {
  32677. driverStartTimeUs = driverStartTimeUs_;
  32678. return *this;
  32679. }
  32680. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setDriverEndTimeUs( uint64_t driverEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32681. {
  32682. driverEndTimeUs = driverEndTimeUs_;
  32683. return *this;
  32684. }
  32685. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setOsRenderQueueStartTimeUs( uint64_t osRenderQueueStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32686. {
  32687. osRenderQueueStartTimeUs = osRenderQueueStartTimeUs_;
  32688. return *this;
  32689. }
  32690. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setOsRenderQueueEndTimeUs( uint64_t osRenderQueueEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32691. {
  32692. osRenderQueueEndTimeUs = osRenderQueueEndTimeUs_;
  32693. return *this;
  32694. }
  32695. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setGpuRenderStartTimeUs( uint64_t gpuRenderStartTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32696. {
  32697. gpuRenderStartTimeUs = gpuRenderStartTimeUs_;
  32698. return *this;
  32699. }
  32700. VULKAN_HPP_CONSTEXPR_14 LatencyTimingsFrameReportNV & setGpuRenderEndTimeUs( uint64_t gpuRenderEndTimeUs_ ) VULKAN_HPP_NOEXCEPT
  32701. {
  32702. gpuRenderEndTimeUs = gpuRenderEndTimeUs_;
  32703. return *this;
  32704. }
  32705. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32706. operator VkLatencyTimingsFrameReportNV const &() const VULKAN_HPP_NOEXCEPT
  32707. {
  32708. return *reinterpret_cast<const VkLatencyTimingsFrameReportNV *>( this );
  32709. }
  32710. operator VkLatencyTimingsFrameReportNV &() VULKAN_HPP_NOEXCEPT
  32711. {
  32712. return *reinterpret_cast<VkLatencyTimingsFrameReportNV *>( this );
  32713. }
  32714. #if defined( VULKAN_HPP_USE_REFLECT )
  32715. # if 14 <= VULKAN_HPP_CPP_VERSION
  32716. auto
  32717. # else
  32718. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  32719. const void * const &,
  32720. uint64_t const &,
  32721. uint64_t const &,
  32722. uint64_t const &,
  32723. uint64_t const &,
  32724. uint64_t const &,
  32725. uint64_t const &,
  32726. uint64_t const &,
  32727. uint64_t const &,
  32728. uint64_t const &,
  32729. uint64_t const &,
  32730. uint64_t const &,
  32731. uint64_t const &,
  32732. uint64_t const &,
  32733. uint64_t const &>
  32734. # endif
  32735. reflect() const VULKAN_HPP_NOEXCEPT
  32736. {
  32737. return std::tie( sType,
  32738. pNext,
  32739. presentID,
  32740. inputSampleTimeUs,
  32741. simStartTimeUs,
  32742. simEndTimeUs,
  32743. renderSubmitStartTimeUs,
  32744. renderSubmitEndTimeUs,
  32745. presentStartTimeUs,
  32746. presentEndTimeUs,
  32747. driverStartTimeUs,
  32748. driverEndTimeUs,
  32749. osRenderQueueStartTimeUs,
  32750. osRenderQueueEndTimeUs,
  32751. gpuRenderStartTimeUs,
  32752. gpuRenderEndTimeUs );
  32753. }
  32754. #endif
  32755. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32756. auto operator<=>( LatencyTimingsFrameReportNV const & ) const = default;
  32757. #else
  32758. bool operator==( LatencyTimingsFrameReportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32759. {
  32760. # if defined( VULKAN_HPP_USE_REFLECT )
  32761. return this->reflect() == rhs.reflect();
  32762. # else
  32763. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentID == rhs.presentID ) && ( inputSampleTimeUs == rhs.inputSampleTimeUs ) &&
  32764. ( simStartTimeUs == rhs.simStartTimeUs ) && ( simEndTimeUs == rhs.simEndTimeUs ) && ( renderSubmitStartTimeUs == rhs.renderSubmitStartTimeUs ) &&
  32765. ( renderSubmitEndTimeUs == rhs.renderSubmitEndTimeUs ) && ( presentStartTimeUs == rhs.presentStartTimeUs ) &&
  32766. ( presentEndTimeUs == rhs.presentEndTimeUs ) && ( driverStartTimeUs == rhs.driverStartTimeUs ) && ( driverEndTimeUs == rhs.driverEndTimeUs ) &&
  32767. ( osRenderQueueStartTimeUs == rhs.osRenderQueueStartTimeUs ) && ( osRenderQueueEndTimeUs == rhs.osRenderQueueEndTimeUs ) &&
  32768. ( gpuRenderStartTimeUs == rhs.gpuRenderStartTimeUs ) && ( gpuRenderEndTimeUs == rhs.gpuRenderEndTimeUs );
  32769. # endif
  32770. }
  32771. bool operator!=( LatencyTimingsFrameReportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32772. {
  32773. return !operator==( rhs );
  32774. }
  32775. #endif
  32776. public:
  32777. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencyTimingsFrameReportNV;
  32778. const void * pNext = {};
  32779. uint64_t presentID = {};
  32780. uint64_t inputSampleTimeUs = {};
  32781. uint64_t simStartTimeUs = {};
  32782. uint64_t simEndTimeUs = {};
  32783. uint64_t renderSubmitStartTimeUs = {};
  32784. uint64_t renderSubmitEndTimeUs = {};
  32785. uint64_t presentStartTimeUs = {};
  32786. uint64_t presentEndTimeUs = {};
  32787. uint64_t driverStartTimeUs = {};
  32788. uint64_t driverEndTimeUs = {};
  32789. uint64_t osRenderQueueStartTimeUs = {};
  32790. uint64_t osRenderQueueEndTimeUs = {};
  32791. uint64_t gpuRenderStartTimeUs = {};
  32792. uint64_t gpuRenderEndTimeUs = {};
  32793. };
  32794. template <>
  32795. struct CppType<StructureType, StructureType::eLatencyTimingsFrameReportNV>
  32796. {
  32797. using Type = LatencyTimingsFrameReportNV;
  32798. };
  32799. struct GetLatencyMarkerInfoNV
  32800. {
  32801. using NativeType = VkGetLatencyMarkerInfoNV;
  32802. static const bool allowDuplicate = false;
  32803. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGetLatencyMarkerInfoNV;
  32804. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32805. VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ = {},
  32806. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  32807. : pNext( pNext_ )
  32808. , pTimings( pTimings_ )
  32809. {
  32810. }
  32811. VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32812. GetLatencyMarkerInfoNV( VkGetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32813. : GetLatencyMarkerInfoNV( *reinterpret_cast<GetLatencyMarkerInfoNV const *>( &rhs ) )
  32814. {
  32815. }
  32816. GetLatencyMarkerInfoNV & operator=( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32817. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32818. GetLatencyMarkerInfoNV & operator=( VkGetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  32819. {
  32820. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV const *>( &rhs );
  32821. return *this;
  32822. }
  32823. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32824. VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  32825. {
  32826. pNext = pNext_;
  32827. return *this;
  32828. }
  32829. VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPTimings( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ ) VULKAN_HPP_NOEXCEPT
  32830. {
  32831. pTimings = pTimings_;
  32832. return *this;
  32833. }
  32834. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32835. operator VkGetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT
  32836. {
  32837. return *reinterpret_cast<const VkGetLatencyMarkerInfoNV *>( this );
  32838. }
  32839. operator VkGetLatencyMarkerInfoNV &() VULKAN_HPP_NOEXCEPT
  32840. {
  32841. return *reinterpret_cast<VkGetLatencyMarkerInfoNV *>( this );
  32842. }
  32843. #if defined( VULKAN_HPP_USE_REFLECT )
  32844. # if 14 <= VULKAN_HPP_CPP_VERSION
  32845. auto
  32846. # else
  32847. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * const &>
  32848. # endif
  32849. reflect() const VULKAN_HPP_NOEXCEPT
  32850. {
  32851. return std::tie( sType, pNext, pTimings );
  32852. }
  32853. #endif
  32854. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32855. auto operator<=>( GetLatencyMarkerInfoNV const & ) const = default;
  32856. #else
  32857. bool operator==( GetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32858. {
  32859. # if defined( VULKAN_HPP_USE_REFLECT )
  32860. return this->reflect() == rhs.reflect();
  32861. # else
  32862. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pTimings == rhs.pTimings );
  32863. # endif
  32864. }
  32865. bool operator!=( GetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  32866. {
  32867. return !operator==( rhs );
  32868. }
  32869. #endif
  32870. public:
  32871. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGetLatencyMarkerInfoNV;
  32872. const void * pNext = {};
  32873. VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings = {};
  32874. };
  32875. template <>
  32876. struct CppType<StructureType, StructureType::eGetLatencyMarkerInfoNV>
  32877. {
  32878. using Type = GetLatencyMarkerInfoNV;
  32879. };
  32880. struct VertexInputBindingDescription
  32881. {
  32882. using NativeType = VkVertexInputBindingDescription;
  32883. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32884. VULKAN_HPP_CONSTEXPR
  32885. VertexInputBindingDescription( uint32_t binding_ = {},
  32886. uint32_t stride_ = {},
  32887. VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex ) VULKAN_HPP_NOEXCEPT
  32888. : binding( binding_ )
  32889. , stride( stride_ )
  32890. , inputRate( inputRate_ )
  32891. {
  32892. }
  32893. VULKAN_HPP_CONSTEXPR VertexInputBindingDescription( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32894. VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  32895. : VertexInputBindingDescription( *reinterpret_cast<VertexInputBindingDescription const *>( &rhs ) )
  32896. {
  32897. }
  32898. VertexInputBindingDescription & operator=( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32899. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32900. VertexInputBindingDescription & operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  32901. {
  32902. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const *>( &rhs );
  32903. return *this;
  32904. }
  32905. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32906. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  32907. {
  32908. binding = binding_;
  32909. return *this;
  32910. }
  32911. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
  32912. {
  32913. stride = stride_;
  32914. return *this;
  32915. }
  32916. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT
  32917. {
  32918. inputRate = inputRate_;
  32919. return *this;
  32920. }
  32921. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  32922. operator VkVertexInputBindingDescription const &() const VULKAN_HPP_NOEXCEPT
  32923. {
  32924. return *reinterpret_cast<const VkVertexInputBindingDescription *>( this );
  32925. }
  32926. operator VkVertexInputBindingDescription &() VULKAN_HPP_NOEXCEPT
  32927. {
  32928. return *reinterpret_cast<VkVertexInputBindingDescription *>( this );
  32929. }
  32930. #if defined( VULKAN_HPP_USE_REFLECT )
  32931. # if 14 <= VULKAN_HPP_CPP_VERSION
  32932. auto
  32933. # else
  32934. std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::VertexInputRate const &>
  32935. # endif
  32936. reflect() const VULKAN_HPP_NOEXCEPT
  32937. {
  32938. return std::tie( binding, stride, inputRate );
  32939. }
  32940. #endif
  32941. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  32942. auto operator<=>( VertexInputBindingDescription const & ) const = default;
  32943. #else
  32944. bool operator==( VertexInputBindingDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  32945. {
  32946. # if defined( VULKAN_HPP_USE_REFLECT )
  32947. return this->reflect() == rhs.reflect();
  32948. # else
  32949. return ( binding == rhs.binding ) && ( stride == rhs.stride ) && ( inputRate == rhs.inputRate );
  32950. # endif
  32951. }
  32952. bool operator!=( VertexInputBindingDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  32953. {
  32954. return !operator==( rhs );
  32955. }
  32956. #endif
  32957. public:
  32958. uint32_t binding = {};
  32959. uint32_t stride = {};
  32960. VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex;
  32961. };
  32962. struct VertexInputAttributeDescription
  32963. {
  32964. using NativeType = VkVertexInputAttributeDescription;
  32965. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  32966. VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( uint32_t location_ = {},
  32967. uint32_t binding_ = {},
  32968. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  32969. uint32_t offset_ = {} ) VULKAN_HPP_NOEXCEPT
  32970. : location( location_ )
  32971. , binding( binding_ )
  32972. , format( format_ )
  32973. , offset( offset_ )
  32974. {
  32975. }
  32976. VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32977. VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  32978. : VertexInputAttributeDescription( *reinterpret_cast<VertexInputAttributeDescription const *>( &rhs ) )
  32979. {
  32980. }
  32981. VertexInputAttributeDescription & operator=( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  32982. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  32983. VertexInputAttributeDescription & operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  32984. {
  32985. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription const *>( &rhs );
  32986. return *this;
  32987. }
  32988. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  32989. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
  32990. {
  32991. location = location_;
  32992. return *this;
  32993. }
  32994. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  32995. {
  32996. binding = binding_;
  32997. return *this;
  32998. }
  32999. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  33000. {
  33001. format = format_;
  33002. return *this;
  33003. }
  33004. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
  33005. {
  33006. offset = offset_;
  33007. return *this;
  33008. }
  33009. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33010. operator VkVertexInputAttributeDescription const &() const VULKAN_HPP_NOEXCEPT
  33011. {
  33012. return *reinterpret_cast<const VkVertexInputAttributeDescription *>( this );
  33013. }
  33014. operator VkVertexInputAttributeDescription &() VULKAN_HPP_NOEXCEPT
  33015. {
  33016. return *reinterpret_cast<VkVertexInputAttributeDescription *>( this );
  33017. }
  33018. #if defined( VULKAN_HPP_USE_REFLECT )
  33019. # if 14 <= VULKAN_HPP_CPP_VERSION
  33020. auto
  33021. # else
  33022. std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Format const &, uint32_t const &>
  33023. # endif
  33024. reflect() const VULKAN_HPP_NOEXCEPT
  33025. {
  33026. return std::tie( location, binding, format, offset );
  33027. }
  33028. #endif
  33029. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33030. auto operator<=>( VertexInputAttributeDescription const & ) const = default;
  33031. #else
  33032. bool operator==( VertexInputAttributeDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  33033. {
  33034. # if defined( VULKAN_HPP_USE_REFLECT )
  33035. return this->reflect() == rhs.reflect();
  33036. # else
  33037. return ( location == rhs.location ) && ( binding == rhs.binding ) && ( format == rhs.format ) && ( offset == rhs.offset );
  33038. # endif
  33039. }
  33040. bool operator!=( VertexInputAttributeDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  33041. {
  33042. return !operator==( rhs );
  33043. }
  33044. #endif
  33045. public:
  33046. uint32_t location = {};
  33047. uint32_t binding = {};
  33048. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  33049. uint32_t offset = {};
  33050. };
  33051. struct PipelineVertexInputStateCreateInfo
  33052. {
  33053. using NativeType = VkPipelineVertexInputStateCreateInfo;
  33054. static const bool allowDuplicate = false;
  33055. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputStateCreateInfo;
  33056. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33057. VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ = {},
  33058. uint32_t vertexBindingDescriptionCount_ = {},
  33059. const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions_ = {},
  33060. uint32_t vertexAttributeDescriptionCount_ = {},
  33061. const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions_ = {},
  33062. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33063. : pNext( pNext_ )
  33064. , flags( flags_ )
  33065. , vertexBindingDescriptionCount( vertexBindingDescriptionCount_ )
  33066. , pVertexBindingDescriptions( pVertexBindingDescriptions_ )
  33067. , vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ )
  33068. , pVertexAttributeDescriptions( pVertexAttributeDescriptions_ )
  33069. {
  33070. }
  33071. VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33072. PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33073. : PipelineVertexInputStateCreateInfo( *reinterpret_cast<PipelineVertexInputStateCreateInfo const *>( &rhs ) )
  33074. {
  33075. }
  33076. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  33077. PipelineVertexInputStateCreateInfo(
  33078. VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_,
  33079. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const & vertexBindingDescriptions_,
  33080. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const & vertexAttributeDescriptions_ = {},
  33081. const void * pNext_ = nullptr )
  33082. : pNext( pNext_ )
  33083. , flags( flags_ )
  33084. , vertexBindingDescriptionCount( static_cast<uint32_t>( vertexBindingDescriptions_.size() ) )
  33085. , pVertexBindingDescriptions( vertexBindingDescriptions_.data() )
  33086. , vertexAttributeDescriptionCount( static_cast<uint32_t>( vertexAttributeDescriptions_.size() ) )
  33087. , pVertexAttributeDescriptions( vertexAttributeDescriptions_.data() )
  33088. {
  33089. }
  33090. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  33091. PipelineVertexInputStateCreateInfo & operator=( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33092. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33093. PipelineVertexInputStateCreateInfo & operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33094. {
  33095. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo const *>( &rhs );
  33096. return *this;
  33097. }
  33098. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33099. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33100. {
  33101. pNext = pNext_;
  33102. return *this;
  33103. }
  33104. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo &
  33105. setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  33106. {
  33107. flags = flags_;
  33108. return *this;
  33109. }
  33110. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
  33111. {
  33112. vertexBindingDescriptionCount = vertexBindingDescriptionCount_;
  33113. return *this;
  33114. }
  33115. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo &
  33116. setPVertexBindingDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT
  33117. {
  33118. pVertexBindingDescriptions = pVertexBindingDescriptions_;
  33119. return *this;
  33120. }
  33121. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  33122. PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions(
  33123. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription> const & vertexBindingDescriptions_ )
  33124. VULKAN_HPP_NOEXCEPT
  33125. {
  33126. vertexBindingDescriptionCount = static_cast<uint32_t>( vertexBindingDescriptions_.size() );
  33127. pVertexBindingDescriptions = vertexBindingDescriptions_.data();
  33128. return *this;
  33129. }
  33130. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  33131. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo &
  33132. setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT
  33133. {
  33134. vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_;
  33135. return *this;
  33136. }
  33137. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo &
  33138. setPVertexAttributeDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT
  33139. {
  33140. pVertexAttributeDescriptions = pVertexAttributeDescriptions_;
  33141. return *this;
  33142. }
  33143. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  33144. PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions(
  33145. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription> const & vertexAttributeDescriptions_ )
  33146. VULKAN_HPP_NOEXCEPT
  33147. {
  33148. vertexAttributeDescriptionCount = static_cast<uint32_t>( vertexAttributeDescriptions_.size() );
  33149. pVertexAttributeDescriptions = vertexAttributeDescriptions_.data();
  33150. return *this;
  33151. }
  33152. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  33153. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33154. operator VkPipelineVertexInputStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  33155. {
  33156. return *reinterpret_cast<const VkPipelineVertexInputStateCreateInfo *>( this );
  33157. }
  33158. operator VkPipelineVertexInputStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  33159. {
  33160. return *reinterpret_cast<VkPipelineVertexInputStateCreateInfo *>( this );
  33161. }
  33162. #if defined( VULKAN_HPP_USE_REFLECT )
  33163. # if 14 <= VULKAN_HPP_CPP_VERSION
  33164. auto
  33165. # else
  33166. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  33167. const void * const &,
  33168. VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags const &,
  33169. uint32_t const &,
  33170. const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * const &,
  33171. uint32_t const &,
  33172. const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * const &>
  33173. # endif
  33174. reflect() const VULKAN_HPP_NOEXCEPT
  33175. {
  33176. return std::tie(
  33177. sType, pNext, flags, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions );
  33178. }
  33179. #endif
  33180. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33181. auto operator<=>( PipelineVertexInputStateCreateInfo const & ) const = default;
  33182. #else
  33183. bool operator==( PipelineVertexInputStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33184. {
  33185. # if defined( VULKAN_HPP_USE_REFLECT )
  33186. return this->reflect() == rhs.reflect();
  33187. # else
  33188. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  33189. ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount ) && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions ) &&
  33190. ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount ) && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions );
  33191. # endif
  33192. }
  33193. bool operator!=( PipelineVertexInputStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33194. {
  33195. return !operator==( rhs );
  33196. }
  33197. #endif
  33198. public:
  33199. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo;
  33200. const void * pNext = {};
  33201. VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {};
  33202. uint32_t vertexBindingDescriptionCount = {};
  33203. const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions = {};
  33204. uint32_t vertexAttributeDescriptionCount = {};
  33205. const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions = {};
  33206. };
  33207. template <>
  33208. struct CppType<StructureType, StructureType::ePipelineVertexInputStateCreateInfo>
  33209. {
  33210. using Type = PipelineVertexInputStateCreateInfo;
  33211. };
  33212. struct PipelineInputAssemblyStateCreateInfo
  33213. {
  33214. using NativeType = VkPipelineInputAssemblyStateCreateInfo;
  33215. static const bool allowDuplicate = false;
  33216. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInputAssemblyStateCreateInfo;
  33217. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33218. VULKAN_HPP_CONSTEXPR
  33219. PipelineInputAssemblyStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ = {},
  33220. VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList,
  33221. VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ = {},
  33222. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33223. : pNext( pNext_ )
  33224. , flags( flags_ )
  33225. , topology( topology_ )
  33226. , primitiveRestartEnable( primitiveRestartEnable_ )
  33227. {
  33228. }
  33229. VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33230. PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33231. : PipelineInputAssemblyStateCreateInfo( *reinterpret_cast<PipelineInputAssemblyStateCreateInfo const *>( &rhs ) )
  33232. {
  33233. }
  33234. PipelineInputAssemblyStateCreateInfo & operator=( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33235. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33236. PipelineInputAssemblyStateCreateInfo & operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33237. {
  33238. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo const *>( &rhs );
  33239. return *this;
  33240. }
  33241. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33242. VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33243. {
  33244. pNext = pNext_;
  33245. return *this;
  33246. }
  33247. VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo &
  33248. setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  33249. {
  33250. flags = flags_;
  33251. return *this;
  33252. }
  33253. VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo & setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT
  33254. {
  33255. topology = topology_;
  33256. return *this;
  33257. }
  33258. VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo &
  33259. setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT
  33260. {
  33261. primitiveRestartEnable = primitiveRestartEnable_;
  33262. return *this;
  33263. }
  33264. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33265. operator VkPipelineInputAssemblyStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  33266. {
  33267. return *reinterpret_cast<const VkPipelineInputAssemblyStateCreateInfo *>( this );
  33268. }
  33269. operator VkPipelineInputAssemblyStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  33270. {
  33271. return *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo *>( this );
  33272. }
  33273. #if defined( VULKAN_HPP_USE_REFLECT )
  33274. # if 14 <= VULKAN_HPP_CPP_VERSION
  33275. auto
  33276. # else
  33277. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  33278. const void * const &,
  33279. VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags const &,
  33280. VULKAN_HPP_NAMESPACE::PrimitiveTopology const &,
  33281. VULKAN_HPP_NAMESPACE::Bool32 const &>
  33282. # endif
  33283. reflect() const VULKAN_HPP_NOEXCEPT
  33284. {
  33285. return std::tie( sType, pNext, flags, topology, primitiveRestartEnable );
  33286. }
  33287. #endif
  33288. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33289. auto operator<=>( PipelineInputAssemblyStateCreateInfo const & ) const = default;
  33290. #else
  33291. bool operator==( PipelineInputAssemblyStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33292. {
  33293. # if defined( VULKAN_HPP_USE_REFLECT )
  33294. return this->reflect() == rhs.reflect();
  33295. # else
  33296. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( topology == rhs.topology ) &&
  33297. ( primitiveRestartEnable == rhs.primitiveRestartEnable );
  33298. # endif
  33299. }
  33300. bool operator!=( PipelineInputAssemblyStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33301. {
  33302. return !operator==( rhs );
  33303. }
  33304. #endif
  33305. public:
  33306. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo;
  33307. const void * pNext = {};
  33308. VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags = {};
  33309. VULKAN_HPP_NAMESPACE::PrimitiveTopology topology = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList;
  33310. VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {};
  33311. };
  33312. template <>
  33313. struct CppType<StructureType, StructureType::ePipelineInputAssemblyStateCreateInfo>
  33314. {
  33315. using Type = PipelineInputAssemblyStateCreateInfo;
  33316. };
  33317. struct PipelineTessellationStateCreateInfo
  33318. {
  33319. using NativeType = VkPipelineTessellationStateCreateInfo;
  33320. static const bool allowDuplicate = false;
  33321. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationStateCreateInfo;
  33322. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33323. VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {},
  33324. uint32_t patchControlPoints_ = {},
  33325. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33326. : pNext( pNext_ )
  33327. , flags( flags_ )
  33328. , patchControlPoints( patchControlPoints_ )
  33329. {
  33330. }
  33331. VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33332. PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33333. : PipelineTessellationStateCreateInfo( *reinterpret_cast<PipelineTessellationStateCreateInfo const *>( &rhs ) )
  33334. {
  33335. }
  33336. PipelineTessellationStateCreateInfo & operator=( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33337. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33338. PipelineTessellationStateCreateInfo & operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33339. {
  33340. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo const *>( &rhs );
  33341. return *this;
  33342. }
  33343. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33344. VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33345. {
  33346. pNext = pNext_;
  33347. return *this;
  33348. }
  33349. VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo &
  33350. setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  33351. {
  33352. flags = flags_;
  33353. return *this;
  33354. }
  33355. VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ ) VULKAN_HPP_NOEXCEPT
  33356. {
  33357. patchControlPoints = patchControlPoints_;
  33358. return *this;
  33359. }
  33360. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33361. operator VkPipelineTessellationStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  33362. {
  33363. return *reinterpret_cast<const VkPipelineTessellationStateCreateInfo *>( this );
  33364. }
  33365. operator VkPipelineTessellationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  33366. {
  33367. return *reinterpret_cast<VkPipelineTessellationStateCreateInfo *>( this );
  33368. }
  33369. #if defined( VULKAN_HPP_USE_REFLECT )
  33370. # if 14 <= VULKAN_HPP_CPP_VERSION
  33371. auto
  33372. # else
  33373. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  33374. const void * const &,
  33375. VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags const &,
  33376. uint32_t const &>
  33377. # endif
  33378. reflect() const VULKAN_HPP_NOEXCEPT
  33379. {
  33380. return std::tie( sType, pNext, flags, patchControlPoints );
  33381. }
  33382. #endif
  33383. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33384. auto operator<=>( PipelineTessellationStateCreateInfo const & ) const = default;
  33385. #else
  33386. bool operator==( PipelineTessellationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33387. {
  33388. # if defined( VULKAN_HPP_USE_REFLECT )
  33389. return this->reflect() == rhs.reflect();
  33390. # else
  33391. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( patchControlPoints == rhs.patchControlPoints );
  33392. # endif
  33393. }
  33394. bool operator!=( PipelineTessellationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33395. {
  33396. return !operator==( rhs );
  33397. }
  33398. #endif
  33399. public:
  33400. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo;
  33401. const void * pNext = {};
  33402. VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {};
  33403. uint32_t patchControlPoints = {};
  33404. };
  33405. template <>
  33406. struct CppType<StructureType, StructureType::ePipelineTessellationStateCreateInfo>
  33407. {
  33408. using Type = PipelineTessellationStateCreateInfo;
  33409. };
  33410. struct PipelineViewportStateCreateInfo
  33411. {
  33412. using NativeType = VkPipelineViewportStateCreateInfo;
  33413. static const bool allowDuplicate = false;
  33414. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportStateCreateInfo;
  33415. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33416. VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ = {},
  33417. uint32_t viewportCount_ = {},
  33418. const VULKAN_HPP_NAMESPACE::Viewport * pViewports_ = {},
  33419. uint32_t scissorCount_ = {},
  33420. const VULKAN_HPP_NAMESPACE::Rect2D * pScissors_ = {},
  33421. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33422. : pNext( pNext_ )
  33423. , flags( flags_ )
  33424. , viewportCount( viewportCount_ )
  33425. , pViewports( pViewports_ )
  33426. , scissorCount( scissorCount_ )
  33427. , pScissors( pScissors_ )
  33428. {
  33429. }
  33430. VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33431. PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33432. : PipelineViewportStateCreateInfo( *reinterpret_cast<PipelineViewportStateCreateInfo const *>( &rhs ) )
  33433. {
  33434. }
  33435. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  33436. PipelineViewportStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_,
  33437. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_,
  33438. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ = {},
  33439. const void * pNext_ = nullptr )
  33440. : pNext( pNext_ )
  33441. , flags( flags_ )
  33442. , viewportCount( static_cast<uint32_t>( viewports_.size() ) )
  33443. , pViewports( viewports_.data() )
  33444. , scissorCount( static_cast<uint32_t>( scissors_.size() ) )
  33445. , pScissors( scissors_.data() )
  33446. {
  33447. }
  33448. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  33449. PipelineViewportStateCreateInfo & operator=( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33450. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33451. PipelineViewportStateCreateInfo & operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33452. {
  33453. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo const *>( &rhs );
  33454. return *this;
  33455. }
  33456. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33457. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33458. {
  33459. pNext = pNext_;
  33460. return *this;
  33461. }
  33462. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  33463. {
  33464. flags = flags_;
  33465. return *this;
  33466. }
  33467. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
  33468. {
  33469. viewportCount = viewportCount_;
  33470. return *this;
  33471. }
  33472. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setPViewports( const VULKAN_HPP_NAMESPACE::Viewport * pViewports_ ) VULKAN_HPP_NOEXCEPT
  33473. {
  33474. pViewports = pViewports_;
  33475. return *this;
  33476. }
  33477. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  33478. PipelineViewportStateCreateInfo &
  33479. setViewports( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports_ ) VULKAN_HPP_NOEXCEPT
  33480. {
  33481. viewportCount = static_cast<uint32_t>( viewports_.size() );
  33482. pViewports = viewports_.data();
  33483. return *this;
  33484. }
  33485. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  33486. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT
  33487. {
  33488. scissorCount = scissorCount_;
  33489. return *this;
  33490. }
  33491. VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D * pScissors_ ) VULKAN_HPP_NOEXCEPT
  33492. {
  33493. pScissors = pScissors_;
  33494. return *this;
  33495. }
  33496. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  33497. PipelineViewportStateCreateInfo &
  33498. setScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors_ ) VULKAN_HPP_NOEXCEPT
  33499. {
  33500. scissorCount = static_cast<uint32_t>( scissors_.size() );
  33501. pScissors = scissors_.data();
  33502. return *this;
  33503. }
  33504. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  33505. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33506. operator VkPipelineViewportStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  33507. {
  33508. return *reinterpret_cast<const VkPipelineViewportStateCreateInfo *>( this );
  33509. }
  33510. operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  33511. {
  33512. return *reinterpret_cast<VkPipelineViewportStateCreateInfo *>( this );
  33513. }
  33514. #if defined( VULKAN_HPP_USE_REFLECT )
  33515. # if 14 <= VULKAN_HPP_CPP_VERSION
  33516. auto
  33517. # else
  33518. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  33519. const void * const &,
  33520. VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags const &,
  33521. uint32_t const &,
  33522. const VULKAN_HPP_NAMESPACE::Viewport * const &,
  33523. uint32_t const &,
  33524. const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  33525. # endif
  33526. reflect() const VULKAN_HPP_NOEXCEPT
  33527. {
  33528. return std::tie( sType, pNext, flags, viewportCount, pViewports, scissorCount, pScissors );
  33529. }
  33530. #endif
  33531. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33532. auto operator<=>( PipelineViewportStateCreateInfo const & ) const = default;
  33533. #else
  33534. bool operator==( PipelineViewportStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33535. {
  33536. # if defined( VULKAN_HPP_USE_REFLECT )
  33537. return this->reflect() == rhs.reflect();
  33538. # else
  33539. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( viewportCount == rhs.viewportCount ) &&
  33540. ( pViewports == rhs.pViewports ) && ( scissorCount == rhs.scissorCount ) && ( pScissors == rhs.pScissors );
  33541. # endif
  33542. }
  33543. bool operator!=( PipelineViewportStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33544. {
  33545. return !operator==( rhs );
  33546. }
  33547. #endif
  33548. public:
  33549. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo;
  33550. const void * pNext = {};
  33551. VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {};
  33552. uint32_t viewportCount = {};
  33553. const VULKAN_HPP_NAMESPACE::Viewport * pViewports = {};
  33554. uint32_t scissorCount = {};
  33555. const VULKAN_HPP_NAMESPACE::Rect2D * pScissors = {};
  33556. };
  33557. template <>
  33558. struct CppType<StructureType, StructureType::ePipelineViewportStateCreateInfo>
  33559. {
  33560. using Type = PipelineViewportStateCreateInfo;
  33561. };
  33562. struct PipelineRasterizationStateCreateInfo
  33563. {
  33564. using NativeType = VkPipelineRasterizationStateCreateInfo;
  33565. static const bool allowDuplicate = false;
  33566. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateCreateInfo;
  33567. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33568. VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ = {},
  33569. VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ = {},
  33570. VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ = {},
  33571. VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ = VULKAN_HPP_NAMESPACE::PolygonMode::eFill,
  33572. VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ = {},
  33573. VULKAN_HPP_NAMESPACE::FrontFace frontFace_ = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise,
  33574. VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ = {},
  33575. float depthBiasConstantFactor_ = {},
  33576. float depthBiasClamp_ = {},
  33577. float depthBiasSlopeFactor_ = {},
  33578. float lineWidth_ = {},
  33579. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33580. : pNext( pNext_ )
  33581. , flags( flags_ )
  33582. , depthClampEnable( depthClampEnable_ )
  33583. , rasterizerDiscardEnable( rasterizerDiscardEnable_ )
  33584. , polygonMode( polygonMode_ )
  33585. , cullMode( cullMode_ )
  33586. , frontFace( frontFace_ )
  33587. , depthBiasEnable( depthBiasEnable_ )
  33588. , depthBiasConstantFactor( depthBiasConstantFactor_ )
  33589. , depthBiasClamp( depthBiasClamp_ )
  33590. , depthBiasSlopeFactor( depthBiasSlopeFactor_ )
  33591. , lineWidth( lineWidth_ )
  33592. {
  33593. }
  33594. VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33595. PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33596. : PipelineRasterizationStateCreateInfo( *reinterpret_cast<PipelineRasterizationStateCreateInfo const *>( &rhs ) )
  33597. {
  33598. }
  33599. PipelineRasterizationStateCreateInfo & operator=( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33600. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33601. PipelineRasterizationStateCreateInfo & operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33602. {
  33603. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo const *>( &rhs );
  33604. return *this;
  33605. }
  33606. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33607. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33608. {
  33609. pNext = pNext_;
  33610. return *this;
  33611. }
  33612. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo &
  33613. setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  33614. {
  33615. flags = flags_;
  33616. return *this;
  33617. }
  33618. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT
  33619. {
  33620. depthClampEnable = depthClampEnable_;
  33621. return *this;
  33622. }
  33623. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo &
  33624. setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT
  33625. {
  33626. rasterizerDiscardEnable = rasterizerDiscardEnable_;
  33627. return *this;
  33628. }
  33629. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT
  33630. {
  33631. polygonMode = polygonMode_;
  33632. return *this;
  33633. }
  33634. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT
  33635. {
  33636. cullMode = cullMode_;
  33637. return *this;
  33638. }
  33639. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT
  33640. {
  33641. frontFace = frontFace_;
  33642. return *this;
  33643. }
  33644. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT
  33645. {
  33646. depthBiasEnable = depthBiasEnable_;
  33647. return *this;
  33648. }
  33649. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT
  33650. {
  33651. depthBiasConstantFactor = depthBiasConstantFactor_;
  33652. return *this;
  33653. }
  33654. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT
  33655. {
  33656. depthBiasClamp = depthBiasClamp_;
  33657. return *this;
  33658. }
  33659. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT
  33660. {
  33661. depthBiasSlopeFactor = depthBiasSlopeFactor_;
  33662. return *this;
  33663. }
  33664. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ ) VULKAN_HPP_NOEXCEPT
  33665. {
  33666. lineWidth = lineWidth_;
  33667. return *this;
  33668. }
  33669. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33670. operator VkPipelineRasterizationStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  33671. {
  33672. return *reinterpret_cast<const VkPipelineRasterizationStateCreateInfo *>( this );
  33673. }
  33674. operator VkPipelineRasterizationStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  33675. {
  33676. return *reinterpret_cast<VkPipelineRasterizationStateCreateInfo *>( this );
  33677. }
  33678. #if defined( VULKAN_HPP_USE_REFLECT )
  33679. # if 14 <= VULKAN_HPP_CPP_VERSION
  33680. auto
  33681. # else
  33682. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  33683. const void * const &,
  33684. VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags const &,
  33685. VULKAN_HPP_NAMESPACE::Bool32 const &,
  33686. VULKAN_HPP_NAMESPACE::Bool32 const &,
  33687. VULKAN_HPP_NAMESPACE::PolygonMode const &,
  33688. VULKAN_HPP_NAMESPACE::CullModeFlags const &,
  33689. VULKAN_HPP_NAMESPACE::FrontFace const &,
  33690. VULKAN_HPP_NAMESPACE::Bool32 const &,
  33691. float const &,
  33692. float const &,
  33693. float const &,
  33694. float const &>
  33695. # endif
  33696. reflect() const VULKAN_HPP_NOEXCEPT
  33697. {
  33698. return std::tie( sType,
  33699. pNext,
  33700. flags,
  33701. depthClampEnable,
  33702. rasterizerDiscardEnable,
  33703. polygonMode,
  33704. cullMode,
  33705. frontFace,
  33706. depthBiasEnable,
  33707. depthBiasConstantFactor,
  33708. depthBiasClamp,
  33709. depthBiasSlopeFactor,
  33710. lineWidth );
  33711. }
  33712. #endif
  33713. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33714. auto operator<=>( PipelineRasterizationStateCreateInfo const & ) const = default;
  33715. #else
  33716. bool operator==( PipelineRasterizationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33717. {
  33718. # if defined( VULKAN_HPP_USE_REFLECT )
  33719. return this->reflect() == rhs.reflect();
  33720. # else
  33721. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( depthClampEnable == rhs.depthClampEnable ) &&
  33722. ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable ) && ( polygonMode == rhs.polygonMode ) && ( cullMode == rhs.cullMode ) &&
  33723. ( frontFace == rhs.frontFace ) && ( depthBiasEnable == rhs.depthBiasEnable ) && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor ) &&
  33724. ( depthBiasClamp == rhs.depthBiasClamp ) && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor ) && ( lineWidth == rhs.lineWidth );
  33725. # endif
  33726. }
  33727. bool operator!=( PipelineRasterizationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33728. {
  33729. return !operator==( rhs );
  33730. }
  33731. #endif
  33732. public:
  33733. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo;
  33734. const void * pNext = {};
  33735. VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {};
  33736. VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {};
  33737. VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {};
  33738. VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill;
  33739. VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {};
  33740. VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise;
  33741. VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {};
  33742. float depthBiasConstantFactor = {};
  33743. float depthBiasClamp = {};
  33744. float depthBiasSlopeFactor = {};
  33745. float lineWidth = {};
  33746. };
  33747. template <>
  33748. struct CppType<StructureType, StructureType::ePipelineRasterizationStateCreateInfo>
  33749. {
  33750. using Type = PipelineRasterizationStateCreateInfo;
  33751. };
  33752. struct PipelineMultisampleStateCreateInfo
  33753. {
  33754. using NativeType = VkPipelineMultisampleStateCreateInfo;
  33755. static const bool allowDuplicate = false;
  33756. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineMultisampleStateCreateInfo;
  33757. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33758. VULKAN_HPP_CONSTEXPR
  33759. PipelineMultisampleStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ = {},
  33760. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  33761. VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ = {},
  33762. float minSampleShading_ = {},
  33763. const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask_ = {},
  33764. VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ = {},
  33765. VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ = {},
  33766. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  33767. : pNext( pNext_ )
  33768. , flags( flags_ )
  33769. , rasterizationSamples( rasterizationSamples_ )
  33770. , sampleShadingEnable( sampleShadingEnable_ )
  33771. , minSampleShading( minSampleShading_ )
  33772. , pSampleMask( pSampleMask_ )
  33773. , alphaToCoverageEnable( alphaToCoverageEnable_ )
  33774. , alphaToOneEnable( alphaToOneEnable_ )
  33775. {
  33776. }
  33777. VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33778. PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33779. : PipelineMultisampleStateCreateInfo( *reinterpret_cast<PipelineMultisampleStateCreateInfo const *>( &rhs ) )
  33780. {
  33781. }
  33782. PipelineMultisampleStateCreateInfo & operator=( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33783. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33784. PipelineMultisampleStateCreateInfo & operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  33785. {
  33786. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo const *>( &rhs );
  33787. return *this;
  33788. }
  33789. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33790. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  33791. {
  33792. pNext = pNext_;
  33793. return *this;
  33794. }
  33795. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo &
  33796. setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  33797. {
  33798. flags = flags_;
  33799. return *this;
  33800. }
  33801. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo &
  33802. setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
  33803. {
  33804. rasterizationSamples = rasterizationSamples_;
  33805. return *this;
  33806. }
  33807. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT
  33808. {
  33809. sampleShadingEnable = sampleShadingEnable_;
  33810. return *this;
  33811. }
  33812. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ ) VULKAN_HPP_NOEXCEPT
  33813. {
  33814. minSampleShading = minSampleShading_;
  33815. return *this;
  33816. }
  33817. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask_ ) VULKAN_HPP_NOEXCEPT
  33818. {
  33819. pSampleMask = pSampleMask_;
  33820. return *this;
  33821. }
  33822. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo &
  33823. setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
  33824. {
  33825. alphaToCoverageEnable = alphaToCoverageEnable_;
  33826. return *this;
  33827. }
  33828. VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
  33829. {
  33830. alphaToOneEnable = alphaToOneEnable_;
  33831. return *this;
  33832. }
  33833. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33834. operator VkPipelineMultisampleStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  33835. {
  33836. return *reinterpret_cast<const VkPipelineMultisampleStateCreateInfo *>( this );
  33837. }
  33838. operator VkPipelineMultisampleStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  33839. {
  33840. return *reinterpret_cast<VkPipelineMultisampleStateCreateInfo *>( this );
  33841. }
  33842. #if defined( VULKAN_HPP_USE_REFLECT )
  33843. # if 14 <= VULKAN_HPP_CPP_VERSION
  33844. auto
  33845. # else
  33846. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  33847. const void * const &,
  33848. VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags const &,
  33849. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  33850. VULKAN_HPP_NAMESPACE::Bool32 const &,
  33851. float const &,
  33852. const VULKAN_HPP_NAMESPACE::SampleMask * const &,
  33853. VULKAN_HPP_NAMESPACE::Bool32 const &,
  33854. VULKAN_HPP_NAMESPACE::Bool32 const &>
  33855. # endif
  33856. reflect() const VULKAN_HPP_NOEXCEPT
  33857. {
  33858. return std::tie( sType, pNext, flags, rasterizationSamples, sampleShadingEnable, minSampleShading, pSampleMask, alphaToCoverageEnable, alphaToOneEnable );
  33859. }
  33860. #endif
  33861. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33862. auto operator<=>( PipelineMultisampleStateCreateInfo const & ) const = default;
  33863. #else
  33864. bool operator==( PipelineMultisampleStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33865. {
  33866. # if defined( VULKAN_HPP_USE_REFLECT )
  33867. return this->reflect() == rhs.reflect();
  33868. # else
  33869. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( rasterizationSamples == rhs.rasterizationSamples ) &&
  33870. ( sampleShadingEnable == rhs.sampleShadingEnable ) && ( minSampleShading == rhs.minSampleShading ) && ( pSampleMask == rhs.pSampleMask ) &&
  33871. ( alphaToCoverageEnable == rhs.alphaToCoverageEnable ) && ( alphaToOneEnable == rhs.alphaToOneEnable );
  33872. # endif
  33873. }
  33874. bool operator!=( PipelineMultisampleStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  33875. {
  33876. return !operator==( rhs );
  33877. }
  33878. #endif
  33879. public:
  33880. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo;
  33881. const void * pNext = {};
  33882. VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags = {};
  33883. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  33884. VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {};
  33885. float minSampleShading = {};
  33886. const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask = {};
  33887. VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {};
  33888. VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {};
  33889. };
  33890. template <>
  33891. struct CppType<StructureType, StructureType::ePipelineMultisampleStateCreateInfo>
  33892. {
  33893. using Type = PipelineMultisampleStateCreateInfo;
  33894. };
  33895. struct StencilOpState
  33896. {
  33897. using NativeType = VkStencilOpState;
  33898. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  33899. VULKAN_HPP_CONSTEXPR StencilOpState( VULKAN_HPP_NAMESPACE::StencilOp failOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep,
  33900. VULKAN_HPP_NAMESPACE::StencilOp passOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep,
  33901. VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep,
  33902. VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever,
  33903. uint32_t compareMask_ = {},
  33904. uint32_t writeMask_ = {},
  33905. uint32_t reference_ = {} ) VULKAN_HPP_NOEXCEPT
  33906. : failOp( failOp_ )
  33907. , passOp( passOp_ )
  33908. , depthFailOp( depthFailOp_ )
  33909. , compareOp( compareOp_ )
  33910. , compareMask( compareMask_ )
  33911. , writeMask( writeMask_ )
  33912. , reference( reference_ )
  33913. {
  33914. }
  33915. VULKAN_HPP_CONSTEXPR StencilOpState( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33916. StencilOpState( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT : StencilOpState( *reinterpret_cast<StencilOpState const *>( &rhs ) ) {}
  33917. StencilOpState & operator=( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  33918. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  33919. StencilOpState & operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT
  33920. {
  33921. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StencilOpState const *>( &rhs );
  33922. return *this;
  33923. }
  33924. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  33925. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setFailOp( VULKAN_HPP_NAMESPACE::StencilOp failOp_ ) VULKAN_HPP_NOEXCEPT
  33926. {
  33927. failOp = failOp_;
  33928. return *this;
  33929. }
  33930. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setPassOp( VULKAN_HPP_NAMESPACE::StencilOp passOp_ ) VULKAN_HPP_NOEXCEPT
  33931. {
  33932. passOp = passOp_;
  33933. return *this;
  33934. }
  33935. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setDepthFailOp( VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ ) VULKAN_HPP_NOEXCEPT
  33936. {
  33937. depthFailOp = depthFailOp_;
  33938. return *this;
  33939. }
  33940. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
  33941. {
  33942. compareOp = compareOp_;
  33943. return *this;
  33944. }
  33945. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setCompareMask( uint32_t compareMask_ ) VULKAN_HPP_NOEXCEPT
  33946. {
  33947. compareMask = compareMask_;
  33948. return *this;
  33949. }
  33950. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setWriteMask( uint32_t writeMask_ ) VULKAN_HPP_NOEXCEPT
  33951. {
  33952. writeMask = writeMask_;
  33953. return *this;
  33954. }
  33955. VULKAN_HPP_CONSTEXPR_14 StencilOpState & setReference( uint32_t reference_ ) VULKAN_HPP_NOEXCEPT
  33956. {
  33957. reference = reference_;
  33958. return *this;
  33959. }
  33960. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  33961. operator VkStencilOpState const &() const VULKAN_HPP_NOEXCEPT
  33962. {
  33963. return *reinterpret_cast<const VkStencilOpState *>( this );
  33964. }
  33965. operator VkStencilOpState &() VULKAN_HPP_NOEXCEPT
  33966. {
  33967. return *reinterpret_cast<VkStencilOpState *>( this );
  33968. }
  33969. #if defined( VULKAN_HPP_USE_REFLECT )
  33970. # if 14 <= VULKAN_HPP_CPP_VERSION
  33971. auto
  33972. # else
  33973. std::tuple<VULKAN_HPP_NAMESPACE::StencilOp const &,
  33974. VULKAN_HPP_NAMESPACE::StencilOp const &,
  33975. VULKAN_HPP_NAMESPACE::StencilOp const &,
  33976. VULKAN_HPP_NAMESPACE::CompareOp const &,
  33977. uint32_t const &,
  33978. uint32_t const &,
  33979. uint32_t const &>
  33980. # endif
  33981. reflect() const VULKAN_HPP_NOEXCEPT
  33982. {
  33983. return std::tie( failOp, passOp, depthFailOp, compareOp, compareMask, writeMask, reference );
  33984. }
  33985. #endif
  33986. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  33987. auto operator<=>( StencilOpState const & ) const = default;
  33988. #else
  33989. bool operator==( StencilOpState const & rhs ) const VULKAN_HPP_NOEXCEPT
  33990. {
  33991. # if defined( VULKAN_HPP_USE_REFLECT )
  33992. return this->reflect() == rhs.reflect();
  33993. # else
  33994. return ( failOp == rhs.failOp ) && ( passOp == rhs.passOp ) && ( depthFailOp == rhs.depthFailOp ) && ( compareOp == rhs.compareOp ) &&
  33995. ( compareMask == rhs.compareMask ) && ( writeMask == rhs.writeMask ) && ( reference == rhs.reference );
  33996. # endif
  33997. }
  33998. bool operator!=( StencilOpState const & rhs ) const VULKAN_HPP_NOEXCEPT
  33999. {
  34000. return !operator==( rhs );
  34001. }
  34002. #endif
  34003. public:
  34004. VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
  34005. VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
  34006. VULKAN_HPP_NAMESPACE::StencilOp depthFailOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep;
  34007. VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
  34008. uint32_t compareMask = {};
  34009. uint32_t writeMask = {};
  34010. uint32_t reference = {};
  34011. };
  34012. struct PipelineDepthStencilStateCreateInfo
  34013. {
  34014. using NativeType = VkPipelineDepthStencilStateCreateInfo;
  34015. static const bool allowDuplicate = false;
  34016. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDepthStencilStateCreateInfo;
  34017. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34018. VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ = {},
  34019. VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ = {},
  34020. VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ = {},
  34021. VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever,
  34022. VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ = {},
  34023. VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ = {},
  34024. VULKAN_HPP_NAMESPACE::StencilOpState front_ = {},
  34025. VULKAN_HPP_NAMESPACE::StencilOpState back_ = {},
  34026. float minDepthBounds_ = {},
  34027. float maxDepthBounds_ = {},
  34028. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  34029. : pNext( pNext_ )
  34030. , flags( flags_ )
  34031. , depthTestEnable( depthTestEnable_ )
  34032. , depthWriteEnable( depthWriteEnable_ )
  34033. , depthCompareOp( depthCompareOp_ )
  34034. , depthBoundsTestEnable( depthBoundsTestEnable_ )
  34035. , stencilTestEnable( stencilTestEnable_ )
  34036. , front( front_ )
  34037. , back( back_ )
  34038. , minDepthBounds( minDepthBounds_ )
  34039. , maxDepthBounds( maxDepthBounds_ )
  34040. {
  34041. }
  34042. VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34043. PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  34044. : PipelineDepthStencilStateCreateInfo( *reinterpret_cast<PipelineDepthStencilStateCreateInfo const *>( &rhs ) )
  34045. {
  34046. }
  34047. PipelineDepthStencilStateCreateInfo & operator=( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34048. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34049. PipelineDepthStencilStateCreateInfo & operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  34050. {
  34051. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo const *>( &rhs );
  34052. return *this;
  34053. }
  34054. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34055. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  34056. {
  34057. pNext = pNext_;
  34058. return *this;
  34059. }
  34060. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo &
  34061. setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  34062. {
  34063. flags = flags_;
  34064. return *this;
  34065. }
  34066. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT
  34067. {
  34068. depthTestEnable = depthTestEnable_;
  34069. return *this;
  34070. }
  34071. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT
  34072. {
  34073. depthWriteEnable = depthWriteEnable_;
  34074. return *this;
  34075. }
  34076. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT
  34077. {
  34078. depthCompareOp = depthCompareOp_;
  34079. return *this;
  34080. }
  34081. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo &
  34082. setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT
  34083. {
  34084. depthBoundsTestEnable = depthBoundsTestEnable_;
  34085. return *this;
  34086. }
  34087. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT
  34088. {
  34089. stencilTestEnable = stencilTestEnable_;
  34090. return *this;
  34091. }
  34092. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setFront( VULKAN_HPP_NAMESPACE::StencilOpState const & front_ ) VULKAN_HPP_NOEXCEPT
  34093. {
  34094. front = front_;
  34095. return *this;
  34096. }
  34097. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setBack( VULKAN_HPP_NAMESPACE::StencilOpState const & back_ ) VULKAN_HPP_NOEXCEPT
  34098. {
  34099. back = back_;
  34100. return *this;
  34101. }
  34102. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ ) VULKAN_HPP_NOEXCEPT
  34103. {
  34104. minDepthBounds = minDepthBounds_;
  34105. return *this;
  34106. }
  34107. VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ ) VULKAN_HPP_NOEXCEPT
  34108. {
  34109. maxDepthBounds = maxDepthBounds_;
  34110. return *this;
  34111. }
  34112. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34113. operator VkPipelineDepthStencilStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  34114. {
  34115. return *reinterpret_cast<const VkPipelineDepthStencilStateCreateInfo *>( this );
  34116. }
  34117. operator VkPipelineDepthStencilStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  34118. {
  34119. return *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo *>( this );
  34120. }
  34121. #if defined( VULKAN_HPP_USE_REFLECT )
  34122. # if 14 <= VULKAN_HPP_CPP_VERSION
  34123. auto
  34124. # else
  34125. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  34126. const void * const &,
  34127. VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags const &,
  34128. VULKAN_HPP_NAMESPACE::Bool32 const &,
  34129. VULKAN_HPP_NAMESPACE::Bool32 const &,
  34130. VULKAN_HPP_NAMESPACE::CompareOp const &,
  34131. VULKAN_HPP_NAMESPACE::Bool32 const &,
  34132. VULKAN_HPP_NAMESPACE::Bool32 const &,
  34133. VULKAN_HPP_NAMESPACE::StencilOpState const &,
  34134. VULKAN_HPP_NAMESPACE::StencilOpState const &,
  34135. float const &,
  34136. float const &>
  34137. # endif
  34138. reflect() const VULKAN_HPP_NOEXCEPT
  34139. {
  34140. return std::tie( sType,
  34141. pNext,
  34142. flags,
  34143. depthTestEnable,
  34144. depthWriteEnable,
  34145. depthCompareOp,
  34146. depthBoundsTestEnable,
  34147. stencilTestEnable,
  34148. front,
  34149. back,
  34150. minDepthBounds,
  34151. maxDepthBounds );
  34152. }
  34153. #endif
  34154. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34155. auto operator<=>( PipelineDepthStencilStateCreateInfo const & ) const = default;
  34156. #else
  34157. bool operator==( PipelineDepthStencilStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  34158. {
  34159. # if defined( VULKAN_HPP_USE_REFLECT )
  34160. return this->reflect() == rhs.reflect();
  34161. # else
  34162. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( depthTestEnable == rhs.depthTestEnable ) &&
  34163. ( depthWriteEnable == rhs.depthWriteEnable ) && ( depthCompareOp == rhs.depthCompareOp ) &&
  34164. ( depthBoundsTestEnable == rhs.depthBoundsTestEnable ) && ( stencilTestEnable == rhs.stencilTestEnable ) && ( front == rhs.front ) &&
  34165. ( back == rhs.back ) && ( minDepthBounds == rhs.minDepthBounds ) && ( maxDepthBounds == rhs.maxDepthBounds );
  34166. # endif
  34167. }
  34168. bool operator!=( PipelineDepthStencilStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  34169. {
  34170. return !operator==( rhs );
  34171. }
  34172. #endif
  34173. public:
  34174. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo;
  34175. const void * pNext = {};
  34176. VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {};
  34177. VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {};
  34178. VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {};
  34179. VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
  34180. VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {};
  34181. VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {};
  34182. VULKAN_HPP_NAMESPACE::StencilOpState front = {};
  34183. VULKAN_HPP_NAMESPACE::StencilOpState back = {};
  34184. float minDepthBounds = {};
  34185. float maxDepthBounds = {};
  34186. };
  34187. template <>
  34188. struct CppType<StructureType, StructureType::ePipelineDepthStencilStateCreateInfo>
  34189. {
  34190. using Type = PipelineDepthStencilStateCreateInfo;
  34191. };
  34192. struct PipelineColorBlendAttachmentState
  34193. {
  34194. using NativeType = VkPipelineColorBlendAttachmentState;
  34195. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34196. VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ = {},
  34197. VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  34198. VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  34199. VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd,
  34200. VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  34201. VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero,
  34202. VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd,
  34203. VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ = {} ) VULKAN_HPP_NOEXCEPT
  34204. : blendEnable( blendEnable_ )
  34205. , srcColorBlendFactor( srcColorBlendFactor_ )
  34206. , dstColorBlendFactor( dstColorBlendFactor_ )
  34207. , colorBlendOp( colorBlendOp_ )
  34208. , srcAlphaBlendFactor( srcAlphaBlendFactor_ )
  34209. , dstAlphaBlendFactor( dstAlphaBlendFactor_ )
  34210. , alphaBlendOp( alphaBlendOp_ )
  34211. , colorWriteMask( colorWriteMask_ )
  34212. {
  34213. }
  34214. VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34215. PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
  34216. : PipelineColorBlendAttachmentState( *reinterpret_cast<PipelineColorBlendAttachmentState const *>( &rhs ) )
  34217. {
  34218. }
  34219. PipelineColorBlendAttachmentState & operator=( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34220. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34221. PipelineColorBlendAttachmentState & operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT
  34222. {
  34223. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState const *>( &rhs );
  34224. return *this;
  34225. }
  34226. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34227. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ ) VULKAN_HPP_NOEXCEPT
  34228. {
  34229. blendEnable = blendEnable_;
  34230. return *this;
  34231. }
  34232. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
  34233. setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  34234. {
  34235. srcColorBlendFactor = srcColorBlendFactor_;
  34236. return *this;
  34237. }
  34238. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
  34239. setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  34240. {
  34241. dstColorBlendFactor = dstColorBlendFactor_;
  34242. return *this;
  34243. }
  34244. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT
  34245. {
  34246. colorBlendOp = colorBlendOp_;
  34247. return *this;
  34248. }
  34249. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
  34250. setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  34251. {
  34252. srcAlphaBlendFactor = srcAlphaBlendFactor_;
  34253. return *this;
  34254. }
  34255. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
  34256. setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT
  34257. {
  34258. dstAlphaBlendFactor = dstAlphaBlendFactor_;
  34259. return *this;
  34260. }
  34261. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT
  34262. {
  34263. alphaBlendOp = alphaBlendOp_;
  34264. return *this;
  34265. }
  34266. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState &
  34267. setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT
  34268. {
  34269. colorWriteMask = colorWriteMask_;
  34270. return *this;
  34271. }
  34272. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34273. operator VkPipelineColorBlendAttachmentState const &() const VULKAN_HPP_NOEXCEPT
  34274. {
  34275. return *reinterpret_cast<const VkPipelineColorBlendAttachmentState *>( this );
  34276. }
  34277. operator VkPipelineColorBlendAttachmentState &() VULKAN_HPP_NOEXCEPT
  34278. {
  34279. return *reinterpret_cast<VkPipelineColorBlendAttachmentState *>( this );
  34280. }
  34281. #if defined( VULKAN_HPP_USE_REFLECT )
  34282. # if 14 <= VULKAN_HPP_CPP_VERSION
  34283. auto
  34284. # else
  34285. std::tuple<VULKAN_HPP_NAMESPACE::Bool32 const &,
  34286. VULKAN_HPP_NAMESPACE::BlendFactor const &,
  34287. VULKAN_HPP_NAMESPACE::BlendFactor const &,
  34288. VULKAN_HPP_NAMESPACE::BlendOp const &,
  34289. VULKAN_HPP_NAMESPACE::BlendFactor const &,
  34290. VULKAN_HPP_NAMESPACE::BlendFactor const &,
  34291. VULKAN_HPP_NAMESPACE::BlendOp const &,
  34292. VULKAN_HPP_NAMESPACE::ColorComponentFlags const &>
  34293. # endif
  34294. reflect() const VULKAN_HPP_NOEXCEPT
  34295. {
  34296. return std::tie(
  34297. blendEnable, srcColorBlendFactor, dstColorBlendFactor, colorBlendOp, srcAlphaBlendFactor, dstAlphaBlendFactor, alphaBlendOp, colorWriteMask );
  34298. }
  34299. #endif
  34300. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34301. auto operator<=>( PipelineColorBlendAttachmentState const & ) const = default;
  34302. #else
  34303. bool operator==( PipelineColorBlendAttachmentState const & rhs ) const VULKAN_HPP_NOEXCEPT
  34304. {
  34305. # if defined( VULKAN_HPP_USE_REFLECT )
  34306. return this->reflect() == rhs.reflect();
  34307. # else
  34308. return ( blendEnable == rhs.blendEnable ) && ( srcColorBlendFactor == rhs.srcColorBlendFactor ) && ( dstColorBlendFactor == rhs.dstColorBlendFactor ) &&
  34309. ( colorBlendOp == rhs.colorBlendOp ) && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor ) && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor ) &&
  34310. ( alphaBlendOp == rhs.alphaBlendOp ) && ( colorWriteMask == rhs.colorWriteMask );
  34311. # endif
  34312. }
  34313. bool operator!=( PipelineColorBlendAttachmentState const & rhs ) const VULKAN_HPP_NOEXCEPT
  34314. {
  34315. return !operator==( rhs );
  34316. }
  34317. #endif
  34318. public:
  34319. VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {};
  34320. VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  34321. VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  34322. VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
  34323. VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  34324. VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero;
  34325. VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd;
  34326. VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {};
  34327. };
  34328. struct PipelineColorBlendStateCreateInfo
  34329. {
  34330. using NativeType = VkPipelineColorBlendStateCreateInfo;
  34331. static const bool allowDuplicate = false;
  34332. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendStateCreateInfo;
  34333. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34334. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ = {},
  34335. VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ = {},
  34336. VULKAN_HPP_NAMESPACE::LogicOp logicOp_ = VULKAN_HPP_NAMESPACE::LogicOp::eClear,
  34337. uint32_t attachmentCount_ = {},
  34338. const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments_ = {},
  34339. std::array<float, 4> const & blendConstants_ = {},
  34340. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  34341. : pNext( pNext_ )
  34342. , flags( flags_ )
  34343. , logicOpEnable( logicOpEnable_ )
  34344. , logicOp( logicOp_ )
  34345. , attachmentCount( attachmentCount_ )
  34346. , pAttachments( pAttachments_ )
  34347. , blendConstants( blendConstants_ )
  34348. {
  34349. }
  34350. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34351. PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  34352. : PipelineColorBlendStateCreateInfo( *reinterpret_cast<PipelineColorBlendStateCreateInfo const *>( &rhs ) )
  34353. {
  34354. }
  34355. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34356. PipelineColorBlendStateCreateInfo(
  34357. VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_,
  34358. VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_,
  34359. VULKAN_HPP_NAMESPACE::LogicOp logicOp_,
  34360. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_,
  34361. std::array<float, 4> const & blendConstants_ = {},
  34362. const void * pNext_ = nullptr )
  34363. : pNext( pNext_ )
  34364. , flags( flags_ )
  34365. , logicOpEnable( logicOpEnable_ )
  34366. , logicOp( logicOp_ )
  34367. , attachmentCount( static_cast<uint32_t>( attachments_.size() ) )
  34368. , pAttachments( attachments_.data() )
  34369. , blendConstants( blendConstants_ )
  34370. {
  34371. }
  34372. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34373. PipelineColorBlendStateCreateInfo & operator=( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34374. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34375. PipelineColorBlendStateCreateInfo & operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  34376. {
  34377. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo const *>( &rhs );
  34378. return *this;
  34379. }
  34380. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34381. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  34382. {
  34383. pNext = pNext_;
  34384. return *this;
  34385. }
  34386. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  34387. {
  34388. flags = flags_;
  34389. return *this;
  34390. }
  34391. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT
  34392. {
  34393. logicOpEnable = logicOpEnable_;
  34394. return *this;
  34395. }
  34396. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setLogicOp( VULKAN_HPP_NAMESPACE::LogicOp logicOp_ ) VULKAN_HPP_NOEXCEPT
  34397. {
  34398. logicOp = logicOp_;
  34399. return *this;
  34400. }
  34401. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  34402. {
  34403. attachmentCount = attachmentCount_;
  34404. return *this;
  34405. }
  34406. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo &
  34407. setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments_ ) VULKAN_HPP_NOEXCEPT
  34408. {
  34409. pAttachments = pAttachments_;
  34410. return *this;
  34411. }
  34412. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34413. PipelineColorBlendStateCreateInfo & setAttachments(
  34414. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_ ) VULKAN_HPP_NOEXCEPT
  34415. {
  34416. attachmentCount = static_cast<uint32_t>( attachments_.size() );
  34417. pAttachments = attachments_.data();
  34418. return *this;
  34419. }
  34420. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34421. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & setBlendConstants( std::array<float, 4> blendConstants_ ) VULKAN_HPP_NOEXCEPT
  34422. {
  34423. blendConstants = blendConstants_;
  34424. return *this;
  34425. }
  34426. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34427. operator VkPipelineColorBlendStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  34428. {
  34429. return *reinterpret_cast<const VkPipelineColorBlendStateCreateInfo *>( this );
  34430. }
  34431. operator VkPipelineColorBlendStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  34432. {
  34433. return *reinterpret_cast<VkPipelineColorBlendStateCreateInfo *>( this );
  34434. }
  34435. #if defined( VULKAN_HPP_USE_REFLECT )
  34436. # if 14 <= VULKAN_HPP_CPP_VERSION
  34437. auto
  34438. # else
  34439. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  34440. const void * const &,
  34441. VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags const &,
  34442. VULKAN_HPP_NAMESPACE::Bool32 const &,
  34443. VULKAN_HPP_NAMESPACE::LogicOp const &,
  34444. uint32_t const &,
  34445. const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * const &,
  34446. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> const &>
  34447. # endif
  34448. reflect() const VULKAN_HPP_NOEXCEPT
  34449. {
  34450. return std::tie( sType, pNext, flags, logicOpEnable, logicOp, attachmentCount, pAttachments, blendConstants );
  34451. }
  34452. #endif
  34453. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34454. auto operator<=>( PipelineColorBlendStateCreateInfo const & ) const = default;
  34455. #else
  34456. bool operator==( PipelineColorBlendStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  34457. {
  34458. # if defined( VULKAN_HPP_USE_REFLECT )
  34459. return this->reflect() == rhs.reflect();
  34460. # else
  34461. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( logicOpEnable == rhs.logicOpEnable ) &&
  34462. ( logicOp == rhs.logicOp ) && ( attachmentCount == rhs.attachmentCount ) && ( pAttachments == rhs.pAttachments ) &&
  34463. ( blendConstants == rhs.blendConstants );
  34464. # endif
  34465. }
  34466. bool operator!=( PipelineColorBlendStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  34467. {
  34468. return !operator==( rhs );
  34469. }
  34470. #endif
  34471. public:
  34472. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo;
  34473. const void * pNext = {};
  34474. VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags = {};
  34475. VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {};
  34476. VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear;
  34477. uint32_t attachmentCount = {};
  34478. const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments = {};
  34479. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 4> blendConstants = {};
  34480. };
  34481. template <>
  34482. struct CppType<StructureType, StructureType::ePipelineColorBlendStateCreateInfo>
  34483. {
  34484. using Type = PipelineColorBlendStateCreateInfo;
  34485. };
  34486. struct PipelineDynamicStateCreateInfo
  34487. {
  34488. using NativeType = VkPipelineDynamicStateCreateInfo;
  34489. static const bool allowDuplicate = false;
  34490. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDynamicStateCreateInfo;
  34491. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34492. VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {},
  34493. uint32_t dynamicStateCount_ = {},
  34494. const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates_ = {},
  34495. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  34496. : pNext( pNext_ )
  34497. , flags( flags_ )
  34498. , dynamicStateCount( dynamicStateCount_ )
  34499. , pDynamicStates( pDynamicStates_ )
  34500. {
  34501. }
  34502. VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34503. PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  34504. : PipelineDynamicStateCreateInfo( *reinterpret_cast<PipelineDynamicStateCreateInfo const *>( &rhs ) )
  34505. {
  34506. }
  34507. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34508. PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_,
  34509. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_,
  34510. const void * pNext_ = nullptr )
  34511. : pNext( pNext_ ), flags( flags_ ), dynamicStateCount( static_cast<uint32_t>( dynamicStates_.size() ) ), pDynamicStates( dynamicStates_.data() )
  34512. {
  34513. }
  34514. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34515. PipelineDynamicStateCreateInfo & operator=( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34516. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34517. PipelineDynamicStateCreateInfo & operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  34518. {
  34519. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo const *>( &rhs );
  34520. return *this;
  34521. }
  34522. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34523. VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  34524. {
  34525. pNext = pNext_;
  34526. return *this;
  34527. }
  34528. VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  34529. {
  34530. flags = flags_;
  34531. return *this;
  34532. }
  34533. VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ ) VULKAN_HPP_NOEXCEPT
  34534. {
  34535. dynamicStateCount = dynamicStateCount_;
  34536. return *this;
  34537. }
  34538. VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates_ ) VULKAN_HPP_NOEXCEPT
  34539. {
  34540. pDynamicStates = pDynamicStates_;
  34541. return *this;
  34542. }
  34543. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34544. PipelineDynamicStateCreateInfo &
  34545. setDynamicStates( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DynamicState> const & dynamicStates_ ) VULKAN_HPP_NOEXCEPT
  34546. {
  34547. dynamicStateCount = static_cast<uint32_t>( dynamicStates_.size() );
  34548. pDynamicStates = dynamicStates_.data();
  34549. return *this;
  34550. }
  34551. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34552. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34553. operator VkPipelineDynamicStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  34554. {
  34555. return *reinterpret_cast<const VkPipelineDynamicStateCreateInfo *>( this );
  34556. }
  34557. operator VkPipelineDynamicStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  34558. {
  34559. return *reinterpret_cast<VkPipelineDynamicStateCreateInfo *>( this );
  34560. }
  34561. #if defined( VULKAN_HPP_USE_REFLECT )
  34562. # if 14 <= VULKAN_HPP_CPP_VERSION
  34563. auto
  34564. # else
  34565. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  34566. const void * const &,
  34567. VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags const &,
  34568. uint32_t const &,
  34569. const VULKAN_HPP_NAMESPACE::DynamicState * const &>
  34570. # endif
  34571. reflect() const VULKAN_HPP_NOEXCEPT
  34572. {
  34573. return std::tie( sType, pNext, flags, dynamicStateCount, pDynamicStates );
  34574. }
  34575. #endif
  34576. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34577. auto operator<=>( PipelineDynamicStateCreateInfo const & ) const = default;
  34578. #else
  34579. bool operator==( PipelineDynamicStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  34580. {
  34581. # if defined( VULKAN_HPP_USE_REFLECT )
  34582. return this->reflect() == rhs.reflect();
  34583. # else
  34584. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dynamicStateCount == rhs.dynamicStateCount ) &&
  34585. ( pDynamicStates == rhs.pDynamicStates );
  34586. # endif
  34587. }
  34588. bool operator!=( PipelineDynamicStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  34589. {
  34590. return !operator==( rhs );
  34591. }
  34592. #endif
  34593. public:
  34594. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo;
  34595. const void * pNext = {};
  34596. VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags = {};
  34597. uint32_t dynamicStateCount = {};
  34598. const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates = {};
  34599. };
  34600. template <>
  34601. struct CppType<StructureType, StructureType::ePipelineDynamicStateCreateInfo>
  34602. {
  34603. using Type = PipelineDynamicStateCreateInfo;
  34604. };
  34605. struct GraphicsPipelineCreateInfo
  34606. {
  34607. using NativeType = VkGraphicsPipelineCreateInfo;
  34608. static const bool allowDuplicate = false;
  34609. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineCreateInfo;
  34610. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34611. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
  34612. uint32_t stageCount_ = {},
  34613. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {},
  34614. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {},
  34615. const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ = {},
  34616. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {},
  34617. const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ = {},
  34618. const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ = {},
  34619. const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ = {},
  34620. const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ = {},
  34621. const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ = {},
  34622. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {},
  34623. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  34624. VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  34625. uint32_t subpass_ = {},
  34626. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  34627. int32_t basePipelineIndex_ = {},
  34628. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  34629. : pNext( pNext_ )
  34630. , flags( flags_ )
  34631. , stageCount( stageCount_ )
  34632. , pStages( pStages_ )
  34633. , pVertexInputState( pVertexInputState_ )
  34634. , pInputAssemblyState( pInputAssemblyState_ )
  34635. , pTessellationState( pTessellationState_ )
  34636. , pViewportState( pViewportState_ )
  34637. , pRasterizationState( pRasterizationState_ )
  34638. , pMultisampleState( pMultisampleState_ )
  34639. , pDepthStencilState( pDepthStencilState_ )
  34640. , pColorBlendState( pColorBlendState_ )
  34641. , pDynamicState( pDynamicState_ )
  34642. , layout( layout_ )
  34643. , renderPass( renderPass_ )
  34644. , subpass( subpass_ )
  34645. , basePipelineHandle( basePipelineHandle_ )
  34646. , basePipelineIndex( basePipelineIndex_ )
  34647. {
  34648. }
  34649. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34650. GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  34651. : GraphicsPipelineCreateInfo( *reinterpret_cast<GraphicsPipelineCreateInfo const *>( &rhs ) )
  34652. {
  34653. }
  34654. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34655. GraphicsPipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_,
  34656. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_,
  34657. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {},
  34658. const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ = {},
  34659. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {},
  34660. const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ = {},
  34661. const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ = {},
  34662. const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ = {},
  34663. const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ = {},
  34664. const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ = {},
  34665. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {},
  34666. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  34667. VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  34668. uint32_t subpass_ = {},
  34669. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  34670. int32_t basePipelineIndex_ = {},
  34671. const void * pNext_ = nullptr )
  34672. : pNext( pNext_ )
  34673. , flags( flags_ )
  34674. , stageCount( static_cast<uint32_t>( stages_.size() ) )
  34675. , pStages( stages_.data() )
  34676. , pVertexInputState( pVertexInputState_ )
  34677. , pInputAssemblyState( pInputAssemblyState_ )
  34678. , pTessellationState( pTessellationState_ )
  34679. , pViewportState( pViewportState_ )
  34680. , pRasterizationState( pRasterizationState_ )
  34681. , pMultisampleState( pMultisampleState_ )
  34682. , pDepthStencilState( pDepthStencilState_ )
  34683. , pColorBlendState( pColorBlendState_ )
  34684. , pDynamicState( pDynamicState_ )
  34685. , layout( layout_ )
  34686. , renderPass( renderPass_ )
  34687. , subpass( subpass_ )
  34688. , basePipelineHandle( basePipelineHandle_ )
  34689. , basePipelineIndex( basePipelineIndex_ )
  34690. {
  34691. }
  34692. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34693. GraphicsPipelineCreateInfo & operator=( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34694. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34695. GraphicsPipelineCreateInfo & operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  34696. {
  34697. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const *>( &rhs );
  34698. return *this;
  34699. }
  34700. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34701. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  34702. {
  34703. pNext = pNext_;
  34704. return *this;
  34705. }
  34706. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  34707. {
  34708. flags = flags_;
  34709. return *this;
  34710. }
  34711. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
  34712. {
  34713. stageCount = stageCount_;
  34714. return *this;
  34715. }
  34716. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
  34717. {
  34718. pStages = pStages_;
  34719. return *this;
  34720. }
  34721. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  34722. GraphicsPipelineCreateInfo &
  34723. setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
  34724. {
  34725. stageCount = static_cast<uint32_t>( stages_.size() );
  34726. pStages = stages_.data();
  34727. return *this;
  34728. }
  34729. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  34730. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  34731. setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
  34732. {
  34733. pVertexInputState = pVertexInputState_;
  34734. return *this;
  34735. }
  34736. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  34737. setPInputAssemblyState( const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT
  34738. {
  34739. pInputAssemblyState = pInputAssemblyState_;
  34740. return *this;
  34741. }
  34742. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  34743. setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT
  34744. {
  34745. pTessellationState = pTessellationState_;
  34746. return *this;
  34747. }
  34748. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  34749. setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ ) VULKAN_HPP_NOEXCEPT
  34750. {
  34751. pViewportState = pViewportState_;
  34752. return *this;
  34753. }
  34754. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  34755. setPRasterizationState( const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ ) VULKAN_HPP_NOEXCEPT
  34756. {
  34757. pRasterizationState = pRasterizationState_;
  34758. return *this;
  34759. }
  34760. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  34761. setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ ) VULKAN_HPP_NOEXCEPT
  34762. {
  34763. pMultisampleState = pMultisampleState_;
  34764. return *this;
  34765. }
  34766. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  34767. setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT
  34768. {
  34769. pDepthStencilState = pDepthStencilState_;
  34770. return *this;
  34771. }
  34772. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  34773. setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ ) VULKAN_HPP_NOEXCEPT
  34774. {
  34775. pColorBlendState = pColorBlendState_;
  34776. return *this;
  34777. }
  34778. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo &
  34779. setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT
  34780. {
  34781. pDynamicState = pDynamicState_;
  34782. return *this;
  34783. }
  34784. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
  34785. {
  34786. layout = layout_;
  34787. return *this;
  34788. }
  34789. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
  34790. {
  34791. renderPass = renderPass_;
  34792. return *this;
  34793. }
  34794. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
  34795. {
  34796. subpass = subpass_;
  34797. return *this;
  34798. }
  34799. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
  34800. {
  34801. basePipelineHandle = basePipelineHandle_;
  34802. return *this;
  34803. }
  34804. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
  34805. {
  34806. basePipelineIndex = basePipelineIndex_;
  34807. return *this;
  34808. }
  34809. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34810. operator VkGraphicsPipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  34811. {
  34812. return *reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( this );
  34813. }
  34814. operator VkGraphicsPipelineCreateInfo &() VULKAN_HPP_NOEXCEPT
  34815. {
  34816. return *reinterpret_cast<VkGraphicsPipelineCreateInfo *>( this );
  34817. }
  34818. #if defined( VULKAN_HPP_USE_REFLECT )
  34819. # if 14 <= VULKAN_HPP_CPP_VERSION
  34820. auto
  34821. # else
  34822. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  34823. const void * const &,
  34824. VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &,
  34825. uint32_t const &,
  34826. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &,
  34827. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * const &,
  34828. const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * const &,
  34829. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * const &,
  34830. const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * const &,
  34831. const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * const &,
  34832. const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * const &,
  34833. const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * const &,
  34834. const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * const &,
  34835. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * const &,
  34836. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  34837. VULKAN_HPP_NAMESPACE::RenderPass const &,
  34838. uint32_t const &,
  34839. VULKAN_HPP_NAMESPACE::Pipeline const &,
  34840. int32_t const &>
  34841. # endif
  34842. reflect() const VULKAN_HPP_NOEXCEPT
  34843. {
  34844. return std::tie( sType,
  34845. pNext,
  34846. flags,
  34847. stageCount,
  34848. pStages,
  34849. pVertexInputState,
  34850. pInputAssemblyState,
  34851. pTessellationState,
  34852. pViewportState,
  34853. pRasterizationState,
  34854. pMultisampleState,
  34855. pDepthStencilState,
  34856. pColorBlendState,
  34857. pDynamicState,
  34858. layout,
  34859. renderPass,
  34860. subpass,
  34861. basePipelineHandle,
  34862. basePipelineIndex );
  34863. }
  34864. #endif
  34865. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34866. auto operator<=>( GraphicsPipelineCreateInfo const & ) const = default;
  34867. #else
  34868. bool operator==( GraphicsPipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  34869. {
  34870. # if defined( VULKAN_HPP_USE_REFLECT )
  34871. return this->reflect() == rhs.reflect();
  34872. # else
  34873. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) &&
  34874. ( pVertexInputState == rhs.pVertexInputState ) && ( pInputAssemblyState == rhs.pInputAssemblyState ) &&
  34875. ( pTessellationState == rhs.pTessellationState ) && ( pViewportState == rhs.pViewportState ) &&
  34876. ( pRasterizationState == rhs.pRasterizationState ) && ( pMultisampleState == rhs.pMultisampleState ) &&
  34877. ( pDepthStencilState == rhs.pDepthStencilState ) && ( pColorBlendState == rhs.pColorBlendState ) && ( pDynamicState == rhs.pDynamicState ) &&
  34878. ( layout == rhs.layout ) && ( renderPass == rhs.renderPass ) && ( subpass == rhs.subpass ) && ( basePipelineHandle == rhs.basePipelineHandle ) &&
  34879. ( basePipelineIndex == rhs.basePipelineIndex );
  34880. # endif
  34881. }
  34882. bool operator!=( GraphicsPipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  34883. {
  34884. return !operator==( rhs );
  34885. }
  34886. #endif
  34887. public:
  34888. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo;
  34889. const void * pNext = {};
  34890. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
  34891. uint32_t stageCount = {};
  34892. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
  34893. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState = {};
  34894. const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState = {};
  34895. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState = {};
  34896. const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState = {};
  34897. const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState = {};
  34898. const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState = {};
  34899. const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState = {};
  34900. const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState = {};
  34901. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState = {};
  34902. VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
  34903. VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
  34904. uint32_t subpass = {};
  34905. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
  34906. int32_t basePipelineIndex = {};
  34907. };
  34908. template <>
  34909. struct CppType<StructureType, StructureType::eGraphicsPipelineCreateInfo>
  34910. {
  34911. using Type = GraphicsPipelineCreateInfo;
  34912. };
  34913. struct GraphicsPipelineLibraryCreateInfoEXT
  34914. {
  34915. using NativeType = VkGraphicsPipelineLibraryCreateInfoEXT;
  34916. static const bool allowDuplicate = false;
  34917. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineLibraryCreateInfoEXT;
  34918. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  34919. VULKAN_HPP_CONSTEXPR GraphicsPipelineLibraryCreateInfoEXT( VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags_ = {},
  34920. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  34921. : pNext( pNext_ )
  34922. , flags( flags_ )
  34923. {
  34924. }
  34925. VULKAN_HPP_CONSTEXPR GraphicsPipelineLibraryCreateInfoEXT( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34926. GraphicsPipelineLibraryCreateInfoEXT( VkGraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  34927. : GraphicsPipelineLibraryCreateInfoEXT( *reinterpret_cast<GraphicsPipelineLibraryCreateInfoEXT const *>( &rhs ) )
  34928. {
  34929. }
  34930. GraphicsPipelineLibraryCreateInfoEXT & operator=( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  34931. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  34932. GraphicsPipelineLibraryCreateInfoEXT & operator=( VkGraphicsPipelineLibraryCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  34933. {
  34934. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT const *>( &rhs );
  34935. return *this;
  34936. }
  34937. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  34938. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineLibraryCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  34939. {
  34940. pNext = pNext_;
  34941. return *this;
  34942. }
  34943. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineLibraryCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  34944. {
  34945. flags = flags_;
  34946. return *this;
  34947. }
  34948. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  34949. operator VkGraphicsPipelineLibraryCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  34950. {
  34951. return *reinterpret_cast<const VkGraphicsPipelineLibraryCreateInfoEXT *>( this );
  34952. }
  34953. operator VkGraphicsPipelineLibraryCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  34954. {
  34955. return *reinterpret_cast<VkGraphicsPipelineLibraryCreateInfoEXT *>( this );
  34956. }
  34957. #if defined( VULKAN_HPP_USE_REFLECT )
  34958. # if 14 <= VULKAN_HPP_CPP_VERSION
  34959. auto
  34960. # else
  34961. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT const &>
  34962. # endif
  34963. reflect() const VULKAN_HPP_NOEXCEPT
  34964. {
  34965. return std::tie( sType, pNext, flags );
  34966. }
  34967. #endif
  34968. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  34969. auto operator<=>( GraphicsPipelineLibraryCreateInfoEXT const & ) const = default;
  34970. #else
  34971. bool operator==( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  34972. {
  34973. # if defined( VULKAN_HPP_USE_REFLECT )
  34974. return this->reflect() == rhs.reflect();
  34975. # else
  34976. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  34977. # endif
  34978. }
  34979. bool operator!=( GraphicsPipelineLibraryCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  34980. {
  34981. return !operator==( rhs );
  34982. }
  34983. #endif
  34984. public:
  34985. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineLibraryCreateInfoEXT;
  34986. const void * pNext = {};
  34987. VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryFlagsEXT flags = {};
  34988. };
  34989. template <>
  34990. struct CppType<StructureType, StructureType::eGraphicsPipelineLibraryCreateInfoEXT>
  34991. {
  34992. using Type = GraphicsPipelineLibraryCreateInfoEXT;
  34993. };
  34994. struct GraphicsShaderGroupCreateInfoNV
  34995. {
  34996. using NativeType = VkGraphicsShaderGroupCreateInfoNV;
  34997. static const bool allowDuplicate = false;
  34998. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsShaderGroupCreateInfoNV;
  34999. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35000. VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( uint32_t stageCount_ = {},
  35001. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {},
  35002. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {},
  35003. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {},
  35004. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35005. : pNext( pNext_ )
  35006. , stageCount( stageCount_ )
  35007. , pStages( pStages_ )
  35008. , pVertexInputState( pVertexInputState_ )
  35009. , pTessellationState( pTessellationState_ )
  35010. {
  35011. }
  35012. VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35013. GraphicsShaderGroupCreateInfoNV( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  35014. : GraphicsShaderGroupCreateInfoNV( *reinterpret_cast<GraphicsShaderGroupCreateInfoNV const *>( &rhs ) )
  35015. {
  35016. }
  35017. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  35018. GraphicsShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_,
  35019. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {},
  35020. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {},
  35021. const void * pNext_ = nullptr )
  35022. : pNext( pNext_ )
  35023. , stageCount( static_cast<uint32_t>( stages_.size() ) )
  35024. , pStages( stages_.data() )
  35025. , pVertexInputState( pVertexInputState_ )
  35026. , pTessellationState( pTessellationState_ )
  35027. {
  35028. }
  35029. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  35030. GraphicsShaderGroupCreateInfoNV & operator=( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35031. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35032. GraphicsShaderGroupCreateInfoNV & operator=( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  35033. {
  35034. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV const *>( &rhs );
  35035. return *this;
  35036. }
  35037. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35038. VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35039. {
  35040. pNext = pNext_;
  35041. return *this;
  35042. }
  35043. VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
  35044. {
  35045. stageCount = stageCount_;
  35046. return *this;
  35047. }
  35048. VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV &
  35049. setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
  35050. {
  35051. pStages = pStages_;
  35052. return *this;
  35053. }
  35054. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  35055. GraphicsShaderGroupCreateInfoNV &
  35056. setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
  35057. {
  35058. stageCount = static_cast<uint32_t>( stages_.size() );
  35059. pStages = stages_.data();
  35060. return *this;
  35061. }
  35062. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  35063. VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV &
  35064. setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT
  35065. {
  35066. pVertexInputState = pVertexInputState_;
  35067. return *this;
  35068. }
  35069. VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV &
  35070. setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT
  35071. {
  35072. pTessellationState = pTessellationState_;
  35073. return *this;
  35074. }
  35075. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35076. operator VkGraphicsShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  35077. {
  35078. return *reinterpret_cast<const VkGraphicsShaderGroupCreateInfoNV *>( this );
  35079. }
  35080. operator VkGraphicsShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  35081. {
  35082. return *reinterpret_cast<VkGraphicsShaderGroupCreateInfoNV *>( this );
  35083. }
  35084. #if defined( VULKAN_HPP_USE_REFLECT )
  35085. # if 14 <= VULKAN_HPP_CPP_VERSION
  35086. auto
  35087. # else
  35088. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  35089. const void * const &,
  35090. uint32_t const &,
  35091. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &,
  35092. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * const &,
  35093. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * const &>
  35094. # endif
  35095. reflect() const VULKAN_HPP_NOEXCEPT
  35096. {
  35097. return std::tie( sType, pNext, stageCount, pStages, pVertexInputState, pTessellationState );
  35098. }
  35099. #endif
  35100. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35101. auto operator<=>( GraphicsShaderGroupCreateInfoNV const & ) const = default;
  35102. #else
  35103. bool operator==( GraphicsShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  35104. {
  35105. # if defined( VULKAN_HPP_USE_REFLECT )
  35106. return this->reflect() == rhs.reflect();
  35107. # else
  35108. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) &&
  35109. ( pVertexInputState == rhs.pVertexInputState ) && ( pTessellationState == rhs.pTessellationState );
  35110. # endif
  35111. }
  35112. bool operator!=( GraphicsShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  35113. {
  35114. return !operator==( rhs );
  35115. }
  35116. #endif
  35117. public:
  35118. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsShaderGroupCreateInfoNV;
  35119. const void * pNext = {};
  35120. uint32_t stageCount = {};
  35121. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
  35122. const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState = {};
  35123. const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState = {};
  35124. };
  35125. template <>
  35126. struct CppType<StructureType, StructureType::eGraphicsShaderGroupCreateInfoNV>
  35127. {
  35128. using Type = GraphicsShaderGroupCreateInfoNV;
  35129. };
  35130. struct GraphicsPipelineShaderGroupsCreateInfoNV
  35131. {
  35132. using NativeType = VkGraphicsPipelineShaderGroupsCreateInfoNV;
  35133. static const bool allowDuplicate = false;
  35134. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
  35135. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35136. VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( uint32_t groupCount_ = {},
  35137. const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups_ = {},
  35138. uint32_t pipelineCount_ = {},
  35139. const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines_ = {},
  35140. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35141. : pNext( pNext_ )
  35142. , groupCount( groupCount_ )
  35143. , pGroups( pGroups_ )
  35144. , pipelineCount( pipelineCount_ )
  35145. , pPipelines( pPipelines_ )
  35146. {
  35147. }
  35148. VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35149. GraphicsPipelineShaderGroupsCreateInfoNV( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  35150. : GraphicsPipelineShaderGroupsCreateInfoNV( *reinterpret_cast<GraphicsPipelineShaderGroupsCreateInfoNV const *>( &rhs ) )
  35151. {
  35152. }
  35153. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  35154. GraphicsPipelineShaderGroupsCreateInfoNV(
  35155. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_,
  35156. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ = {},
  35157. const void * pNext_ = nullptr )
  35158. : pNext( pNext_ )
  35159. , groupCount( static_cast<uint32_t>( groups_.size() ) )
  35160. , pGroups( groups_.data() )
  35161. , pipelineCount( static_cast<uint32_t>( pipelines_.size() ) )
  35162. , pPipelines( pipelines_.data() )
  35163. {
  35164. }
  35165. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  35166. GraphicsPipelineShaderGroupsCreateInfoNV & operator=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35167. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35168. GraphicsPipelineShaderGroupsCreateInfoNV & operator=( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  35169. {
  35170. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV const *>( &rhs );
  35171. return *this;
  35172. }
  35173. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35174. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35175. {
  35176. pNext = pNext_;
  35177. return *this;
  35178. }
  35179. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
  35180. {
  35181. groupCount = groupCount_;
  35182. return *this;
  35183. }
  35184. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV &
  35185. setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT
  35186. {
  35187. pGroups = pGroups_;
  35188. return *this;
  35189. }
  35190. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  35191. GraphicsPipelineShaderGroupsCreateInfoNV & setGroups(
  35192. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
  35193. {
  35194. groupCount = static_cast<uint32_t>( groups_.size() );
  35195. pGroups = groups_.data();
  35196. return *this;
  35197. }
  35198. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  35199. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT
  35200. {
  35201. pipelineCount = pipelineCount_;
  35202. return *this;
  35203. }
  35204. VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & setPPipelines( const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines_ ) VULKAN_HPP_NOEXCEPT
  35205. {
  35206. pPipelines = pPipelines_;
  35207. return *this;
  35208. }
  35209. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  35210. GraphicsPipelineShaderGroupsCreateInfoNV &
  35211. setPipelines( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Pipeline> const & pipelines_ ) VULKAN_HPP_NOEXCEPT
  35212. {
  35213. pipelineCount = static_cast<uint32_t>( pipelines_.size() );
  35214. pPipelines = pipelines_.data();
  35215. return *this;
  35216. }
  35217. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  35218. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35219. operator VkGraphicsPipelineShaderGroupsCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  35220. {
  35221. return *reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV *>( this );
  35222. }
  35223. operator VkGraphicsPipelineShaderGroupsCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  35224. {
  35225. return *reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV *>( this );
  35226. }
  35227. #if defined( VULKAN_HPP_USE_REFLECT )
  35228. # if 14 <= VULKAN_HPP_CPP_VERSION
  35229. auto
  35230. # else
  35231. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  35232. const void * const &,
  35233. uint32_t const &,
  35234. const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * const &,
  35235. uint32_t const &,
  35236. const VULKAN_HPP_NAMESPACE::Pipeline * const &>
  35237. # endif
  35238. reflect() const VULKAN_HPP_NOEXCEPT
  35239. {
  35240. return std::tie( sType, pNext, groupCount, pGroups, pipelineCount, pPipelines );
  35241. }
  35242. #endif
  35243. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35244. auto operator<=>( GraphicsPipelineShaderGroupsCreateInfoNV const & ) const = default;
  35245. #else
  35246. bool operator==( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  35247. {
  35248. # if defined( VULKAN_HPP_USE_REFLECT )
  35249. return this->reflect() == rhs.reflect();
  35250. # else
  35251. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( groupCount == rhs.groupCount ) && ( pGroups == rhs.pGroups ) &&
  35252. ( pipelineCount == rhs.pipelineCount ) && ( pPipelines == rhs.pPipelines );
  35253. # endif
  35254. }
  35255. bool operator!=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  35256. {
  35257. return !operator==( rhs );
  35258. }
  35259. #endif
  35260. public:
  35261. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV;
  35262. const void * pNext = {};
  35263. uint32_t groupCount = {};
  35264. const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups = {};
  35265. uint32_t pipelineCount = {};
  35266. const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines = {};
  35267. };
  35268. template <>
  35269. struct CppType<StructureType, StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV>
  35270. {
  35271. using Type = GraphicsPipelineShaderGroupsCreateInfoNV;
  35272. };
  35273. struct XYColorEXT
  35274. {
  35275. using NativeType = VkXYColorEXT;
  35276. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35277. VULKAN_HPP_CONSTEXPR XYColorEXT( float x_ = {}, float y_ = {} ) VULKAN_HPP_NOEXCEPT
  35278. : x( x_ )
  35279. , y( y_ )
  35280. {
  35281. }
  35282. VULKAN_HPP_CONSTEXPR XYColorEXT( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35283. XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT : XYColorEXT( *reinterpret_cast<XYColorEXT const *>( &rhs ) ) {}
  35284. XYColorEXT & operator=( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35285. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35286. XYColorEXT & operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  35287. {
  35288. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XYColorEXT const *>( &rhs );
  35289. return *this;
  35290. }
  35291. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35292. VULKAN_HPP_CONSTEXPR_14 XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT
  35293. {
  35294. x = x_;
  35295. return *this;
  35296. }
  35297. VULKAN_HPP_CONSTEXPR_14 XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT
  35298. {
  35299. y = y_;
  35300. return *this;
  35301. }
  35302. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35303. operator VkXYColorEXT const &() const VULKAN_HPP_NOEXCEPT
  35304. {
  35305. return *reinterpret_cast<const VkXYColorEXT *>( this );
  35306. }
  35307. operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT
  35308. {
  35309. return *reinterpret_cast<VkXYColorEXT *>( this );
  35310. }
  35311. #if defined( VULKAN_HPP_USE_REFLECT )
  35312. # if 14 <= VULKAN_HPP_CPP_VERSION
  35313. auto
  35314. # else
  35315. std::tuple<float const &, float const &>
  35316. # endif
  35317. reflect() const VULKAN_HPP_NOEXCEPT
  35318. {
  35319. return std::tie( x, y );
  35320. }
  35321. #endif
  35322. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35323. auto operator<=>( XYColorEXT const & ) const = default;
  35324. #else
  35325. bool operator==( XYColorEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  35326. {
  35327. # if defined( VULKAN_HPP_USE_REFLECT )
  35328. return this->reflect() == rhs.reflect();
  35329. # else
  35330. return ( x == rhs.x ) && ( y == rhs.y );
  35331. # endif
  35332. }
  35333. bool operator!=( XYColorEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  35334. {
  35335. return !operator==( rhs );
  35336. }
  35337. #endif
  35338. public:
  35339. float x = {};
  35340. float y = {};
  35341. };
  35342. struct HdrMetadataEXT
  35343. {
  35344. using NativeType = VkHdrMetadataEXT;
  35345. static const bool allowDuplicate = false;
  35346. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHdrMetadataEXT;
  35347. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35348. VULKAN_HPP_CONSTEXPR HdrMetadataEXT( VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed_ = {},
  35349. VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen_ = {},
  35350. VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue_ = {},
  35351. VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint_ = {},
  35352. float maxLuminance_ = {},
  35353. float minLuminance_ = {},
  35354. float maxContentLightLevel_ = {},
  35355. float maxFrameAverageLightLevel_ = {},
  35356. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35357. : pNext( pNext_ )
  35358. , displayPrimaryRed( displayPrimaryRed_ )
  35359. , displayPrimaryGreen( displayPrimaryGreen_ )
  35360. , displayPrimaryBlue( displayPrimaryBlue_ )
  35361. , whitePoint( whitePoint_ )
  35362. , maxLuminance( maxLuminance_ )
  35363. , minLuminance( minLuminance_ )
  35364. , maxContentLightLevel( maxContentLightLevel_ )
  35365. , maxFrameAverageLightLevel( maxFrameAverageLightLevel_ )
  35366. {
  35367. }
  35368. VULKAN_HPP_CONSTEXPR HdrMetadataEXT( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35369. HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT : HdrMetadataEXT( *reinterpret_cast<HdrMetadataEXT const *>( &rhs ) ) {}
  35370. HdrMetadataEXT & operator=( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35371. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35372. HdrMetadataEXT & operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  35373. {
  35374. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HdrMetadataEXT const *>( &rhs );
  35375. return *this;
  35376. }
  35377. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35378. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35379. {
  35380. pNext = pNext_;
  35381. return *this;
  35382. }
  35383. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT
  35384. {
  35385. displayPrimaryRed = displayPrimaryRed_;
  35386. return *this;
  35387. }
  35388. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT
  35389. {
  35390. displayPrimaryGreen = displayPrimaryGreen_;
  35391. return *this;
  35392. }
  35393. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT
  35394. {
  35395. displayPrimaryBlue = displayPrimaryBlue_;
  35396. return *this;
  35397. }
  35398. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT const & whitePoint_ ) VULKAN_HPP_NOEXCEPT
  35399. {
  35400. whitePoint = whitePoint_;
  35401. return *this;
  35402. }
  35403. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT
  35404. {
  35405. maxLuminance = maxLuminance_;
  35406. return *this;
  35407. }
  35408. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT
  35409. {
  35410. minLuminance = minLuminance_;
  35411. return *this;
  35412. }
  35413. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT
  35414. {
  35415. maxContentLightLevel = maxContentLightLevel_;
  35416. return *this;
  35417. }
  35418. VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT
  35419. {
  35420. maxFrameAverageLightLevel = maxFrameAverageLightLevel_;
  35421. return *this;
  35422. }
  35423. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35424. operator VkHdrMetadataEXT const &() const VULKAN_HPP_NOEXCEPT
  35425. {
  35426. return *reinterpret_cast<const VkHdrMetadataEXT *>( this );
  35427. }
  35428. operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT
  35429. {
  35430. return *reinterpret_cast<VkHdrMetadataEXT *>( this );
  35431. }
  35432. #if defined( VULKAN_HPP_USE_REFLECT )
  35433. # if 14 <= VULKAN_HPP_CPP_VERSION
  35434. auto
  35435. # else
  35436. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  35437. const void * const &,
  35438. VULKAN_HPP_NAMESPACE::XYColorEXT const &,
  35439. VULKAN_HPP_NAMESPACE::XYColorEXT const &,
  35440. VULKAN_HPP_NAMESPACE::XYColorEXT const &,
  35441. VULKAN_HPP_NAMESPACE::XYColorEXT const &,
  35442. float const &,
  35443. float const &,
  35444. float const &,
  35445. float const &>
  35446. # endif
  35447. reflect() const VULKAN_HPP_NOEXCEPT
  35448. {
  35449. return std::tie( sType,
  35450. pNext,
  35451. displayPrimaryRed,
  35452. displayPrimaryGreen,
  35453. displayPrimaryBlue,
  35454. whitePoint,
  35455. maxLuminance,
  35456. minLuminance,
  35457. maxContentLightLevel,
  35458. maxFrameAverageLightLevel );
  35459. }
  35460. #endif
  35461. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35462. auto operator<=>( HdrMetadataEXT const & ) const = default;
  35463. #else
  35464. bool operator==( HdrMetadataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  35465. {
  35466. # if defined( VULKAN_HPP_USE_REFLECT )
  35467. return this->reflect() == rhs.reflect();
  35468. # else
  35469. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayPrimaryRed == rhs.displayPrimaryRed ) &&
  35470. ( displayPrimaryGreen == rhs.displayPrimaryGreen ) && ( displayPrimaryBlue == rhs.displayPrimaryBlue ) && ( whitePoint == rhs.whitePoint ) &&
  35471. ( maxLuminance == rhs.maxLuminance ) && ( minLuminance == rhs.minLuminance ) && ( maxContentLightLevel == rhs.maxContentLightLevel ) &&
  35472. ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel );
  35473. # endif
  35474. }
  35475. bool operator!=( HdrMetadataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  35476. {
  35477. return !operator==( rhs );
  35478. }
  35479. #endif
  35480. public:
  35481. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT;
  35482. const void * pNext = {};
  35483. VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {};
  35484. VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {};
  35485. VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {};
  35486. VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {};
  35487. float maxLuminance = {};
  35488. float minLuminance = {};
  35489. float maxContentLightLevel = {};
  35490. float maxFrameAverageLightLevel = {};
  35491. };
  35492. template <>
  35493. struct CppType<StructureType, StructureType::eHdrMetadataEXT>
  35494. {
  35495. using Type = HdrMetadataEXT;
  35496. };
  35497. struct HeadlessSurfaceCreateInfoEXT
  35498. {
  35499. using NativeType = VkHeadlessSurfaceCreateInfoEXT;
  35500. static const bool allowDuplicate = false;
  35501. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHeadlessSurfaceCreateInfoEXT;
  35502. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35503. VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {},
  35504. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35505. : pNext( pNext_ )
  35506. , flags( flags_ )
  35507. {
  35508. }
  35509. VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35510. HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  35511. : HeadlessSurfaceCreateInfoEXT( *reinterpret_cast<HeadlessSurfaceCreateInfoEXT const *>( &rhs ) )
  35512. {
  35513. }
  35514. HeadlessSurfaceCreateInfoEXT & operator=( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35515. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35516. HeadlessSurfaceCreateInfoEXT & operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  35517. {
  35518. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const *>( &rhs );
  35519. return *this;
  35520. }
  35521. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35522. VULKAN_HPP_CONSTEXPR_14 HeadlessSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35523. {
  35524. pNext = pNext_;
  35525. return *this;
  35526. }
  35527. VULKAN_HPP_CONSTEXPR_14 HeadlessSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  35528. {
  35529. flags = flags_;
  35530. return *this;
  35531. }
  35532. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35533. operator VkHeadlessSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  35534. {
  35535. return *reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( this );
  35536. }
  35537. operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  35538. {
  35539. return *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT *>( this );
  35540. }
  35541. #if defined( VULKAN_HPP_USE_REFLECT )
  35542. # if 14 <= VULKAN_HPP_CPP_VERSION
  35543. auto
  35544. # else
  35545. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT const &>
  35546. # endif
  35547. reflect() const VULKAN_HPP_NOEXCEPT
  35548. {
  35549. return std::tie( sType, pNext, flags );
  35550. }
  35551. #endif
  35552. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35553. auto operator<=>( HeadlessSurfaceCreateInfoEXT const & ) const = default;
  35554. #else
  35555. bool operator==( HeadlessSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  35556. {
  35557. # if defined( VULKAN_HPP_USE_REFLECT )
  35558. return this->reflect() == rhs.reflect();
  35559. # else
  35560. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  35561. # endif
  35562. }
  35563. bool operator!=( HeadlessSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  35564. {
  35565. return !operator==( rhs );
  35566. }
  35567. #endif
  35568. public:
  35569. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT;
  35570. const void * pNext = {};
  35571. VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {};
  35572. };
  35573. template <>
  35574. struct CppType<StructureType, StructureType::eHeadlessSurfaceCreateInfoEXT>
  35575. {
  35576. using Type = HeadlessSurfaceCreateInfoEXT;
  35577. };
  35578. struct HostImageCopyDevicePerformanceQueryEXT
  35579. {
  35580. using NativeType = VkHostImageCopyDevicePerformanceQueryEXT;
  35581. static const bool allowDuplicate = false;
  35582. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHostImageCopyDevicePerformanceQueryEXT;
  35583. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35584. VULKAN_HPP_CONSTEXPR HostImageCopyDevicePerformanceQueryEXT( VULKAN_HPP_NAMESPACE::Bool32 optimalDeviceAccess_ = {},
  35585. VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryLayout_ = {},
  35586. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35587. : pNext( pNext_ )
  35588. , optimalDeviceAccess( optimalDeviceAccess_ )
  35589. , identicalMemoryLayout( identicalMemoryLayout_ )
  35590. {
  35591. }
  35592. VULKAN_HPP_CONSTEXPR HostImageCopyDevicePerformanceQueryEXT( HostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35593. HostImageCopyDevicePerformanceQueryEXT( VkHostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  35594. : HostImageCopyDevicePerformanceQueryEXT( *reinterpret_cast<HostImageCopyDevicePerformanceQueryEXT const *>( &rhs ) )
  35595. {
  35596. }
  35597. HostImageCopyDevicePerformanceQueryEXT & operator=( HostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35598. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35599. HostImageCopyDevicePerformanceQueryEXT & operator=( VkHostImageCopyDevicePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  35600. {
  35601. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT const *>( &rhs );
  35602. return *this;
  35603. }
  35604. operator VkHostImageCopyDevicePerformanceQueryEXT const &() const VULKAN_HPP_NOEXCEPT
  35605. {
  35606. return *reinterpret_cast<const VkHostImageCopyDevicePerformanceQueryEXT *>( this );
  35607. }
  35608. operator VkHostImageCopyDevicePerformanceQueryEXT &() VULKAN_HPP_NOEXCEPT
  35609. {
  35610. return *reinterpret_cast<VkHostImageCopyDevicePerformanceQueryEXT *>( this );
  35611. }
  35612. #if defined( VULKAN_HPP_USE_REFLECT )
  35613. # if 14 <= VULKAN_HPP_CPP_VERSION
  35614. auto
  35615. # else
  35616. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  35617. # endif
  35618. reflect() const VULKAN_HPP_NOEXCEPT
  35619. {
  35620. return std::tie( sType, pNext, optimalDeviceAccess, identicalMemoryLayout );
  35621. }
  35622. #endif
  35623. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35624. auto operator<=>( HostImageCopyDevicePerformanceQueryEXT const & ) const = default;
  35625. #else
  35626. bool operator==( HostImageCopyDevicePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  35627. {
  35628. # if defined( VULKAN_HPP_USE_REFLECT )
  35629. return this->reflect() == rhs.reflect();
  35630. # else
  35631. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( optimalDeviceAccess == rhs.optimalDeviceAccess ) &&
  35632. ( identicalMemoryLayout == rhs.identicalMemoryLayout );
  35633. # endif
  35634. }
  35635. bool operator!=( HostImageCopyDevicePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  35636. {
  35637. return !operator==( rhs );
  35638. }
  35639. #endif
  35640. public:
  35641. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHostImageCopyDevicePerformanceQueryEXT;
  35642. void * pNext = {};
  35643. VULKAN_HPP_NAMESPACE::Bool32 optimalDeviceAccess = {};
  35644. VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryLayout = {};
  35645. };
  35646. template <>
  35647. struct CppType<StructureType, StructureType::eHostImageCopyDevicePerformanceQueryEXT>
  35648. {
  35649. using Type = HostImageCopyDevicePerformanceQueryEXT;
  35650. };
  35651. struct HostImageLayoutTransitionInfoEXT
  35652. {
  35653. using NativeType = VkHostImageLayoutTransitionInfoEXT;
  35654. static const bool allowDuplicate = false;
  35655. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHostImageLayoutTransitionInfoEXT;
  35656. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35657. VULKAN_HPP_CONSTEXPR HostImageLayoutTransitionInfoEXT( VULKAN_HPP_NAMESPACE::Image image_ = {},
  35658. VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  35659. VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  35660. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
  35661. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35662. : pNext( pNext_ )
  35663. , image( image_ )
  35664. , oldLayout( oldLayout_ )
  35665. , newLayout( newLayout_ )
  35666. , subresourceRange( subresourceRange_ )
  35667. {
  35668. }
  35669. VULKAN_HPP_CONSTEXPR HostImageLayoutTransitionInfoEXT( HostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35670. HostImageLayoutTransitionInfoEXT( VkHostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  35671. : HostImageLayoutTransitionInfoEXT( *reinterpret_cast<HostImageLayoutTransitionInfoEXT const *>( &rhs ) )
  35672. {
  35673. }
  35674. HostImageLayoutTransitionInfoEXT & operator=( HostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35675. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35676. HostImageLayoutTransitionInfoEXT & operator=( VkHostImageLayoutTransitionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  35677. {
  35678. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT const *>( &rhs );
  35679. return *this;
  35680. }
  35681. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35682. VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35683. {
  35684. pNext = pNext_;
  35685. return *this;
  35686. }
  35687. VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  35688. {
  35689. image = image_;
  35690. return *this;
  35691. }
  35692. VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
  35693. {
  35694. oldLayout = oldLayout_;
  35695. return *this;
  35696. }
  35697. VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
  35698. {
  35699. newLayout = newLayout_;
  35700. return *this;
  35701. }
  35702. VULKAN_HPP_CONSTEXPR_14 HostImageLayoutTransitionInfoEXT &
  35703. setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
  35704. {
  35705. subresourceRange = subresourceRange_;
  35706. return *this;
  35707. }
  35708. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35709. operator VkHostImageLayoutTransitionInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  35710. {
  35711. return *reinterpret_cast<const VkHostImageLayoutTransitionInfoEXT *>( this );
  35712. }
  35713. operator VkHostImageLayoutTransitionInfoEXT &() VULKAN_HPP_NOEXCEPT
  35714. {
  35715. return *reinterpret_cast<VkHostImageLayoutTransitionInfoEXT *>( this );
  35716. }
  35717. #if defined( VULKAN_HPP_USE_REFLECT )
  35718. # if 14 <= VULKAN_HPP_CPP_VERSION
  35719. auto
  35720. # else
  35721. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  35722. const void * const &,
  35723. VULKAN_HPP_NAMESPACE::Image const &,
  35724. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  35725. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  35726. VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
  35727. # endif
  35728. reflect() const VULKAN_HPP_NOEXCEPT
  35729. {
  35730. return std::tie( sType, pNext, image, oldLayout, newLayout, subresourceRange );
  35731. }
  35732. #endif
  35733. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35734. auto operator<=>( HostImageLayoutTransitionInfoEXT const & ) const = default;
  35735. #else
  35736. bool operator==( HostImageLayoutTransitionInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  35737. {
  35738. # if defined( VULKAN_HPP_USE_REFLECT )
  35739. return this->reflect() == rhs.reflect();
  35740. # else
  35741. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( oldLayout == rhs.oldLayout ) && ( newLayout == rhs.newLayout ) &&
  35742. ( subresourceRange == rhs.subresourceRange );
  35743. # endif
  35744. }
  35745. bool operator!=( HostImageLayoutTransitionInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  35746. {
  35747. return !operator==( rhs );
  35748. }
  35749. #endif
  35750. public:
  35751. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHostImageLayoutTransitionInfoEXT;
  35752. const void * pNext = {};
  35753. VULKAN_HPP_NAMESPACE::Image image = {};
  35754. VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  35755. VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  35756. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
  35757. };
  35758. template <>
  35759. struct CppType<StructureType, StructureType::eHostImageLayoutTransitionInfoEXT>
  35760. {
  35761. using Type = HostImageLayoutTransitionInfoEXT;
  35762. };
  35763. #if defined( VK_USE_PLATFORM_IOS_MVK )
  35764. struct IOSSurfaceCreateInfoMVK
  35765. {
  35766. using NativeType = VkIOSSurfaceCreateInfoMVK;
  35767. static const bool allowDuplicate = false;
  35768. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIosSurfaceCreateInfoMVK;
  35769. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35770. VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {},
  35771. const void * pView_ = {},
  35772. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35773. : pNext( pNext_ )
  35774. , flags( flags_ )
  35775. , pView( pView_ )
  35776. {
  35777. }
  35778. VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35779. IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
  35780. : IOSSurfaceCreateInfoMVK( *reinterpret_cast<IOSSurfaceCreateInfoMVK const *>( &rhs ) )
  35781. {
  35782. }
  35783. IOSSurfaceCreateInfoMVK & operator=( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35784. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35785. IOSSurfaceCreateInfoMVK & operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
  35786. {
  35787. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const *>( &rhs );
  35788. return *this;
  35789. }
  35790. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35791. VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35792. {
  35793. pNext = pNext_;
  35794. return *this;
  35795. }
  35796. VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
  35797. {
  35798. flags = flags_;
  35799. return *this;
  35800. }
  35801. VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & setPView( const void * pView_ ) VULKAN_HPP_NOEXCEPT
  35802. {
  35803. pView = pView_;
  35804. return *this;
  35805. }
  35806. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35807. operator VkIOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT
  35808. {
  35809. return *reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( this );
  35810. }
  35811. operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
  35812. {
  35813. return *reinterpret_cast<VkIOSSurfaceCreateInfoMVK *>( this );
  35814. }
  35815. # if defined( VULKAN_HPP_USE_REFLECT )
  35816. # if 14 <= VULKAN_HPP_CPP_VERSION
  35817. auto
  35818. # else
  35819. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK const &, const void * const &>
  35820. # endif
  35821. reflect() const VULKAN_HPP_NOEXCEPT
  35822. {
  35823. return std::tie( sType, pNext, flags, pView );
  35824. }
  35825. # endif
  35826. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35827. auto operator<=>( IOSSurfaceCreateInfoMVK const & ) const = default;
  35828. # else
  35829. bool operator==( IOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
  35830. {
  35831. # if defined( VULKAN_HPP_USE_REFLECT )
  35832. return this->reflect() == rhs.reflect();
  35833. # else
  35834. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pView == rhs.pView );
  35835. # endif
  35836. }
  35837. bool operator!=( IOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
  35838. {
  35839. return !operator==( rhs );
  35840. }
  35841. # endif
  35842. public:
  35843. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK;
  35844. const void * pNext = {};
  35845. VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {};
  35846. const void * pView = {};
  35847. };
  35848. template <>
  35849. struct CppType<StructureType, StructureType::eIosSurfaceCreateInfoMVK>
  35850. {
  35851. using Type = IOSSurfaceCreateInfoMVK;
  35852. };
  35853. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  35854. struct ImageBlit
  35855. {
  35856. using NativeType = VkImageBlit;
  35857. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35858. VULKAN_HPP_CONSTEXPR_14 ImageBlit( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  35859. std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & srcOffsets_ = {},
  35860. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  35861. std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & dstOffsets_ = {} ) VULKAN_HPP_NOEXCEPT
  35862. : srcSubresource( srcSubresource_ )
  35863. , srcOffsets( srcOffsets_ )
  35864. , dstSubresource( dstSubresource_ )
  35865. , dstOffsets( dstOffsets_ )
  35866. {
  35867. }
  35868. VULKAN_HPP_CONSTEXPR_14 ImageBlit( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35869. ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT : ImageBlit( *reinterpret_cast<ImageBlit const *>( &rhs ) ) {}
  35870. ImageBlit & operator=( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35871. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35872. ImageBlit & operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT
  35873. {
  35874. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageBlit const *>( &rhs );
  35875. return *this;
  35876. }
  35877. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35878. VULKAN_HPP_CONSTEXPR_14 ImageBlit & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  35879. {
  35880. srcSubresource = srcSubresource_;
  35881. return *this;
  35882. }
  35883. VULKAN_HPP_CONSTEXPR_14 ImageBlit & setSrcOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT
  35884. {
  35885. srcOffsets = srcOffsets_;
  35886. return *this;
  35887. }
  35888. VULKAN_HPP_CONSTEXPR_14 ImageBlit & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  35889. {
  35890. dstSubresource = dstSubresource_;
  35891. return *this;
  35892. }
  35893. VULKAN_HPP_CONSTEXPR_14 ImageBlit & setDstOffsets( std::array<VULKAN_HPP_NAMESPACE::Offset3D, 2> const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT
  35894. {
  35895. dstOffsets = dstOffsets_;
  35896. return *this;
  35897. }
  35898. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35899. operator VkImageBlit const &() const VULKAN_HPP_NOEXCEPT
  35900. {
  35901. return *reinterpret_cast<const VkImageBlit *>( this );
  35902. }
  35903. operator VkImageBlit &() VULKAN_HPP_NOEXCEPT
  35904. {
  35905. return *reinterpret_cast<VkImageBlit *>( this );
  35906. }
  35907. #if defined( VULKAN_HPP_USE_REFLECT )
  35908. # if 14 <= VULKAN_HPP_CPP_VERSION
  35909. auto
  35910. # else
  35911. std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  35912. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &,
  35913. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  35914. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> const &>
  35915. # endif
  35916. reflect() const VULKAN_HPP_NOEXCEPT
  35917. {
  35918. return std::tie( srcSubresource, srcOffsets, dstSubresource, dstOffsets );
  35919. }
  35920. #endif
  35921. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35922. auto operator<=>( ImageBlit const & ) const = default;
  35923. #else
  35924. bool operator==( ImageBlit const & rhs ) const VULKAN_HPP_NOEXCEPT
  35925. {
  35926. # if defined( VULKAN_HPP_USE_REFLECT )
  35927. return this->reflect() == rhs.reflect();
  35928. # else
  35929. return ( srcSubresource == rhs.srcSubresource ) && ( srcOffsets == rhs.srcOffsets ) && ( dstSubresource == rhs.dstSubresource ) &&
  35930. ( dstOffsets == rhs.dstOffsets );
  35931. # endif
  35932. }
  35933. bool operator!=( ImageBlit const & rhs ) const VULKAN_HPP_NOEXCEPT
  35934. {
  35935. return !operator==( rhs );
  35936. }
  35937. #endif
  35938. public:
  35939. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  35940. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> srcOffsets = {};
  35941. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  35942. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::Offset3D, 2> dstOffsets = {};
  35943. };
  35944. struct ImageCaptureDescriptorDataInfoEXT
  35945. {
  35946. using NativeType = VkImageCaptureDescriptorDataInfoEXT;
  35947. static const bool allowDuplicate = false;
  35948. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCaptureDescriptorDataInfoEXT;
  35949. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  35950. VULKAN_HPP_CONSTEXPR ImageCaptureDescriptorDataInfoEXT( VULKAN_HPP_NAMESPACE::Image image_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  35951. : pNext( pNext_ )
  35952. , image( image_ )
  35953. {
  35954. }
  35955. VULKAN_HPP_CONSTEXPR ImageCaptureDescriptorDataInfoEXT( ImageCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35956. ImageCaptureDescriptorDataInfoEXT( VkImageCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  35957. : ImageCaptureDescriptorDataInfoEXT( *reinterpret_cast<ImageCaptureDescriptorDataInfoEXT const *>( &rhs ) )
  35958. {
  35959. }
  35960. ImageCaptureDescriptorDataInfoEXT & operator=( ImageCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  35961. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  35962. ImageCaptureDescriptorDataInfoEXT & operator=( VkImageCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  35963. {
  35964. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT const *>( &rhs );
  35965. return *this;
  35966. }
  35967. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  35968. VULKAN_HPP_CONSTEXPR_14 ImageCaptureDescriptorDataInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  35969. {
  35970. pNext = pNext_;
  35971. return *this;
  35972. }
  35973. VULKAN_HPP_CONSTEXPR_14 ImageCaptureDescriptorDataInfoEXT & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  35974. {
  35975. image = image_;
  35976. return *this;
  35977. }
  35978. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  35979. operator VkImageCaptureDescriptorDataInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  35980. {
  35981. return *reinterpret_cast<const VkImageCaptureDescriptorDataInfoEXT *>( this );
  35982. }
  35983. operator VkImageCaptureDescriptorDataInfoEXT &() VULKAN_HPP_NOEXCEPT
  35984. {
  35985. return *reinterpret_cast<VkImageCaptureDescriptorDataInfoEXT *>( this );
  35986. }
  35987. #if defined( VULKAN_HPP_USE_REFLECT )
  35988. # if 14 <= VULKAN_HPP_CPP_VERSION
  35989. auto
  35990. # else
  35991. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &>
  35992. # endif
  35993. reflect() const VULKAN_HPP_NOEXCEPT
  35994. {
  35995. return std::tie( sType, pNext, image );
  35996. }
  35997. #endif
  35998. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  35999. auto operator<=>( ImageCaptureDescriptorDataInfoEXT const & ) const = default;
  36000. #else
  36001. bool operator==( ImageCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36002. {
  36003. # if defined( VULKAN_HPP_USE_REFLECT )
  36004. return this->reflect() == rhs.reflect();
  36005. # else
  36006. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image );
  36007. # endif
  36008. }
  36009. bool operator!=( ImageCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36010. {
  36011. return !operator==( rhs );
  36012. }
  36013. #endif
  36014. public:
  36015. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCaptureDescriptorDataInfoEXT;
  36016. const void * pNext = {};
  36017. VULKAN_HPP_NAMESPACE::Image image = {};
  36018. };
  36019. template <>
  36020. struct CppType<StructureType, StructureType::eImageCaptureDescriptorDataInfoEXT>
  36021. {
  36022. using Type = ImageCaptureDescriptorDataInfoEXT;
  36023. };
  36024. struct ImageCompressionControlEXT
  36025. {
  36026. using NativeType = VkImageCompressionControlEXT;
  36027. static const bool allowDuplicate = false;
  36028. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCompressionControlEXT;
  36029. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36030. VULKAN_HPP_CONSTEXPR ImageCompressionControlEXT( VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags_ = {},
  36031. uint32_t compressionControlPlaneCount_ = {},
  36032. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags_ = {},
  36033. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36034. : pNext( pNext_ )
  36035. , flags( flags_ )
  36036. , compressionControlPlaneCount( compressionControlPlaneCount_ )
  36037. , pFixedRateFlags( pFixedRateFlags_ )
  36038. {
  36039. }
  36040. VULKAN_HPP_CONSTEXPR ImageCompressionControlEXT( ImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36041. ImageCompressionControlEXT( VkImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36042. : ImageCompressionControlEXT( *reinterpret_cast<ImageCompressionControlEXT const *>( &rhs ) )
  36043. {
  36044. }
  36045. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  36046. ImageCompressionControlEXT( VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags_,
  36047. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT> const & fixedRateFlags_,
  36048. const void * pNext_ = nullptr )
  36049. : pNext( pNext_ )
  36050. , flags( flags_ )
  36051. , compressionControlPlaneCount( static_cast<uint32_t>( fixedRateFlags_.size() ) )
  36052. , pFixedRateFlags( fixedRateFlags_.data() )
  36053. {
  36054. }
  36055. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  36056. ImageCompressionControlEXT & operator=( ImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36057. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36058. ImageCompressionControlEXT & operator=( VkImageCompressionControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36059. {
  36060. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT const *>( &rhs );
  36061. return *this;
  36062. }
  36063. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36064. VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  36065. {
  36066. pNext = pNext_;
  36067. return *this;
  36068. }
  36069. VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT & setFlags( VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  36070. {
  36071. flags = flags_;
  36072. return *this;
  36073. }
  36074. VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT & setCompressionControlPlaneCount( uint32_t compressionControlPlaneCount_ ) VULKAN_HPP_NOEXCEPT
  36075. {
  36076. compressionControlPlaneCount = compressionControlPlaneCount_;
  36077. return *this;
  36078. }
  36079. VULKAN_HPP_CONSTEXPR_14 ImageCompressionControlEXT &
  36080. setPFixedRateFlags( VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags_ ) VULKAN_HPP_NOEXCEPT
  36081. {
  36082. pFixedRateFlags = pFixedRateFlags_;
  36083. return *this;
  36084. }
  36085. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  36086. ImageCompressionControlEXT & setFixedRateFlags(
  36087. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT> const & fixedRateFlags_ ) VULKAN_HPP_NOEXCEPT
  36088. {
  36089. compressionControlPlaneCount = static_cast<uint32_t>( fixedRateFlags_.size() );
  36090. pFixedRateFlags = fixedRateFlags_.data();
  36091. return *this;
  36092. }
  36093. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  36094. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36095. operator VkImageCompressionControlEXT const &() const VULKAN_HPP_NOEXCEPT
  36096. {
  36097. return *reinterpret_cast<const VkImageCompressionControlEXT *>( this );
  36098. }
  36099. operator VkImageCompressionControlEXT &() VULKAN_HPP_NOEXCEPT
  36100. {
  36101. return *reinterpret_cast<VkImageCompressionControlEXT *>( this );
  36102. }
  36103. #if defined( VULKAN_HPP_USE_REFLECT )
  36104. # if 14 <= VULKAN_HPP_CPP_VERSION
  36105. auto
  36106. # else
  36107. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  36108. const void * const &,
  36109. VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT const &,
  36110. uint32_t const &,
  36111. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * const &>
  36112. # endif
  36113. reflect() const VULKAN_HPP_NOEXCEPT
  36114. {
  36115. return std::tie( sType, pNext, flags, compressionControlPlaneCount, pFixedRateFlags );
  36116. }
  36117. #endif
  36118. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36119. auto operator<=>( ImageCompressionControlEXT const & ) const = default;
  36120. #else
  36121. bool operator==( ImageCompressionControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36122. {
  36123. # if defined( VULKAN_HPP_USE_REFLECT )
  36124. return this->reflect() == rhs.reflect();
  36125. # else
  36126. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  36127. ( compressionControlPlaneCount == rhs.compressionControlPlaneCount ) && ( pFixedRateFlags == rhs.pFixedRateFlags );
  36128. # endif
  36129. }
  36130. bool operator!=( ImageCompressionControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36131. {
  36132. return !operator==( rhs );
  36133. }
  36134. #endif
  36135. public:
  36136. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCompressionControlEXT;
  36137. const void * pNext = {};
  36138. VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT flags = {};
  36139. uint32_t compressionControlPlaneCount = {};
  36140. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT * pFixedRateFlags = {};
  36141. };
  36142. template <>
  36143. struct CppType<StructureType, StructureType::eImageCompressionControlEXT>
  36144. {
  36145. using Type = ImageCompressionControlEXT;
  36146. };
  36147. struct ImageCompressionPropertiesEXT
  36148. {
  36149. using NativeType = VkImageCompressionPropertiesEXT;
  36150. static const bool allowDuplicate = false;
  36151. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCompressionPropertiesEXT;
  36152. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36153. VULKAN_HPP_CONSTEXPR ImageCompressionPropertiesEXT( VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT imageCompressionFlags_ = {},
  36154. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags_ = {},
  36155. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36156. : pNext( pNext_ )
  36157. , imageCompressionFlags( imageCompressionFlags_ )
  36158. , imageCompressionFixedRateFlags( imageCompressionFixedRateFlags_ )
  36159. {
  36160. }
  36161. VULKAN_HPP_CONSTEXPR ImageCompressionPropertiesEXT( ImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36162. ImageCompressionPropertiesEXT( VkImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36163. : ImageCompressionPropertiesEXT( *reinterpret_cast<ImageCompressionPropertiesEXT const *>( &rhs ) )
  36164. {
  36165. }
  36166. ImageCompressionPropertiesEXT & operator=( ImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36167. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36168. ImageCompressionPropertiesEXT & operator=( VkImageCompressionPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36169. {
  36170. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT const *>( &rhs );
  36171. return *this;
  36172. }
  36173. operator VkImageCompressionPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  36174. {
  36175. return *reinterpret_cast<const VkImageCompressionPropertiesEXT *>( this );
  36176. }
  36177. operator VkImageCompressionPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  36178. {
  36179. return *reinterpret_cast<VkImageCompressionPropertiesEXT *>( this );
  36180. }
  36181. #if defined( VULKAN_HPP_USE_REFLECT )
  36182. # if 14 <= VULKAN_HPP_CPP_VERSION
  36183. auto
  36184. # else
  36185. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  36186. void * const &,
  36187. VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT const &,
  36188. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT const &>
  36189. # endif
  36190. reflect() const VULKAN_HPP_NOEXCEPT
  36191. {
  36192. return std::tie( sType, pNext, imageCompressionFlags, imageCompressionFixedRateFlags );
  36193. }
  36194. #endif
  36195. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36196. auto operator<=>( ImageCompressionPropertiesEXT const & ) const = default;
  36197. #else
  36198. bool operator==( ImageCompressionPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36199. {
  36200. # if defined( VULKAN_HPP_USE_REFLECT )
  36201. return this->reflect() == rhs.reflect();
  36202. # else
  36203. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageCompressionFlags == rhs.imageCompressionFlags ) &&
  36204. ( imageCompressionFixedRateFlags == rhs.imageCompressionFixedRateFlags );
  36205. # endif
  36206. }
  36207. bool operator!=( ImageCompressionPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36208. {
  36209. return !operator==( rhs );
  36210. }
  36211. #endif
  36212. public:
  36213. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCompressionPropertiesEXT;
  36214. void * pNext = {};
  36215. VULKAN_HPP_NAMESPACE::ImageCompressionFlagsEXT imageCompressionFlags = {};
  36216. VULKAN_HPP_NAMESPACE::ImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags = {};
  36217. };
  36218. template <>
  36219. struct CppType<StructureType, StructureType::eImageCompressionPropertiesEXT>
  36220. {
  36221. using Type = ImageCompressionPropertiesEXT;
  36222. };
  36223. #if defined( VK_USE_PLATFORM_FUCHSIA )
  36224. struct ImageFormatConstraintsInfoFUCHSIA
  36225. {
  36226. using NativeType = VkImageFormatConstraintsInfoFUCHSIA;
  36227. static const bool allowDuplicate = false;
  36228. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatConstraintsInfoFUCHSIA;
  36229. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36230. VULKAN_HPP_CONSTEXPR ImageFormatConstraintsInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ImageCreateInfo imageCreateInfo_ = {},
  36231. VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ = {},
  36232. VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags_ = {},
  36233. uint64_t sysmemPixelFormat_ = {},
  36234. uint32_t colorSpaceCount_ = {},
  36235. const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces_ = {},
  36236. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36237. : pNext( pNext_ )
  36238. , imageCreateInfo( imageCreateInfo_ )
  36239. , requiredFormatFeatures( requiredFormatFeatures_ )
  36240. , flags( flags_ )
  36241. , sysmemPixelFormat( sysmemPixelFormat_ )
  36242. , colorSpaceCount( colorSpaceCount_ )
  36243. , pColorSpaces( pColorSpaces_ )
  36244. {
  36245. }
  36246. VULKAN_HPP_CONSTEXPR ImageFormatConstraintsInfoFUCHSIA( ImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36247. ImageFormatConstraintsInfoFUCHSIA( VkImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  36248. : ImageFormatConstraintsInfoFUCHSIA( *reinterpret_cast<ImageFormatConstraintsInfoFUCHSIA const *>( &rhs ) )
  36249. {
  36250. }
  36251. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  36252. ImageFormatConstraintsInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ImageCreateInfo imageCreateInfo_,
  36253. VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_,
  36254. VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags_,
  36255. uint64_t sysmemPixelFormat_,
  36256. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA> const & colorSpaces_,
  36257. const void * pNext_ = nullptr )
  36258. : pNext( pNext_ )
  36259. , imageCreateInfo( imageCreateInfo_ )
  36260. , requiredFormatFeatures( requiredFormatFeatures_ )
  36261. , flags( flags_ )
  36262. , sysmemPixelFormat( sysmemPixelFormat_ )
  36263. , colorSpaceCount( static_cast<uint32_t>( colorSpaces_.size() ) )
  36264. , pColorSpaces( colorSpaces_.data() )
  36265. {
  36266. }
  36267. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  36268. ImageFormatConstraintsInfoFUCHSIA & operator=( ImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36269. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36270. ImageFormatConstraintsInfoFUCHSIA & operator=( VkImageFormatConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  36271. {
  36272. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA const *>( &rhs );
  36273. return *this;
  36274. }
  36275. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36276. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  36277. {
  36278. pNext = pNext_;
  36279. return *this;
  36280. }
  36281. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA &
  36282. setImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateInfo const & imageCreateInfo_ ) VULKAN_HPP_NOEXCEPT
  36283. {
  36284. imageCreateInfo = imageCreateInfo_;
  36285. return *this;
  36286. }
  36287. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA &
  36288. setRequiredFormatFeatures( VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures_ ) VULKAN_HPP_NOEXCEPT
  36289. {
  36290. requiredFormatFeatures = requiredFormatFeatures_;
  36291. return *this;
  36292. }
  36293. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
  36294. {
  36295. flags = flags_;
  36296. return *this;
  36297. }
  36298. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setSysmemPixelFormat( uint64_t sysmemPixelFormat_ ) VULKAN_HPP_NOEXCEPT
  36299. {
  36300. sysmemPixelFormat = sysmemPixelFormat_;
  36301. return *this;
  36302. }
  36303. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA & setColorSpaceCount( uint32_t colorSpaceCount_ ) VULKAN_HPP_NOEXCEPT
  36304. {
  36305. colorSpaceCount = colorSpaceCount_;
  36306. return *this;
  36307. }
  36308. VULKAN_HPP_CONSTEXPR_14 ImageFormatConstraintsInfoFUCHSIA &
  36309. setPColorSpaces( const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces_ ) VULKAN_HPP_NOEXCEPT
  36310. {
  36311. pColorSpaces = pColorSpaces_;
  36312. return *this;
  36313. }
  36314. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  36315. ImageFormatConstraintsInfoFUCHSIA & setColorSpaces(
  36316. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA> const & colorSpaces_ ) VULKAN_HPP_NOEXCEPT
  36317. {
  36318. colorSpaceCount = static_cast<uint32_t>( colorSpaces_.size() );
  36319. pColorSpaces = colorSpaces_.data();
  36320. return *this;
  36321. }
  36322. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  36323. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36324. operator VkImageFormatConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  36325. {
  36326. return *reinterpret_cast<const VkImageFormatConstraintsInfoFUCHSIA *>( this );
  36327. }
  36328. operator VkImageFormatConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  36329. {
  36330. return *reinterpret_cast<VkImageFormatConstraintsInfoFUCHSIA *>( this );
  36331. }
  36332. # if defined( VULKAN_HPP_USE_REFLECT )
  36333. # if 14 <= VULKAN_HPP_CPP_VERSION
  36334. auto
  36335. # else
  36336. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  36337. const void * const &,
  36338. VULKAN_HPP_NAMESPACE::ImageCreateInfo const &,
  36339. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  36340. VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA const &,
  36341. uint64_t const &,
  36342. uint32_t const &,
  36343. const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * const &>
  36344. # endif
  36345. reflect() const VULKAN_HPP_NOEXCEPT
  36346. {
  36347. return std::tie( sType, pNext, imageCreateInfo, requiredFormatFeatures, flags, sysmemPixelFormat, colorSpaceCount, pColorSpaces );
  36348. }
  36349. # endif
  36350. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36351. auto operator<=>( ImageFormatConstraintsInfoFUCHSIA const & ) const = default;
  36352. # else
  36353. bool operator==( ImageFormatConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  36354. {
  36355. # if defined( VULKAN_HPP_USE_REFLECT )
  36356. return this->reflect() == rhs.reflect();
  36357. # else
  36358. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageCreateInfo == rhs.imageCreateInfo ) &&
  36359. ( requiredFormatFeatures == rhs.requiredFormatFeatures ) && ( flags == rhs.flags ) && ( sysmemPixelFormat == rhs.sysmemPixelFormat ) &&
  36360. ( colorSpaceCount == rhs.colorSpaceCount ) && ( pColorSpaces == rhs.pColorSpaces );
  36361. # endif
  36362. }
  36363. bool operator!=( ImageFormatConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  36364. {
  36365. return !operator==( rhs );
  36366. }
  36367. # endif
  36368. public:
  36369. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatConstraintsInfoFUCHSIA;
  36370. const void * pNext = {};
  36371. VULKAN_HPP_NAMESPACE::ImageCreateInfo imageCreateInfo = {};
  36372. VULKAN_HPP_NAMESPACE::FormatFeatureFlags requiredFormatFeatures = {};
  36373. VULKAN_HPP_NAMESPACE::ImageFormatConstraintsFlagsFUCHSIA flags = {};
  36374. uint64_t sysmemPixelFormat = {};
  36375. uint32_t colorSpaceCount = {};
  36376. const VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA * pColorSpaces = {};
  36377. };
  36378. template <>
  36379. struct CppType<StructureType, StructureType::eImageFormatConstraintsInfoFUCHSIA>
  36380. {
  36381. using Type = ImageFormatConstraintsInfoFUCHSIA;
  36382. };
  36383. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  36384. #if defined( VK_USE_PLATFORM_FUCHSIA )
  36385. struct ImageConstraintsInfoFUCHSIA
  36386. {
  36387. using NativeType = VkImageConstraintsInfoFUCHSIA;
  36388. static const bool allowDuplicate = false;
  36389. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageConstraintsInfoFUCHSIA;
  36390. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36391. VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFUCHSIA( uint32_t formatConstraintsCount_ = {},
  36392. const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints_ = {},
  36393. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints_ = {},
  36394. VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags_ = {},
  36395. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36396. : pNext( pNext_ )
  36397. , formatConstraintsCount( formatConstraintsCount_ )
  36398. , pFormatConstraints( pFormatConstraints_ )
  36399. , bufferCollectionConstraints( bufferCollectionConstraints_ )
  36400. , flags( flags_ )
  36401. {
  36402. }
  36403. VULKAN_HPP_CONSTEXPR ImageConstraintsInfoFUCHSIA( ImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36404. ImageConstraintsInfoFUCHSIA( VkImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  36405. : ImageConstraintsInfoFUCHSIA( *reinterpret_cast<ImageConstraintsInfoFUCHSIA const *>( &rhs ) )
  36406. {
  36407. }
  36408. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  36409. ImageConstraintsInfoFUCHSIA(
  36410. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA> const & formatConstraints_,
  36411. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints_ = {},
  36412. VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags_ = {},
  36413. const void * pNext_ = nullptr )
  36414. : pNext( pNext_ )
  36415. , formatConstraintsCount( static_cast<uint32_t>( formatConstraints_.size() ) )
  36416. , pFormatConstraints( formatConstraints_.data() )
  36417. , bufferCollectionConstraints( bufferCollectionConstraints_ )
  36418. , flags( flags_ )
  36419. {
  36420. }
  36421. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  36422. ImageConstraintsInfoFUCHSIA & operator=( ImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36423. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36424. ImageConstraintsInfoFUCHSIA & operator=( VkImageConstraintsInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  36425. {
  36426. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA const *>( &rhs );
  36427. return *this;
  36428. }
  36429. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36430. VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  36431. {
  36432. pNext = pNext_;
  36433. return *this;
  36434. }
  36435. VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA & setFormatConstraintsCount( uint32_t formatConstraintsCount_ ) VULKAN_HPP_NOEXCEPT
  36436. {
  36437. formatConstraintsCount = formatConstraintsCount_;
  36438. return *this;
  36439. }
  36440. VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA &
  36441. setPFormatConstraints( const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints_ ) VULKAN_HPP_NOEXCEPT
  36442. {
  36443. pFormatConstraints = pFormatConstraints_;
  36444. return *this;
  36445. }
  36446. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  36447. ImageConstraintsInfoFUCHSIA & setFormatConstraints(
  36448. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA> const & formatConstraints_ )
  36449. VULKAN_HPP_NOEXCEPT
  36450. {
  36451. formatConstraintsCount = static_cast<uint32_t>( formatConstraints_.size() );
  36452. pFormatConstraints = formatConstraints_.data();
  36453. return *this;
  36454. }
  36455. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  36456. VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA &
  36457. setBufferCollectionConstraints( VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const & bufferCollectionConstraints_ ) VULKAN_HPP_NOEXCEPT
  36458. {
  36459. bufferCollectionConstraints = bufferCollectionConstraints_;
  36460. return *this;
  36461. }
  36462. VULKAN_HPP_CONSTEXPR_14 ImageConstraintsInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
  36463. {
  36464. flags = flags_;
  36465. return *this;
  36466. }
  36467. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36468. operator VkImageConstraintsInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  36469. {
  36470. return *reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( this );
  36471. }
  36472. operator VkImageConstraintsInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  36473. {
  36474. return *reinterpret_cast<VkImageConstraintsInfoFUCHSIA *>( this );
  36475. }
  36476. # if defined( VULKAN_HPP_USE_REFLECT )
  36477. # if 14 <= VULKAN_HPP_CPP_VERSION
  36478. auto
  36479. # else
  36480. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  36481. const void * const &,
  36482. uint32_t const &,
  36483. const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * const &,
  36484. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const &,
  36485. VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA const &>
  36486. # endif
  36487. reflect() const VULKAN_HPP_NOEXCEPT
  36488. {
  36489. return std::tie( sType, pNext, formatConstraintsCount, pFormatConstraints, bufferCollectionConstraints, flags );
  36490. }
  36491. # endif
  36492. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36493. auto operator<=>( ImageConstraintsInfoFUCHSIA const & ) const = default;
  36494. # else
  36495. bool operator==( ImageConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  36496. {
  36497. # if defined( VULKAN_HPP_USE_REFLECT )
  36498. return this->reflect() == rhs.reflect();
  36499. # else
  36500. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( formatConstraintsCount == rhs.formatConstraintsCount ) &&
  36501. ( pFormatConstraints == rhs.pFormatConstraints ) && ( bufferCollectionConstraints == rhs.bufferCollectionConstraints ) && ( flags == rhs.flags );
  36502. # endif
  36503. }
  36504. bool operator!=( ImageConstraintsInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  36505. {
  36506. return !operator==( rhs );
  36507. }
  36508. # endif
  36509. public:
  36510. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageConstraintsInfoFUCHSIA;
  36511. const void * pNext = {};
  36512. uint32_t formatConstraintsCount = {};
  36513. const VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA * pFormatConstraints = {};
  36514. VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints = {};
  36515. VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFlagsFUCHSIA flags = {};
  36516. };
  36517. template <>
  36518. struct CppType<StructureType, StructureType::eImageConstraintsInfoFUCHSIA>
  36519. {
  36520. using Type = ImageConstraintsInfoFUCHSIA;
  36521. };
  36522. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  36523. struct ImageCopy
  36524. {
  36525. using NativeType = VkImageCopy;
  36526. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36527. VULKAN_HPP_CONSTEXPR ImageCopy( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  36528. VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {},
  36529. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  36530. VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
  36531. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT
  36532. : srcSubresource( srcSubresource_ )
  36533. , srcOffset( srcOffset_ )
  36534. , dstSubresource( dstSubresource_ )
  36535. , dstOffset( dstOffset_ )
  36536. , extent( extent_ )
  36537. {
  36538. }
  36539. VULKAN_HPP_CONSTEXPR ImageCopy( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36540. ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT : ImageCopy( *reinterpret_cast<ImageCopy const *>( &rhs ) ) {}
  36541. ImageCopy & operator=( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36542. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36543. ImageCopy & operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT
  36544. {
  36545. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageCopy const *>( &rhs );
  36546. return *this;
  36547. }
  36548. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36549. VULKAN_HPP_CONSTEXPR_14 ImageCopy & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  36550. {
  36551. srcSubresource = srcSubresource_;
  36552. return *this;
  36553. }
  36554. VULKAN_HPP_CONSTEXPR_14 ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
  36555. {
  36556. srcOffset = srcOffset_;
  36557. return *this;
  36558. }
  36559. VULKAN_HPP_CONSTEXPR_14 ImageCopy & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  36560. {
  36561. dstSubresource = dstSubresource_;
  36562. return *this;
  36563. }
  36564. VULKAN_HPP_CONSTEXPR_14 ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
  36565. {
  36566. dstOffset = dstOffset_;
  36567. return *this;
  36568. }
  36569. VULKAN_HPP_CONSTEXPR_14 ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  36570. {
  36571. extent = extent_;
  36572. return *this;
  36573. }
  36574. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36575. operator VkImageCopy const &() const VULKAN_HPP_NOEXCEPT
  36576. {
  36577. return *reinterpret_cast<const VkImageCopy *>( this );
  36578. }
  36579. operator VkImageCopy &() VULKAN_HPP_NOEXCEPT
  36580. {
  36581. return *reinterpret_cast<VkImageCopy *>( this );
  36582. }
  36583. #if defined( VULKAN_HPP_USE_REFLECT )
  36584. # if 14 <= VULKAN_HPP_CPP_VERSION
  36585. auto
  36586. # else
  36587. std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  36588. VULKAN_HPP_NAMESPACE::Offset3D const &,
  36589. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  36590. VULKAN_HPP_NAMESPACE::Offset3D const &,
  36591. VULKAN_HPP_NAMESPACE::Extent3D const &>
  36592. # endif
  36593. reflect() const VULKAN_HPP_NOEXCEPT
  36594. {
  36595. return std::tie( srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
  36596. }
  36597. #endif
  36598. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36599. auto operator<=>( ImageCopy const & ) const = default;
  36600. #else
  36601. bool operator==( ImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  36602. {
  36603. # if defined( VULKAN_HPP_USE_REFLECT )
  36604. return this->reflect() == rhs.reflect();
  36605. # else
  36606. return ( srcSubresource == rhs.srcSubresource ) && ( srcOffset == rhs.srcOffset ) && ( dstSubresource == rhs.dstSubresource ) &&
  36607. ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent );
  36608. # endif
  36609. }
  36610. bool operator!=( ImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT
  36611. {
  36612. return !operator==( rhs );
  36613. }
  36614. #endif
  36615. public:
  36616. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  36617. VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
  36618. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  36619. VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
  36620. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  36621. };
  36622. struct SubresourceLayout
  36623. {
  36624. using NativeType = VkSubresourceLayout;
  36625. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36626. VULKAN_HPP_CONSTEXPR SubresourceLayout( VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  36627. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  36628. VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ = {},
  36629. VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ = {},
  36630. VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ = {} ) VULKAN_HPP_NOEXCEPT
  36631. : offset( offset_ )
  36632. , size( size_ )
  36633. , rowPitch( rowPitch_ )
  36634. , arrayPitch( arrayPitch_ )
  36635. , depthPitch( depthPitch_ )
  36636. {
  36637. }
  36638. VULKAN_HPP_CONSTEXPR SubresourceLayout( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36639. SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT : SubresourceLayout( *reinterpret_cast<SubresourceLayout const *>( &rhs ) ) {}
  36640. SubresourceLayout & operator=( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36641. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36642. SubresourceLayout & operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT
  36643. {
  36644. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout const *>( &rhs );
  36645. return *this;
  36646. }
  36647. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36648. VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  36649. {
  36650. offset = offset_;
  36651. return *this;
  36652. }
  36653. VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  36654. {
  36655. size = size_;
  36656. return *this;
  36657. }
  36658. VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & setRowPitch( VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ ) VULKAN_HPP_NOEXCEPT
  36659. {
  36660. rowPitch = rowPitch_;
  36661. return *this;
  36662. }
  36663. VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & setArrayPitch( VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ ) VULKAN_HPP_NOEXCEPT
  36664. {
  36665. arrayPitch = arrayPitch_;
  36666. return *this;
  36667. }
  36668. VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & setDepthPitch( VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ ) VULKAN_HPP_NOEXCEPT
  36669. {
  36670. depthPitch = depthPitch_;
  36671. return *this;
  36672. }
  36673. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36674. operator VkSubresourceLayout const &() const VULKAN_HPP_NOEXCEPT
  36675. {
  36676. return *reinterpret_cast<const VkSubresourceLayout *>( this );
  36677. }
  36678. operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT
  36679. {
  36680. return *reinterpret_cast<VkSubresourceLayout *>( this );
  36681. }
  36682. #if defined( VULKAN_HPP_USE_REFLECT )
  36683. # if 14 <= VULKAN_HPP_CPP_VERSION
  36684. auto
  36685. # else
  36686. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &,
  36687. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  36688. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  36689. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  36690. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  36691. # endif
  36692. reflect() const VULKAN_HPP_NOEXCEPT
  36693. {
  36694. return std::tie( offset, size, rowPitch, arrayPitch, depthPitch );
  36695. }
  36696. #endif
  36697. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36698. auto operator<=>( SubresourceLayout const & ) const = default;
  36699. #else
  36700. bool operator==( SubresourceLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  36701. {
  36702. # if defined( VULKAN_HPP_USE_REFLECT )
  36703. return this->reflect() == rhs.reflect();
  36704. # else
  36705. return ( offset == rhs.offset ) && ( size == rhs.size ) && ( rowPitch == rhs.rowPitch ) && ( arrayPitch == rhs.arrayPitch ) &&
  36706. ( depthPitch == rhs.depthPitch );
  36707. # endif
  36708. }
  36709. bool operator!=( SubresourceLayout const & rhs ) const VULKAN_HPP_NOEXCEPT
  36710. {
  36711. return !operator==( rhs );
  36712. }
  36713. #endif
  36714. public:
  36715. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  36716. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  36717. VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {};
  36718. VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {};
  36719. VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {};
  36720. };
  36721. struct ImageDrmFormatModifierExplicitCreateInfoEXT
  36722. {
  36723. using NativeType = VkImageDrmFormatModifierExplicitCreateInfoEXT;
  36724. static const bool allowDuplicate = false;
  36725. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
  36726. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36727. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_ = {},
  36728. uint32_t drmFormatModifierPlaneCount_ = {},
  36729. const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts_ = {},
  36730. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36731. : pNext( pNext_ )
  36732. , drmFormatModifier( drmFormatModifier_ )
  36733. , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
  36734. , pPlaneLayouts( pPlaneLayouts_ )
  36735. {
  36736. }
  36737. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36738. ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36739. : ImageDrmFormatModifierExplicitCreateInfoEXT( *reinterpret_cast<ImageDrmFormatModifierExplicitCreateInfoEXT const *>( &rhs ) )
  36740. {
  36741. }
  36742. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  36743. ImageDrmFormatModifierExplicitCreateInfoEXT(
  36744. uint64_t drmFormatModifier_,
  36745. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_,
  36746. const void * pNext_ = nullptr )
  36747. : pNext( pNext_ )
  36748. , drmFormatModifier( drmFormatModifier_ )
  36749. , drmFormatModifierPlaneCount( static_cast<uint32_t>( planeLayouts_.size() ) )
  36750. , pPlaneLayouts( planeLayouts_.data() )
  36751. {
  36752. }
  36753. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  36754. ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36755. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36756. ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36757. {
  36758. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT const *>( &rhs );
  36759. return *this;
  36760. }
  36761. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36762. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  36763. {
  36764. pNext = pNext_;
  36765. return *this;
  36766. }
  36767. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
  36768. {
  36769. drmFormatModifier = drmFormatModifier_;
  36770. return *this;
  36771. }
  36772. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT &
  36773. setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT
  36774. {
  36775. drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_;
  36776. return *this;
  36777. }
  36778. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT &
  36779. setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT
  36780. {
  36781. pPlaneLayouts = pPlaneLayouts_;
  36782. return *this;
  36783. }
  36784. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  36785. ImageDrmFormatModifierExplicitCreateInfoEXT &
  36786. setPlaneLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubresourceLayout> const & planeLayouts_ ) VULKAN_HPP_NOEXCEPT
  36787. {
  36788. drmFormatModifierPlaneCount = static_cast<uint32_t>( planeLayouts_.size() );
  36789. pPlaneLayouts = planeLayouts_.data();
  36790. return *this;
  36791. }
  36792. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  36793. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36794. operator VkImageDrmFormatModifierExplicitCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  36795. {
  36796. return *reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT *>( this );
  36797. }
  36798. operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  36799. {
  36800. return *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT *>( this );
  36801. }
  36802. #if defined( VULKAN_HPP_USE_REFLECT )
  36803. # if 14 <= VULKAN_HPP_CPP_VERSION
  36804. auto
  36805. # else
  36806. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  36807. const void * const &,
  36808. uint64_t const &,
  36809. uint32_t const &,
  36810. const VULKAN_HPP_NAMESPACE::SubresourceLayout * const &>
  36811. # endif
  36812. reflect() const VULKAN_HPP_NOEXCEPT
  36813. {
  36814. return std::tie( sType, pNext, drmFormatModifier, drmFormatModifierPlaneCount, pPlaneLayouts );
  36815. }
  36816. #endif
  36817. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36818. auto operator<=>( ImageDrmFormatModifierExplicitCreateInfoEXT const & ) const = default;
  36819. #else
  36820. bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36821. {
  36822. # if defined( VULKAN_HPP_USE_REFLECT )
  36823. return this->reflect() == rhs.reflect();
  36824. # else
  36825. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifier == rhs.drmFormatModifier ) &&
  36826. ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) && ( pPlaneLayouts == rhs.pPlaneLayouts );
  36827. # endif
  36828. }
  36829. bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36830. {
  36831. return !operator==( rhs );
  36832. }
  36833. #endif
  36834. public:
  36835. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
  36836. const void * pNext = {};
  36837. uint64_t drmFormatModifier = {};
  36838. uint32_t drmFormatModifierPlaneCount = {};
  36839. const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts = {};
  36840. };
  36841. template <>
  36842. struct CppType<StructureType, StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT>
  36843. {
  36844. using Type = ImageDrmFormatModifierExplicitCreateInfoEXT;
  36845. };
  36846. struct ImageDrmFormatModifierListCreateInfoEXT
  36847. {
  36848. using NativeType = VkImageDrmFormatModifierListCreateInfoEXT;
  36849. static const bool allowDuplicate = false;
  36850. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
  36851. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36852. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( uint32_t drmFormatModifierCount_ = {},
  36853. const uint64_t * pDrmFormatModifiers_ = {},
  36854. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36855. : pNext( pNext_ )
  36856. , drmFormatModifierCount( drmFormatModifierCount_ )
  36857. , pDrmFormatModifiers( pDrmFormatModifiers_ )
  36858. {
  36859. }
  36860. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36861. ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36862. : ImageDrmFormatModifierListCreateInfoEXT( *reinterpret_cast<ImageDrmFormatModifierListCreateInfoEXT const *>( &rhs ) )
  36863. {
  36864. }
  36865. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  36866. ImageDrmFormatModifierListCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_,
  36867. const void * pNext_ = nullptr )
  36868. : pNext( pNext_ ), drmFormatModifierCount( static_cast<uint32_t>( drmFormatModifiers_.size() ) ), pDrmFormatModifiers( drmFormatModifiers_.data() )
  36869. {
  36870. }
  36871. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  36872. ImageDrmFormatModifierListCreateInfoEXT & operator=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36873. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36874. ImageDrmFormatModifierListCreateInfoEXT & operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36875. {
  36876. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT const *>( &rhs );
  36877. return *this;
  36878. }
  36879. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  36880. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  36881. {
  36882. pNext = pNext_;
  36883. return *this;
  36884. }
  36885. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT
  36886. {
  36887. drmFormatModifierCount = drmFormatModifierCount_;
  36888. return *this;
  36889. }
  36890. VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t * pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
  36891. {
  36892. pDrmFormatModifiers = pDrmFormatModifiers_;
  36893. return *this;
  36894. }
  36895. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  36896. ImageDrmFormatModifierListCreateInfoEXT &
  36897. setDrmFormatModifiers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & drmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT
  36898. {
  36899. drmFormatModifierCount = static_cast<uint32_t>( drmFormatModifiers_.size() );
  36900. pDrmFormatModifiers = drmFormatModifiers_.data();
  36901. return *this;
  36902. }
  36903. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  36904. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  36905. operator VkImageDrmFormatModifierListCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  36906. {
  36907. return *reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT *>( this );
  36908. }
  36909. operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  36910. {
  36911. return *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT *>( this );
  36912. }
  36913. #if defined( VULKAN_HPP_USE_REFLECT )
  36914. # if 14 <= VULKAN_HPP_CPP_VERSION
  36915. auto
  36916. # else
  36917. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint64_t * const &>
  36918. # endif
  36919. reflect() const VULKAN_HPP_NOEXCEPT
  36920. {
  36921. return std::tie( sType, pNext, drmFormatModifierCount, pDrmFormatModifiers );
  36922. }
  36923. #endif
  36924. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36925. auto operator<=>( ImageDrmFormatModifierListCreateInfoEXT const & ) const = default;
  36926. #else
  36927. bool operator==( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36928. {
  36929. # if defined( VULKAN_HPP_USE_REFLECT )
  36930. return this->reflect() == rhs.reflect();
  36931. # else
  36932. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) &&
  36933. ( pDrmFormatModifiers == rhs.pDrmFormatModifiers );
  36934. # endif
  36935. }
  36936. bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36937. {
  36938. return !operator==( rhs );
  36939. }
  36940. #endif
  36941. public:
  36942. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
  36943. const void * pNext = {};
  36944. uint32_t drmFormatModifierCount = {};
  36945. const uint64_t * pDrmFormatModifiers = {};
  36946. };
  36947. template <>
  36948. struct CppType<StructureType, StructureType::eImageDrmFormatModifierListCreateInfoEXT>
  36949. {
  36950. using Type = ImageDrmFormatModifierListCreateInfoEXT;
  36951. };
  36952. struct ImageDrmFormatModifierPropertiesEXT
  36953. {
  36954. using NativeType = VkImageDrmFormatModifierPropertiesEXT;
  36955. static const bool allowDuplicate = false;
  36956. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierPropertiesEXT;
  36957. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  36958. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  36959. : pNext( pNext_ )
  36960. , drmFormatModifier( drmFormatModifier_ )
  36961. {
  36962. }
  36963. VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36964. ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36965. : ImageDrmFormatModifierPropertiesEXT( *reinterpret_cast<ImageDrmFormatModifierPropertiesEXT const *>( &rhs ) )
  36966. {
  36967. }
  36968. ImageDrmFormatModifierPropertiesEXT & operator=( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  36969. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  36970. ImageDrmFormatModifierPropertiesEXT & operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  36971. {
  36972. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT const *>( &rhs );
  36973. return *this;
  36974. }
  36975. operator VkImageDrmFormatModifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  36976. {
  36977. return *reinterpret_cast<const VkImageDrmFormatModifierPropertiesEXT *>( this );
  36978. }
  36979. operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  36980. {
  36981. return *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( this );
  36982. }
  36983. #if defined( VULKAN_HPP_USE_REFLECT )
  36984. # if 14 <= VULKAN_HPP_CPP_VERSION
  36985. auto
  36986. # else
  36987. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
  36988. # endif
  36989. reflect() const VULKAN_HPP_NOEXCEPT
  36990. {
  36991. return std::tie( sType, pNext, drmFormatModifier );
  36992. }
  36993. #endif
  36994. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  36995. auto operator<=>( ImageDrmFormatModifierPropertiesEXT const & ) const = default;
  36996. #else
  36997. bool operator==( ImageDrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  36998. {
  36999. # if defined( VULKAN_HPP_USE_REFLECT )
  37000. return this->reflect() == rhs.reflect();
  37001. # else
  37002. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifier == rhs.drmFormatModifier );
  37003. # endif
  37004. }
  37005. bool operator!=( ImageDrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  37006. {
  37007. return !operator==( rhs );
  37008. }
  37009. #endif
  37010. public:
  37011. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT;
  37012. void * pNext = {};
  37013. uint64_t drmFormatModifier = {};
  37014. };
  37015. template <>
  37016. struct CppType<StructureType, StructureType::eImageDrmFormatModifierPropertiesEXT>
  37017. {
  37018. using Type = ImageDrmFormatModifierPropertiesEXT;
  37019. };
  37020. struct ImageFormatListCreateInfo
  37021. {
  37022. using NativeType = VkImageFormatListCreateInfo;
  37023. static const bool allowDuplicate = false;
  37024. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatListCreateInfo;
  37025. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37026. VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( uint32_t viewFormatCount_ = {},
  37027. const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ = {},
  37028. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37029. : pNext( pNext_ )
  37030. , viewFormatCount( viewFormatCount_ )
  37031. , pViewFormats( pViewFormats_ )
  37032. {
  37033. }
  37034. VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37035. ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  37036. : ImageFormatListCreateInfo( *reinterpret_cast<ImageFormatListCreateInfo const *>( &rhs ) )
  37037. {
  37038. }
  37039. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  37040. ImageFormatListCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_,
  37041. const void * pNext_ = nullptr )
  37042. : pNext( pNext_ ), viewFormatCount( static_cast<uint32_t>( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() )
  37043. {
  37044. }
  37045. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  37046. ImageFormatListCreateInfo & operator=( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37047. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37048. ImageFormatListCreateInfo & operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  37049. {
  37050. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo const *>( &rhs );
  37051. return *this;
  37052. }
  37053. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37054. VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37055. {
  37056. pNext = pNext_;
  37057. return *this;
  37058. }
  37059. VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT
  37060. {
  37061. viewFormatCount = viewFormatCount_;
  37062. return *this;
  37063. }
  37064. VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ ) VULKAN_HPP_NOEXCEPT
  37065. {
  37066. pViewFormats = pViewFormats_;
  37067. return *this;
  37068. }
  37069. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  37070. ImageFormatListCreateInfo &
  37071. setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & viewFormats_ ) VULKAN_HPP_NOEXCEPT
  37072. {
  37073. viewFormatCount = static_cast<uint32_t>( viewFormats_.size() );
  37074. pViewFormats = viewFormats_.data();
  37075. return *this;
  37076. }
  37077. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  37078. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37079. operator VkImageFormatListCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  37080. {
  37081. return *reinterpret_cast<const VkImageFormatListCreateInfo *>( this );
  37082. }
  37083. operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT
  37084. {
  37085. return *reinterpret_cast<VkImageFormatListCreateInfo *>( this );
  37086. }
  37087. #if defined( VULKAN_HPP_USE_REFLECT )
  37088. # if 14 <= VULKAN_HPP_CPP_VERSION
  37089. auto
  37090. # else
  37091. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Format * const &>
  37092. # endif
  37093. reflect() const VULKAN_HPP_NOEXCEPT
  37094. {
  37095. return std::tie( sType, pNext, viewFormatCount, pViewFormats );
  37096. }
  37097. #endif
  37098. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37099. auto operator<=>( ImageFormatListCreateInfo const & ) const = default;
  37100. #else
  37101. bool operator==( ImageFormatListCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  37102. {
  37103. # if defined( VULKAN_HPP_USE_REFLECT )
  37104. return this->reflect() == rhs.reflect();
  37105. # else
  37106. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewFormatCount == rhs.viewFormatCount ) && ( pViewFormats == rhs.pViewFormats );
  37107. # endif
  37108. }
  37109. bool operator!=( ImageFormatListCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  37110. {
  37111. return !operator==( rhs );
  37112. }
  37113. #endif
  37114. public:
  37115. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo;
  37116. const void * pNext = {};
  37117. uint32_t viewFormatCount = {};
  37118. const VULKAN_HPP_NAMESPACE::Format * pViewFormats = {};
  37119. };
  37120. template <>
  37121. struct CppType<StructureType, StructureType::eImageFormatListCreateInfo>
  37122. {
  37123. using Type = ImageFormatListCreateInfo;
  37124. };
  37125. using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
  37126. struct ImageFormatProperties2
  37127. {
  37128. using NativeType = VkImageFormatProperties2;
  37129. static const bool allowDuplicate = false;
  37130. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatProperties2;
  37131. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37132. VULKAN_HPP_CONSTEXPR ImageFormatProperties2( VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {},
  37133. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37134. : pNext( pNext_ )
  37135. , imageFormatProperties( imageFormatProperties_ )
  37136. {
  37137. }
  37138. VULKAN_HPP_CONSTEXPR ImageFormatProperties2( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37139. ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  37140. : ImageFormatProperties2( *reinterpret_cast<ImageFormatProperties2 const *>( &rhs ) )
  37141. {
  37142. }
  37143. ImageFormatProperties2 & operator=( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37144. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37145. ImageFormatProperties2 & operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  37146. {
  37147. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageFormatProperties2 const *>( &rhs );
  37148. return *this;
  37149. }
  37150. operator VkImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
  37151. {
  37152. return *reinterpret_cast<const VkImageFormatProperties2 *>( this );
  37153. }
  37154. operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
  37155. {
  37156. return *reinterpret_cast<VkImageFormatProperties2 *>( this );
  37157. }
  37158. #if defined( VULKAN_HPP_USE_REFLECT )
  37159. # if 14 <= VULKAN_HPP_CPP_VERSION
  37160. auto
  37161. # else
  37162. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageFormatProperties const &>
  37163. # endif
  37164. reflect() const VULKAN_HPP_NOEXCEPT
  37165. {
  37166. return std::tie( sType, pNext, imageFormatProperties );
  37167. }
  37168. #endif
  37169. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37170. auto operator<=>( ImageFormatProperties2 const & ) const = default;
  37171. #else
  37172. bool operator==( ImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  37173. {
  37174. # if defined( VULKAN_HPP_USE_REFLECT )
  37175. return this->reflect() == rhs.reflect();
  37176. # else
  37177. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageFormatProperties == rhs.imageFormatProperties );
  37178. # endif
  37179. }
  37180. bool operator!=( ImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  37181. {
  37182. return !operator==( rhs );
  37183. }
  37184. #endif
  37185. public:
  37186. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2;
  37187. void * pNext = {};
  37188. VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {};
  37189. };
  37190. template <>
  37191. struct CppType<StructureType, StructureType::eImageFormatProperties2>
  37192. {
  37193. using Type = ImageFormatProperties2;
  37194. };
  37195. using ImageFormatProperties2KHR = ImageFormatProperties2;
  37196. struct ImageMemoryBarrier
  37197. {
  37198. using NativeType = VkImageMemoryBarrier;
  37199. static const bool allowDuplicate = false;
  37200. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier;
  37201. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37202. VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
  37203. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
  37204. VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  37205. VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  37206. uint32_t srcQueueFamilyIndex_ = {},
  37207. uint32_t dstQueueFamilyIndex_ = {},
  37208. VULKAN_HPP_NAMESPACE::Image image_ = {},
  37209. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
  37210. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37211. : pNext( pNext_ )
  37212. , srcAccessMask( srcAccessMask_ )
  37213. , dstAccessMask( dstAccessMask_ )
  37214. , oldLayout( oldLayout_ )
  37215. , newLayout( newLayout_ )
  37216. , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
  37217. , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
  37218. , image( image_ )
  37219. , subresourceRange( subresourceRange_ )
  37220. {
  37221. }
  37222. VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37223. ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT : ImageMemoryBarrier( *reinterpret_cast<ImageMemoryBarrier const *>( &rhs ) ) {}
  37224. ImageMemoryBarrier & operator=( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37225. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37226. ImageMemoryBarrier & operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
  37227. {
  37228. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier const *>( &rhs );
  37229. return *this;
  37230. }
  37231. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37232. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37233. {
  37234. pNext = pNext_;
  37235. return *this;
  37236. }
  37237. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  37238. {
  37239. srcAccessMask = srcAccessMask_;
  37240. return *this;
  37241. }
  37242. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  37243. {
  37244. dstAccessMask = dstAccessMask_;
  37245. return *this;
  37246. }
  37247. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT
  37248. {
  37249. oldLayout = oldLayout_;
  37250. return *this;
  37251. }
  37252. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT
  37253. {
  37254. newLayout = newLayout_;
  37255. return *this;
  37256. }
  37257. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  37258. {
  37259. srcQueueFamilyIndex = srcQueueFamilyIndex_;
  37260. return *this;
  37261. }
  37262. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  37263. {
  37264. dstQueueFamilyIndex = dstQueueFamilyIndex_;
  37265. return *this;
  37266. }
  37267. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  37268. {
  37269. image = image_;
  37270. return *this;
  37271. }
  37272. VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier &
  37273. setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
  37274. {
  37275. subresourceRange = subresourceRange_;
  37276. return *this;
  37277. }
  37278. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37279. operator VkImageMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
  37280. {
  37281. return *reinterpret_cast<const VkImageMemoryBarrier *>( this );
  37282. }
  37283. operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT
  37284. {
  37285. return *reinterpret_cast<VkImageMemoryBarrier *>( this );
  37286. }
  37287. #if defined( VULKAN_HPP_USE_REFLECT )
  37288. # if 14 <= VULKAN_HPP_CPP_VERSION
  37289. auto
  37290. # else
  37291. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  37292. const void * const &,
  37293. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  37294. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  37295. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  37296. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  37297. uint32_t const &,
  37298. uint32_t const &,
  37299. VULKAN_HPP_NAMESPACE::Image const &,
  37300. VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
  37301. # endif
  37302. reflect() const VULKAN_HPP_NOEXCEPT
  37303. {
  37304. return std::tie( sType, pNext, srcAccessMask, dstAccessMask, oldLayout, newLayout, srcQueueFamilyIndex, dstQueueFamilyIndex, image, subresourceRange );
  37305. }
  37306. #endif
  37307. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37308. auto operator<=>( ImageMemoryBarrier const & ) const = default;
  37309. #else
  37310. bool operator==( ImageMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  37311. {
  37312. # if defined( VULKAN_HPP_USE_REFLECT )
  37313. return this->reflect() == rhs.reflect();
  37314. # else
  37315. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcAccessMask == rhs.srcAccessMask ) && ( dstAccessMask == rhs.dstAccessMask ) &&
  37316. ( oldLayout == rhs.oldLayout ) && ( newLayout == rhs.newLayout ) && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) &&
  37317. ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) && ( image == rhs.image ) && ( subresourceRange == rhs.subresourceRange );
  37318. # endif
  37319. }
  37320. bool operator!=( ImageMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  37321. {
  37322. return !operator==( rhs );
  37323. }
  37324. #endif
  37325. public:
  37326. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier;
  37327. const void * pNext = {};
  37328. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
  37329. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
  37330. VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  37331. VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  37332. uint32_t srcQueueFamilyIndex = {};
  37333. uint32_t dstQueueFamilyIndex = {};
  37334. VULKAN_HPP_NAMESPACE::Image image = {};
  37335. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
  37336. };
  37337. template <>
  37338. struct CppType<StructureType, StructureType::eImageMemoryBarrier>
  37339. {
  37340. using Type = ImageMemoryBarrier;
  37341. };
  37342. struct ImageMemoryRequirementsInfo2
  37343. {
  37344. using NativeType = VkImageMemoryRequirementsInfo2;
  37345. static const bool allowDuplicate = false;
  37346. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryRequirementsInfo2;
  37347. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37348. VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37349. : pNext( pNext_ )
  37350. , image( image_ )
  37351. {
  37352. }
  37353. VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37354. ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  37355. : ImageMemoryRequirementsInfo2( *reinterpret_cast<ImageMemoryRequirementsInfo2 const *>( &rhs ) )
  37356. {
  37357. }
  37358. ImageMemoryRequirementsInfo2 & operator=( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37359. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37360. ImageMemoryRequirementsInfo2 & operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  37361. {
  37362. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 const *>( &rhs );
  37363. return *this;
  37364. }
  37365. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37366. VULKAN_HPP_CONSTEXPR_14 ImageMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37367. {
  37368. pNext = pNext_;
  37369. return *this;
  37370. }
  37371. VULKAN_HPP_CONSTEXPR_14 ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  37372. {
  37373. image = image_;
  37374. return *this;
  37375. }
  37376. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37377. operator VkImageMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
  37378. {
  37379. return *reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( this );
  37380. }
  37381. operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
  37382. {
  37383. return *reinterpret_cast<VkImageMemoryRequirementsInfo2 *>( this );
  37384. }
  37385. #if defined( VULKAN_HPP_USE_REFLECT )
  37386. # if 14 <= VULKAN_HPP_CPP_VERSION
  37387. auto
  37388. # else
  37389. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &>
  37390. # endif
  37391. reflect() const VULKAN_HPP_NOEXCEPT
  37392. {
  37393. return std::tie( sType, pNext, image );
  37394. }
  37395. #endif
  37396. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37397. auto operator<=>( ImageMemoryRequirementsInfo2 const & ) const = default;
  37398. #else
  37399. bool operator==( ImageMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  37400. {
  37401. # if defined( VULKAN_HPP_USE_REFLECT )
  37402. return this->reflect() == rhs.reflect();
  37403. # else
  37404. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image );
  37405. # endif
  37406. }
  37407. bool operator!=( ImageMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  37408. {
  37409. return !operator==( rhs );
  37410. }
  37411. #endif
  37412. public:
  37413. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2;
  37414. const void * pNext = {};
  37415. VULKAN_HPP_NAMESPACE::Image image = {};
  37416. };
  37417. template <>
  37418. struct CppType<StructureType, StructureType::eImageMemoryRequirementsInfo2>
  37419. {
  37420. using Type = ImageMemoryRequirementsInfo2;
  37421. };
  37422. using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
  37423. #if defined( VK_USE_PLATFORM_FUCHSIA )
  37424. struct ImagePipeSurfaceCreateInfoFUCHSIA
  37425. {
  37426. using NativeType = VkImagePipeSurfaceCreateInfoFUCHSIA;
  37427. static const bool allowDuplicate = false;
  37428. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
  37429. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37430. VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {},
  37431. zx_handle_t imagePipeHandle_ = {},
  37432. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37433. : pNext( pNext_ )
  37434. , flags( flags_ )
  37435. , imagePipeHandle( imagePipeHandle_ )
  37436. {
  37437. }
  37438. VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37439. ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  37440. : ImagePipeSurfaceCreateInfoFUCHSIA( *reinterpret_cast<ImagePipeSurfaceCreateInfoFUCHSIA const *>( &rhs ) )
  37441. {
  37442. }
  37443. ImagePipeSurfaceCreateInfoFUCHSIA & operator=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37444. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37445. ImagePipeSurfaceCreateInfoFUCHSIA & operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  37446. {
  37447. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const *>( &rhs );
  37448. return *this;
  37449. }
  37450. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37451. VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37452. {
  37453. pNext = pNext_;
  37454. return *this;
  37455. }
  37456. VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT
  37457. {
  37458. flags = flags_;
  37459. return *this;
  37460. }
  37461. VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT
  37462. {
  37463. imagePipeHandle = imagePipeHandle_;
  37464. return *this;
  37465. }
  37466. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37467. operator VkImagePipeSurfaceCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  37468. {
  37469. return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( this );
  37470. }
  37471. operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  37472. {
  37473. return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA *>( this );
  37474. }
  37475. # if defined( VULKAN_HPP_USE_REFLECT )
  37476. # if 14 <= VULKAN_HPP_CPP_VERSION
  37477. auto
  37478. # else
  37479. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  37480. const void * const &,
  37481. VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA const &,
  37482. zx_handle_t const &>
  37483. # endif
  37484. reflect() const VULKAN_HPP_NOEXCEPT
  37485. {
  37486. return std::tie( sType, pNext, flags, imagePipeHandle );
  37487. }
  37488. # endif
  37489. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37490. std::strong_ordering operator<=>( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  37491. {
  37492. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  37493. return cmp;
  37494. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  37495. return cmp;
  37496. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  37497. return cmp;
  37498. if ( auto cmp = memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ); cmp != 0 )
  37499. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  37500. return std::strong_ordering::equivalent;
  37501. }
  37502. # endif
  37503. bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  37504. {
  37505. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  37506. ( memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ) == 0 );
  37507. }
  37508. bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  37509. {
  37510. return !operator==( rhs );
  37511. }
  37512. public:
  37513. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
  37514. const void * pNext = {};
  37515. VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {};
  37516. zx_handle_t imagePipeHandle = {};
  37517. };
  37518. template <>
  37519. struct CppType<StructureType, StructureType::eImagepipeSurfaceCreateInfoFUCHSIA>
  37520. {
  37521. using Type = ImagePipeSurfaceCreateInfoFUCHSIA;
  37522. };
  37523. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  37524. struct ImagePlaneMemoryRequirementsInfo
  37525. {
  37526. using NativeType = VkImagePlaneMemoryRequirementsInfo;
  37527. static const bool allowDuplicate = false;
  37528. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagePlaneMemoryRequirementsInfo;
  37529. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37530. VULKAN_HPP_CONSTEXPR
  37531. ImagePlaneMemoryRequirementsInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
  37532. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37533. : pNext( pNext_ )
  37534. , planeAspect( planeAspect_ )
  37535. {
  37536. }
  37537. VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37538. ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  37539. : ImagePlaneMemoryRequirementsInfo( *reinterpret_cast<ImagePlaneMemoryRequirementsInfo const *>( &rhs ) )
  37540. {
  37541. }
  37542. ImagePlaneMemoryRequirementsInfo & operator=( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37543. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37544. ImagePlaneMemoryRequirementsInfo & operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  37545. {
  37546. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo const *>( &rhs );
  37547. return *this;
  37548. }
  37549. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37550. VULKAN_HPP_CONSTEXPR_14 ImagePlaneMemoryRequirementsInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37551. {
  37552. pNext = pNext_;
  37553. return *this;
  37554. }
  37555. VULKAN_HPP_CONSTEXPR_14 ImagePlaneMemoryRequirementsInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT
  37556. {
  37557. planeAspect = planeAspect_;
  37558. return *this;
  37559. }
  37560. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37561. operator VkImagePlaneMemoryRequirementsInfo const &() const VULKAN_HPP_NOEXCEPT
  37562. {
  37563. return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo *>( this );
  37564. }
  37565. operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT
  37566. {
  37567. return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo *>( this );
  37568. }
  37569. #if defined( VULKAN_HPP_USE_REFLECT )
  37570. # if 14 <= VULKAN_HPP_CPP_VERSION
  37571. auto
  37572. # else
  37573. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &>
  37574. # endif
  37575. reflect() const VULKAN_HPP_NOEXCEPT
  37576. {
  37577. return std::tie( sType, pNext, planeAspect );
  37578. }
  37579. #endif
  37580. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37581. auto operator<=>( ImagePlaneMemoryRequirementsInfo const & ) const = default;
  37582. #else
  37583. bool operator==( ImagePlaneMemoryRequirementsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  37584. {
  37585. # if defined( VULKAN_HPP_USE_REFLECT )
  37586. return this->reflect() == rhs.reflect();
  37587. # else
  37588. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( planeAspect == rhs.planeAspect );
  37589. # endif
  37590. }
  37591. bool operator!=( ImagePlaneMemoryRequirementsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  37592. {
  37593. return !operator==( rhs );
  37594. }
  37595. #endif
  37596. public:
  37597. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo;
  37598. const void * pNext = {};
  37599. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
  37600. };
  37601. template <>
  37602. struct CppType<StructureType, StructureType::eImagePlaneMemoryRequirementsInfo>
  37603. {
  37604. using Type = ImagePlaneMemoryRequirementsInfo;
  37605. };
  37606. using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
  37607. struct ImageResolve
  37608. {
  37609. using NativeType = VkImageResolve;
  37610. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37611. VULKAN_HPP_CONSTEXPR ImageResolve( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  37612. VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {},
  37613. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  37614. VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
  37615. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT
  37616. : srcSubresource( srcSubresource_ )
  37617. , srcOffset( srcOffset_ )
  37618. , dstSubresource( dstSubresource_ )
  37619. , dstOffset( dstOffset_ )
  37620. , extent( extent_ )
  37621. {
  37622. }
  37623. VULKAN_HPP_CONSTEXPR ImageResolve( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37624. ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT : ImageResolve( *reinterpret_cast<ImageResolve const *>( &rhs ) ) {}
  37625. ImageResolve & operator=( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37626. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37627. ImageResolve & operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT
  37628. {
  37629. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve const *>( &rhs );
  37630. return *this;
  37631. }
  37632. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37633. VULKAN_HPP_CONSTEXPR_14 ImageResolve & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  37634. {
  37635. srcSubresource = srcSubresource_;
  37636. return *this;
  37637. }
  37638. VULKAN_HPP_CONSTEXPR_14 ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
  37639. {
  37640. srcOffset = srcOffset_;
  37641. return *this;
  37642. }
  37643. VULKAN_HPP_CONSTEXPR_14 ImageResolve & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  37644. {
  37645. dstSubresource = dstSubresource_;
  37646. return *this;
  37647. }
  37648. VULKAN_HPP_CONSTEXPR_14 ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
  37649. {
  37650. dstOffset = dstOffset_;
  37651. return *this;
  37652. }
  37653. VULKAN_HPP_CONSTEXPR_14 ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  37654. {
  37655. extent = extent_;
  37656. return *this;
  37657. }
  37658. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37659. operator VkImageResolve const &() const VULKAN_HPP_NOEXCEPT
  37660. {
  37661. return *reinterpret_cast<const VkImageResolve *>( this );
  37662. }
  37663. operator VkImageResolve &() VULKAN_HPP_NOEXCEPT
  37664. {
  37665. return *reinterpret_cast<VkImageResolve *>( this );
  37666. }
  37667. #if defined( VULKAN_HPP_USE_REFLECT )
  37668. # if 14 <= VULKAN_HPP_CPP_VERSION
  37669. auto
  37670. # else
  37671. std::tuple<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  37672. VULKAN_HPP_NAMESPACE::Offset3D const &,
  37673. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  37674. VULKAN_HPP_NAMESPACE::Offset3D const &,
  37675. VULKAN_HPP_NAMESPACE::Extent3D const &>
  37676. # endif
  37677. reflect() const VULKAN_HPP_NOEXCEPT
  37678. {
  37679. return std::tie( srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
  37680. }
  37681. #endif
  37682. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37683. auto operator<=>( ImageResolve const & ) const = default;
  37684. #else
  37685. bool operator==( ImageResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
  37686. {
  37687. # if defined( VULKAN_HPP_USE_REFLECT )
  37688. return this->reflect() == rhs.reflect();
  37689. # else
  37690. return ( srcSubresource == rhs.srcSubresource ) && ( srcOffset == rhs.srcOffset ) && ( dstSubresource == rhs.dstSubresource ) &&
  37691. ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent );
  37692. # endif
  37693. }
  37694. bool operator!=( ImageResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
  37695. {
  37696. return !operator==( rhs );
  37697. }
  37698. #endif
  37699. public:
  37700. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  37701. VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
  37702. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  37703. VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
  37704. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  37705. };
  37706. struct ImageResolve2
  37707. {
  37708. using NativeType = VkImageResolve2;
  37709. static const bool allowDuplicate = false;
  37710. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageResolve2;
  37711. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37712. VULKAN_HPP_CONSTEXPR ImageResolve2( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {},
  37713. VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {},
  37714. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {},
  37715. VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {},
  37716. VULKAN_HPP_NAMESPACE::Extent3D extent_ = {},
  37717. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37718. : pNext( pNext_ )
  37719. , srcSubresource( srcSubresource_ )
  37720. , srcOffset( srcOffset_ )
  37721. , dstSubresource( dstSubresource_ )
  37722. , dstOffset( dstOffset_ )
  37723. , extent( extent_ )
  37724. {
  37725. }
  37726. VULKAN_HPP_CONSTEXPR ImageResolve2( ImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37727. ImageResolve2( VkImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT : ImageResolve2( *reinterpret_cast<ImageResolve2 const *>( &rhs ) ) {}
  37728. ImageResolve2 & operator=( ImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37729. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37730. ImageResolve2 & operator=( VkImageResolve2 const & rhs ) VULKAN_HPP_NOEXCEPT
  37731. {
  37732. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageResolve2 const *>( &rhs );
  37733. return *this;
  37734. }
  37735. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37736. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37737. {
  37738. pNext = pNext_;
  37739. return *this;
  37740. }
  37741. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT
  37742. {
  37743. srcSubresource = srcSubresource_;
  37744. return *this;
  37745. }
  37746. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT
  37747. {
  37748. srcOffset = srcOffset_;
  37749. return *this;
  37750. }
  37751. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT
  37752. {
  37753. dstSubresource = dstSubresource_;
  37754. return *this;
  37755. }
  37756. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT
  37757. {
  37758. dstOffset = dstOffset_;
  37759. return *this;
  37760. }
  37761. VULKAN_HPP_CONSTEXPR_14 ImageResolve2 & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT
  37762. {
  37763. extent = extent_;
  37764. return *this;
  37765. }
  37766. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37767. operator VkImageResolve2 const &() const VULKAN_HPP_NOEXCEPT
  37768. {
  37769. return *reinterpret_cast<const VkImageResolve2 *>( this );
  37770. }
  37771. operator VkImageResolve2 &() VULKAN_HPP_NOEXCEPT
  37772. {
  37773. return *reinterpret_cast<VkImageResolve2 *>( this );
  37774. }
  37775. #if defined( VULKAN_HPP_USE_REFLECT )
  37776. # if 14 <= VULKAN_HPP_CPP_VERSION
  37777. auto
  37778. # else
  37779. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  37780. const void * const &,
  37781. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  37782. VULKAN_HPP_NAMESPACE::Offset3D const &,
  37783. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const &,
  37784. VULKAN_HPP_NAMESPACE::Offset3D const &,
  37785. VULKAN_HPP_NAMESPACE::Extent3D const &>
  37786. # endif
  37787. reflect() const VULKAN_HPP_NOEXCEPT
  37788. {
  37789. return std::tie( sType, pNext, srcSubresource, srcOffset, dstSubresource, dstOffset, extent );
  37790. }
  37791. #endif
  37792. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37793. auto operator<=>( ImageResolve2 const & ) const = default;
  37794. #else
  37795. bool operator==( ImageResolve2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  37796. {
  37797. # if defined( VULKAN_HPP_USE_REFLECT )
  37798. return this->reflect() == rhs.reflect();
  37799. # else
  37800. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubresource == rhs.srcSubresource ) && ( srcOffset == rhs.srcOffset ) &&
  37801. ( dstSubresource == rhs.dstSubresource ) && ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent );
  37802. # endif
  37803. }
  37804. bool operator!=( ImageResolve2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  37805. {
  37806. return !operator==( rhs );
  37807. }
  37808. #endif
  37809. public:
  37810. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageResolve2;
  37811. const void * pNext = {};
  37812. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {};
  37813. VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {};
  37814. VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {};
  37815. VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {};
  37816. VULKAN_HPP_NAMESPACE::Extent3D extent = {};
  37817. };
  37818. template <>
  37819. struct CppType<StructureType, StructureType::eImageResolve2>
  37820. {
  37821. using Type = ImageResolve2;
  37822. };
  37823. using ImageResolve2KHR = ImageResolve2;
  37824. struct ImageSparseMemoryRequirementsInfo2
  37825. {
  37826. using NativeType = VkImageSparseMemoryRequirementsInfo2;
  37827. static const bool allowDuplicate = false;
  37828. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSparseMemoryRequirementsInfo2;
  37829. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37830. VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37831. : pNext( pNext_ )
  37832. , image( image_ )
  37833. {
  37834. }
  37835. VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37836. ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  37837. : ImageSparseMemoryRequirementsInfo2( *reinterpret_cast<ImageSparseMemoryRequirementsInfo2 const *>( &rhs ) )
  37838. {
  37839. }
  37840. ImageSparseMemoryRequirementsInfo2 & operator=( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37841. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37842. ImageSparseMemoryRequirementsInfo2 & operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  37843. {
  37844. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 const *>( &rhs );
  37845. return *this;
  37846. }
  37847. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37848. VULKAN_HPP_CONSTEXPR_14 ImageSparseMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37849. {
  37850. pNext = pNext_;
  37851. return *this;
  37852. }
  37853. VULKAN_HPP_CONSTEXPR_14 ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  37854. {
  37855. image = image_;
  37856. return *this;
  37857. }
  37858. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37859. operator VkImageSparseMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT
  37860. {
  37861. return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( this );
  37862. }
  37863. operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT
  37864. {
  37865. return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2 *>( this );
  37866. }
  37867. #if defined( VULKAN_HPP_USE_REFLECT )
  37868. # if 14 <= VULKAN_HPP_CPP_VERSION
  37869. auto
  37870. # else
  37871. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &>
  37872. # endif
  37873. reflect() const VULKAN_HPP_NOEXCEPT
  37874. {
  37875. return std::tie( sType, pNext, image );
  37876. }
  37877. #endif
  37878. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37879. auto operator<=>( ImageSparseMemoryRequirementsInfo2 const & ) const = default;
  37880. #else
  37881. bool operator==( ImageSparseMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  37882. {
  37883. # if defined( VULKAN_HPP_USE_REFLECT )
  37884. return this->reflect() == rhs.reflect();
  37885. # else
  37886. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image );
  37887. # endif
  37888. }
  37889. bool operator!=( ImageSparseMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  37890. {
  37891. return !operator==( rhs );
  37892. }
  37893. #endif
  37894. public:
  37895. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2;
  37896. const void * pNext = {};
  37897. VULKAN_HPP_NAMESPACE::Image image = {};
  37898. };
  37899. template <>
  37900. struct CppType<StructureType, StructureType::eImageSparseMemoryRequirementsInfo2>
  37901. {
  37902. using Type = ImageSparseMemoryRequirementsInfo2;
  37903. };
  37904. using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
  37905. struct ImageStencilUsageCreateInfo
  37906. {
  37907. using NativeType = VkImageStencilUsageCreateInfo;
  37908. static const bool allowDuplicate = false;
  37909. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageStencilUsageCreateInfo;
  37910. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37911. VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {},
  37912. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37913. : pNext( pNext_ )
  37914. , stencilUsage( stencilUsage_ )
  37915. {
  37916. }
  37917. VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37918. ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  37919. : ImageStencilUsageCreateInfo( *reinterpret_cast<ImageStencilUsageCreateInfo const *>( &rhs ) )
  37920. {
  37921. }
  37922. ImageStencilUsageCreateInfo & operator=( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37923. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  37924. ImageStencilUsageCreateInfo & operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  37925. {
  37926. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo const *>( &rhs );
  37927. return *this;
  37928. }
  37929. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  37930. VULKAN_HPP_CONSTEXPR_14 ImageStencilUsageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  37931. {
  37932. pNext = pNext_;
  37933. return *this;
  37934. }
  37935. VULKAN_HPP_CONSTEXPR_14 ImageStencilUsageCreateInfo & setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT
  37936. {
  37937. stencilUsage = stencilUsage_;
  37938. return *this;
  37939. }
  37940. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  37941. operator VkImageStencilUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  37942. {
  37943. return *reinterpret_cast<const VkImageStencilUsageCreateInfo *>( this );
  37944. }
  37945. operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
  37946. {
  37947. return *reinterpret_cast<VkImageStencilUsageCreateInfo *>( this );
  37948. }
  37949. #if defined( VULKAN_HPP_USE_REFLECT )
  37950. # if 14 <= VULKAN_HPP_CPP_VERSION
  37951. auto
  37952. # else
  37953. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  37954. # endif
  37955. reflect() const VULKAN_HPP_NOEXCEPT
  37956. {
  37957. return std::tie( sType, pNext, stencilUsage );
  37958. }
  37959. #endif
  37960. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  37961. auto operator<=>( ImageStencilUsageCreateInfo const & ) const = default;
  37962. #else
  37963. bool operator==( ImageStencilUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  37964. {
  37965. # if defined( VULKAN_HPP_USE_REFLECT )
  37966. return this->reflect() == rhs.reflect();
  37967. # else
  37968. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stencilUsage == rhs.stencilUsage );
  37969. # endif
  37970. }
  37971. bool operator!=( ImageStencilUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  37972. {
  37973. return !operator==( rhs );
  37974. }
  37975. #endif
  37976. public:
  37977. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo;
  37978. const void * pNext = {};
  37979. VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {};
  37980. };
  37981. template <>
  37982. struct CppType<StructureType, StructureType::eImageStencilUsageCreateInfo>
  37983. {
  37984. using Type = ImageStencilUsageCreateInfo;
  37985. };
  37986. using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
  37987. struct ImageSwapchainCreateInfoKHR
  37988. {
  37989. using NativeType = VkImageSwapchainCreateInfoKHR;
  37990. static const bool allowDuplicate = false;
  37991. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSwapchainCreateInfoKHR;
  37992. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  37993. VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  37994. : pNext( pNext_ )
  37995. , swapchain( swapchain_ )
  37996. {
  37997. }
  37998. VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  37999. ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  38000. : ImageSwapchainCreateInfoKHR( *reinterpret_cast<ImageSwapchainCreateInfoKHR const *>( &rhs ) )
  38001. {
  38002. }
  38003. ImageSwapchainCreateInfoKHR & operator=( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38004. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38005. ImageSwapchainCreateInfoKHR & operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  38006. {
  38007. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const *>( &rhs );
  38008. return *this;
  38009. }
  38010. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38011. VULKAN_HPP_CONSTEXPR_14 ImageSwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38012. {
  38013. pNext = pNext_;
  38014. return *this;
  38015. }
  38016. VULKAN_HPP_CONSTEXPR_14 ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
  38017. {
  38018. swapchain = swapchain_;
  38019. return *this;
  38020. }
  38021. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38022. operator VkImageSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  38023. {
  38024. return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR *>( this );
  38025. }
  38026. operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  38027. {
  38028. return *reinterpret_cast<VkImageSwapchainCreateInfoKHR *>( this );
  38029. }
  38030. #if defined( VULKAN_HPP_USE_REFLECT )
  38031. # if 14 <= VULKAN_HPP_CPP_VERSION
  38032. auto
  38033. # else
  38034. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SwapchainKHR const &>
  38035. # endif
  38036. reflect() const VULKAN_HPP_NOEXCEPT
  38037. {
  38038. return std::tie( sType, pNext, swapchain );
  38039. }
  38040. #endif
  38041. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38042. auto operator<=>( ImageSwapchainCreateInfoKHR const & ) const = default;
  38043. #else
  38044. bool operator==( ImageSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  38045. {
  38046. # if defined( VULKAN_HPP_USE_REFLECT )
  38047. return this->reflect() == rhs.reflect();
  38048. # else
  38049. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchain == rhs.swapchain );
  38050. # endif
  38051. }
  38052. bool operator!=( ImageSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  38053. {
  38054. return !operator==( rhs );
  38055. }
  38056. #endif
  38057. public:
  38058. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR;
  38059. const void * pNext = {};
  38060. VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
  38061. };
  38062. template <>
  38063. struct CppType<StructureType, StructureType::eImageSwapchainCreateInfoKHR>
  38064. {
  38065. using Type = ImageSwapchainCreateInfoKHR;
  38066. };
  38067. struct ImageViewASTCDecodeModeEXT
  38068. {
  38069. using NativeType = VkImageViewASTCDecodeModeEXT;
  38070. static const bool allowDuplicate = false;
  38071. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAstcDecodeModeEXT;
  38072. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38073. VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  38074. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38075. : pNext( pNext_ )
  38076. , decodeMode( decodeMode_ )
  38077. {
  38078. }
  38079. VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38080. ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38081. : ImageViewASTCDecodeModeEXT( *reinterpret_cast<ImageViewASTCDecodeModeEXT const *>( &rhs ) )
  38082. {
  38083. }
  38084. ImageViewASTCDecodeModeEXT & operator=( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38085. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38086. ImageViewASTCDecodeModeEXT & operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38087. {
  38088. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT const *>( &rhs );
  38089. return *this;
  38090. }
  38091. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38092. VULKAN_HPP_CONSTEXPR_14 ImageViewASTCDecodeModeEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38093. {
  38094. pNext = pNext_;
  38095. return *this;
  38096. }
  38097. VULKAN_HPP_CONSTEXPR_14 ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT
  38098. {
  38099. decodeMode = decodeMode_;
  38100. return *this;
  38101. }
  38102. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38103. operator VkImageViewASTCDecodeModeEXT const &() const VULKAN_HPP_NOEXCEPT
  38104. {
  38105. return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT *>( this );
  38106. }
  38107. operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT
  38108. {
  38109. return *reinterpret_cast<VkImageViewASTCDecodeModeEXT *>( this );
  38110. }
  38111. #if defined( VULKAN_HPP_USE_REFLECT )
  38112. # if 14 <= VULKAN_HPP_CPP_VERSION
  38113. auto
  38114. # else
  38115. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Format const &>
  38116. # endif
  38117. reflect() const VULKAN_HPP_NOEXCEPT
  38118. {
  38119. return std::tie( sType, pNext, decodeMode );
  38120. }
  38121. #endif
  38122. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38123. auto operator<=>( ImageViewASTCDecodeModeEXT const & ) const = default;
  38124. #else
  38125. bool operator==( ImageViewASTCDecodeModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38126. {
  38127. # if defined( VULKAN_HPP_USE_REFLECT )
  38128. return this->reflect() == rhs.reflect();
  38129. # else
  38130. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( decodeMode == rhs.decodeMode );
  38131. # endif
  38132. }
  38133. bool operator!=( ImageViewASTCDecodeModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38134. {
  38135. return !operator==( rhs );
  38136. }
  38137. #endif
  38138. public:
  38139. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT;
  38140. const void * pNext = {};
  38141. VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  38142. };
  38143. template <>
  38144. struct CppType<StructureType, StructureType::eImageViewAstcDecodeModeEXT>
  38145. {
  38146. using Type = ImageViewASTCDecodeModeEXT;
  38147. };
  38148. struct ImageViewAddressPropertiesNVX
  38149. {
  38150. using NativeType = VkImageViewAddressPropertiesNVX;
  38151. static const bool allowDuplicate = false;
  38152. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAddressPropertiesNVX;
  38153. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38154. VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
  38155. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  38156. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38157. : pNext( pNext_ )
  38158. , deviceAddress( deviceAddress_ )
  38159. , size( size_ )
  38160. {
  38161. }
  38162. VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38163. ImageViewAddressPropertiesNVX( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  38164. : ImageViewAddressPropertiesNVX( *reinterpret_cast<ImageViewAddressPropertiesNVX const *>( &rhs ) )
  38165. {
  38166. }
  38167. ImageViewAddressPropertiesNVX & operator=( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38168. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38169. ImageViewAddressPropertiesNVX & operator=( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  38170. {
  38171. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX const *>( &rhs );
  38172. return *this;
  38173. }
  38174. operator VkImageViewAddressPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT
  38175. {
  38176. return *reinterpret_cast<const VkImageViewAddressPropertiesNVX *>( this );
  38177. }
  38178. operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT
  38179. {
  38180. return *reinterpret_cast<VkImageViewAddressPropertiesNVX *>( this );
  38181. }
  38182. #if defined( VULKAN_HPP_USE_REFLECT )
  38183. # if 14 <= VULKAN_HPP_CPP_VERSION
  38184. auto
  38185. # else
  38186. std::
  38187. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  38188. # endif
  38189. reflect() const VULKAN_HPP_NOEXCEPT
  38190. {
  38191. return std::tie( sType, pNext, deviceAddress, size );
  38192. }
  38193. #endif
  38194. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38195. auto operator<=>( ImageViewAddressPropertiesNVX const & ) const = default;
  38196. #else
  38197. bool operator==( ImageViewAddressPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  38198. {
  38199. # if defined( VULKAN_HPP_USE_REFLECT )
  38200. return this->reflect() == rhs.reflect();
  38201. # else
  38202. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceAddress == rhs.deviceAddress ) && ( size == rhs.size );
  38203. # endif
  38204. }
  38205. bool operator!=( ImageViewAddressPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  38206. {
  38207. return !operator==( rhs );
  38208. }
  38209. #endif
  38210. public:
  38211. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAddressPropertiesNVX;
  38212. void * pNext = {};
  38213. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
  38214. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  38215. };
  38216. template <>
  38217. struct CppType<StructureType, StructureType::eImageViewAddressPropertiesNVX>
  38218. {
  38219. using Type = ImageViewAddressPropertiesNVX;
  38220. };
  38221. struct ImageViewCaptureDescriptorDataInfoEXT
  38222. {
  38223. using NativeType = VkImageViewCaptureDescriptorDataInfoEXT;
  38224. static const bool allowDuplicate = false;
  38225. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCaptureDescriptorDataInfoEXT;
  38226. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38227. VULKAN_HPP_CONSTEXPR ImageViewCaptureDescriptorDataInfoEXT( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  38228. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38229. : pNext( pNext_ )
  38230. , imageView( imageView_ )
  38231. {
  38232. }
  38233. VULKAN_HPP_CONSTEXPR ImageViewCaptureDescriptorDataInfoEXT( ImageViewCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38234. ImageViewCaptureDescriptorDataInfoEXT( VkImageViewCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38235. : ImageViewCaptureDescriptorDataInfoEXT( *reinterpret_cast<ImageViewCaptureDescriptorDataInfoEXT const *>( &rhs ) )
  38236. {
  38237. }
  38238. ImageViewCaptureDescriptorDataInfoEXT & operator=( ImageViewCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38239. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38240. ImageViewCaptureDescriptorDataInfoEXT & operator=( VkImageViewCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38241. {
  38242. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT const *>( &rhs );
  38243. return *this;
  38244. }
  38245. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38246. VULKAN_HPP_CONSTEXPR_14 ImageViewCaptureDescriptorDataInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38247. {
  38248. pNext = pNext_;
  38249. return *this;
  38250. }
  38251. VULKAN_HPP_CONSTEXPR_14 ImageViewCaptureDescriptorDataInfoEXT & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  38252. {
  38253. imageView = imageView_;
  38254. return *this;
  38255. }
  38256. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38257. operator VkImageViewCaptureDescriptorDataInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  38258. {
  38259. return *reinterpret_cast<const VkImageViewCaptureDescriptorDataInfoEXT *>( this );
  38260. }
  38261. operator VkImageViewCaptureDescriptorDataInfoEXT &() VULKAN_HPP_NOEXCEPT
  38262. {
  38263. return *reinterpret_cast<VkImageViewCaptureDescriptorDataInfoEXT *>( this );
  38264. }
  38265. #if defined( VULKAN_HPP_USE_REFLECT )
  38266. # if 14 <= VULKAN_HPP_CPP_VERSION
  38267. auto
  38268. # else
  38269. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageView const &>
  38270. # endif
  38271. reflect() const VULKAN_HPP_NOEXCEPT
  38272. {
  38273. return std::tie( sType, pNext, imageView );
  38274. }
  38275. #endif
  38276. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38277. auto operator<=>( ImageViewCaptureDescriptorDataInfoEXT const & ) const = default;
  38278. #else
  38279. bool operator==( ImageViewCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38280. {
  38281. # if defined( VULKAN_HPP_USE_REFLECT )
  38282. return this->reflect() == rhs.reflect();
  38283. # else
  38284. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageView == rhs.imageView );
  38285. # endif
  38286. }
  38287. bool operator!=( ImageViewCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38288. {
  38289. return !operator==( rhs );
  38290. }
  38291. #endif
  38292. public:
  38293. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCaptureDescriptorDataInfoEXT;
  38294. const void * pNext = {};
  38295. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  38296. };
  38297. template <>
  38298. struct CppType<StructureType, StructureType::eImageViewCaptureDescriptorDataInfoEXT>
  38299. {
  38300. using Type = ImageViewCaptureDescriptorDataInfoEXT;
  38301. };
  38302. struct ImageViewCreateInfo
  38303. {
  38304. using NativeType = VkImageViewCreateInfo;
  38305. static const bool allowDuplicate = false;
  38306. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCreateInfo;
  38307. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38308. VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ = {},
  38309. VULKAN_HPP_NAMESPACE::Image image_ = {},
  38310. VULKAN_HPP_NAMESPACE::ImageViewType viewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D,
  38311. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  38312. VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {},
  38313. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {},
  38314. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38315. : pNext( pNext_ )
  38316. , flags( flags_ )
  38317. , image( image_ )
  38318. , viewType( viewType_ )
  38319. , format( format_ )
  38320. , components( components_ )
  38321. , subresourceRange( subresourceRange_ )
  38322. {
  38323. }
  38324. VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38325. ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : ImageViewCreateInfo( *reinterpret_cast<ImageViewCreateInfo const *>( &rhs ) )
  38326. {
  38327. }
  38328. ImageViewCreateInfo & operator=( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38329. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38330. ImageViewCreateInfo & operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  38331. {
  38332. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const *>( &rhs );
  38333. return *this;
  38334. }
  38335. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38336. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38337. {
  38338. pNext = pNext_;
  38339. return *this;
  38340. }
  38341. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  38342. {
  38343. flags = flags_;
  38344. return *this;
  38345. }
  38346. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  38347. {
  38348. image = image_;
  38349. return *this;
  38350. }
  38351. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT
  38352. {
  38353. viewType = viewType_;
  38354. return *this;
  38355. }
  38356. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  38357. {
  38358. format = format_;
  38359. return *this;
  38360. }
  38361. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
  38362. {
  38363. components = components_;
  38364. return *this;
  38365. }
  38366. VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo &
  38367. setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT
  38368. {
  38369. subresourceRange = subresourceRange_;
  38370. return *this;
  38371. }
  38372. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38373. operator VkImageViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  38374. {
  38375. return *reinterpret_cast<const VkImageViewCreateInfo *>( this );
  38376. }
  38377. operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT
  38378. {
  38379. return *reinterpret_cast<VkImageViewCreateInfo *>( this );
  38380. }
  38381. #if defined( VULKAN_HPP_USE_REFLECT )
  38382. # if 14 <= VULKAN_HPP_CPP_VERSION
  38383. auto
  38384. # else
  38385. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  38386. const void * const &,
  38387. VULKAN_HPP_NAMESPACE::ImageViewCreateFlags const &,
  38388. VULKAN_HPP_NAMESPACE::Image const &,
  38389. VULKAN_HPP_NAMESPACE::ImageViewType const &,
  38390. VULKAN_HPP_NAMESPACE::Format const &,
  38391. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  38392. VULKAN_HPP_NAMESPACE::ImageSubresourceRange const &>
  38393. # endif
  38394. reflect() const VULKAN_HPP_NOEXCEPT
  38395. {
  38396. return std::tie( sType, pNext, flags, image, viewType, format, components, subresourceRange );
  38397. }
  38398. #endif
  38399. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38400. auto operator<=>( ImageViewCreateInfo const & ) const = default;
  38401. #else
  38402. bool operator==( ImageViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  38403. {
  38404. # if defined( VULKAN_HPP_USE_REFLECT )
  38405. return this->reflect() == rhs.reflect();
  38406. # else
  38407. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( image == rhs.image ) && ( viewType == rhs.viewType ) &&
  38408. ( format == rhs.format ) && ( components == rhs.components ) && ( subresourceRange == rhs.subresourceRange );
  38409. # endif
  38410. }
  38411. bool operator!=( ImageViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  38412. {
  38413. return !operator==( rhs );
  38414. }
  38415. #endif
  38416. public:
  38417. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo;
  38418. const void * pNext = {};
  38419. VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {};
  38420. VULKAN_HPP_NAMESPACE::Image image = {};
  38421. VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
  38422. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  38423. VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
  38424. VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {};
  38425. };
  38426. template <>
  38427. struct CppType<StructureType, StructureType::eImageViewCreateInfo>
  38428. {
  38429. using Type = ImageViewCreateInfo;
  38430. };
  38431. struct ImageViewHandleInfoNVX
  38432. {
  38433. using NativeType = VkImageViewHandleInfoNVX;
  38434. static const bool allowDuplicate = false;
  38435. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewHandleInfoNVX;
  38436. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38437. VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  38438. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
  38439. VULKAN_HPP_NAMESPACE::Sampler sampler_ = {},
  38440. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38441. : pNext( pNext_ )
  38442. , imageView( imageView_ )
  38443. , descriptorType( descriptorType_ )
  38444. , sampler( sampler_ )
  38445. {
  38446. }
  38447. VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38448. ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  38449. : ImageViewHandleInfoNVX( *reinterpret_cast<ImageViewHandleInfoNVX const *>( &rhs ) )
  38450. {
  38451. }
  38452. ImageViewHandleInfoNVX & operator=( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38453. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38454. ImageViewHandleInfoNVX & operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  38455. {
  38456. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX const *>( &rhs );
  38457. return *this;
  38458. }
  38459. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38460. VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38461. {
  38462. pNext = pNext_;
  38463. return *this;
  38464. }
  38465. VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  38466. {
  38467. imageView = imageView_;
  38468. return *this;
  38469. }
  38470. VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
  38471. {
  38472. descriptorType = descriptorType_;
  38473. return *this;
  38474. }
  38475. VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
  38476. {
  38477. sampler = sampler_;
  38478. return *this;
  38479. }
  38480. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38481. operator VkImageViewHandleInfoNVX const &() const VULKAN_HPP_NOEXCEPT
  38482. {
  38483. return *reinterpret_cast<const VkImageViewHandleInfoNVX *>( this );
  38484. }
  38485. operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT
  38486. {
  38487. return *reinterpret_cast<VkImageViewHandleInfoNVX *>( this );
  38488. }
  38489. #if defined( VULKAN_HPP_USE_REFLECT )
  38490. # if 14 <= VULKAN_HPP_CPP_VERSION
  38491. auto
  38492. # else
  38493. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  38494. const void * const &,
  38495. VULKAN_HPP_NAMESPACE::ImageView const &,
  38496. VULKAN_HPP_NAMESPACE::DescriptorType const &,
  38497. VULKAN_HPP_NAMESPACE::Sampler const &>
  38498. # endif
  38499. reflect() const VULKAN_HPP_NOEXCEPT
  38500. {
  38501. return std::tie( sType, pNext, imageView, descriptorType, sampler );
  38502. }
  38503. #endif
  38504. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38505. auto operator<=>( ImageViewHandleInfoNVX const & ) const = default;
  38506. #else
  38507. bool operator==( ImageViewHandleInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  38508. {
  38509. # if defined( VULKAN_HPP_USE_REFLECT )
  38510. return this->reflect() == rhs.reflect();
  38511. # else
  38512. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageView == rhs.imageView ) && ( descriptorType == rhs.descriptorType ) &&
  38513. ( sampler == rhs.sampler );
  38514. # endif
  38515. }
  38516. bool operator!=( ImageViewHandleInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  38517. {
  38518. return !operator==( rhs );
  38519. }
  38520. #endif
  38521. public:
  38522. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX;
  38523. const void * pNext = {};
  38524. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  38525. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
  38526. VULKAN_HPP_NAMESPACE::Sampler sampler = {};
  38527. };
  38528. template <>
  38529. struct CppType<StructureType, StructureType::eImageViewHandleInfoNVX>
  38530. {
  38531. using Type = ImageViewHandleInfoNVX;
  38532. };
  38533. struct ImageViewMinLodCreateInfoEXT
  38534. {
  38535. using NativeType = VkImageViewMinLodCreateInfoEXT;
  38536. static const bool allowDuplicate = false;
  38537. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewMinLodCreateInfoEXT;
  38538. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38539. VULKAN_HPP_CONSTEXPR ImageViewMinLodCreateInfoEXT( float minLod_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38540. : pNext( pNext_ )
  38541. , minLod( minLod_ )
  38542. {
  38543. }
  38544. VULKAN_HPP_CONSTEXPR ImageViewMinLodCreateInfoEXT( ImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38545. ImageViewMinLodCreateInfoEXT( VkImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38546. : ImageViewMinLodCreateInfoEXT( *reinterpret_cast<ImageViewMinLodCreateInfoEXT const *>( &rhs ) )
  38547. {
  38548. }
  38549. ImageViewMinLodCreateInfoEXT & operator=( ImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38550. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38551. ImageViewMinLodCreateInfoEXT & operator=( VkImageViewMinLodCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38552. {
  38553. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT const *>( &rhs );
  38554. return *this;
  38555. }
  38556. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38557. VULKAN_HPP_CONSTEXPR_14 ImageViewMinLodCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38558. {
  38559. pNext = pNext_;
  38560. return *this;
  38561. }
  38562. VULKAN_HPP_CONSTEXPR_14 ImageViewMinLodCreateInfoEXT & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT
  38563. {
  38564. minLod = minLod_;
  38565. return *this;
  38566. }
  38567. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38568. operator VkImageViewMinLodCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  38569. {
  38570. return *reinterpret_cast<const VkImageViewMinLodCreateInfoEXT *>( this );
  38571. }
  38572. operator VkImageViewMinLodCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  38573. {
  38574. return *reinterpret_cast<VkImageViewMinLodCreateInfoEXT *>( this );
  38575. }
  38576. #if defined( VULKAN_HPP_USE_REFLECT )
  38577. # if 14 <= VULKAN_HPP_CPP_VERSION
  38578. auto
  38579. # else
  38580. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, float const &>
  38581. # endif
  38582. reflect() const VULKAN_HPP_NOEXCEPT
  38583. {
  38584. return std::tie( sType, pNext, minLod );
  38585. }
  38586. #endif
  38587. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38588. auto operator<=>( ImageViewMinLodCreateInfoEXT const & ) const = default;
  38589. #else
  38590. bool operator==( ImageViewMinLodCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38591. {
  38592. # if defined( VULKAN_HPP_USE_REFLECT )
  38593. return this->reflect() == rhs.reflect();
  38594. # else
  38595. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minLod == rhs.minLod );
  38596. # endif
  38597. }
  38598. bool operator!=( ImageViewMinLodCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38599. {
  38600. return !operator==( rhs );
  38601. }
  38602. #endif
  38603. public:
  38604. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewMinLodCreateInfoEXT;
  38605. const void * pNext = {};
  38606. float minLod = {};
  38607. };
  38608. template <>
  38609. struct CppType<StructureType, StructureType::eImageViewMinLodCreateInfoEXT>
  38610. {
  38611. using Type = ImageViewMinLodCreateInfoEXT;
  38612. };
  38613. struct ImageViewSampleWeightCreateInfoQCOM
  38614. {
  38615. using NativeType = VkImageViewSampleWeightCreateInfoQCOM;
  38616. static const bool allowDuplicate = false;
  38617. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewSampleWeightCreateInfoQCOM;
  38618. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38619. VULKAN_HPP_CONSTEXPR ImageViewSampleWeightCreateInfoQCOM( VULKAN_HPP_NAMESPACE::Offset2D filterCenter_ = {},
  38620. VULKAN_HPP_NAMESPACE::Extent2D filterSize_ = {},
  38621. uint32_t numPhases_ = {},
  38622. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38623. : pNext( pNext_ )
  38624. , filterCenter( filterCenter_ )
  38625. , filterSize( filterSize_ )
  38626. , numPhases( numPhases_ )
  38627. {
  38628. }
  38629. VULKAN_HPP_CONSTEXPR ImageViewSampleWeightCreateInfoQCOM( ImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38630. ImageViewSampleWeightCreateInfoQCOM( VkImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  38631. : ImageViewSampleWeightCreateInfoQCOM( *reinterpret_cast<ImageViewSampleWeightCreateInfoQCOM const *>( &rhs ) )
  38632. {
  38633. }
  38634. ImageViewSampleWeightCreateInfoQCOM & operator=( ImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38635. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38636. ImageViewSampleWeightCreateInfoQCOM & operator=( VkImageViewSampleWeightCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  38637. {
  38638. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM const *>( &rhs );
  38639. return *this;
  38640. }
  38641. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38642. VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38643. {
  38644. pNext = pNext_;
  38645. return *this;
  38646. }
  38647. VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setFilterCenter( VULKAN_HPP_NAMESPACE::Offset2D const & filterCenter_ ) VULKAN_HPP_NOEXCEPT
  38648. {
  38649. filterCenter = filterCenter_;
  38650. return *this;
  38651. }
  38652. VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setFilterSize( VULKAN_HPP_NAMESPACE::Extent2D const & filterSize_ ) VULKAN_HPP_NOEXCEPT
  38653. {
  38654. filterSize = filterSize_;
  38655. return *this;
  38656. }
  38657. VULKAN_HPP_CONSTEXPR_14 ImageViewSampleWeightCreateInfoQCOM & setNumPhases( uint32_t numPhases_ ) VULKAN_HPP_NOEXCEPT
  38658. {
  38659. numPhases = numPhases_;
  38660. return *this;
  38661. }
  38662. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38663. operator VkImageViewSampleWeightCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  38664. {
  38665. return *reinterpret_cast<const VkImageViewSampleWeightCreateInfoQCOM *>( this );
  38666. }
  38667. operator VkImageViewSampleWeightCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
  38668. {
  38669. return *reinterpret_cast<VkImageViewSampleWeightCreateInfoQCOM *>( this );
  38670. }
  38671. #if defined( VULKAN_HPP_USE_REFLECT )
  38672. # if 14 <= VULKAN_HPP_CPP_VERSION
  38673. auto
  38674. # else
  38675. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  38676. const void * const &,
  38677. VULKAN_HPP_NAMESPACE::Offset2D const &,
  38678. VULKAN_HPP_NAMESPACE::Extent2D const &,
  38679. uint32_t const &>
  38680. # endif
  38681. reflect() const VULKAN_HPP_NOEXCEPT
  38682. {
  38683. return std::tie( sType, pNext, filterCenter, filterSize, numPhases );
  38684. }
  38685. #endif
  38686. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38687. auto operator<=>( ImageViewSampleWeightCreateInfoQCOM const & ) const = default;
  38688. #else
  38689. bool operator==( ImageViewSampleWeightCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  38690. {
  38691. # if defined( VULKAN_HPP_USE_REFLECT )
  38692. return this->reflect() == rhs.reflect();
  38693. # else
  38694. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( filterCenter == rhs.filterCenter ) && ( filterSize == rhs.filterSize ) &&
  38695. ( numPhases == rhs.numPhases );
  38696. # endif
  38697. }
  38698. bool operator!=( ImageViewSampleWeightCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  38699. {
  38700. return !operator==( rhs );
  38701. }
  38702. #endif
  38703. public:
  38704. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewSampleWeightCreateInfoQCOM;
  38705. const void * pNext = {};
  38706. VULKAN_HPP_NAMESPACE::Offset2D filterCenter = {};
  38707. VULKAN_HPP_NAMESPACE::Extent2D filterSize = {};
  38708. uint32_t numPhases = {};
  38709. };
  38710. template <>
  38711. struct CppType<StructureType, StructureType::eImageViewSampleWeightCreateInfoQCOM>
  38712. {
  38713. using Type = ImageViewSampleWeightCreateInfoQCOM;
  38714. };
  38715. struct ImageViewSlicedCreateInfoEXT
  38716. {
  38717. using NativeType = VkImageViewSlicedCreateInfoEXT;
  38718. static const bool allowDuplicate = false;
  38719. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewSlicedCreateInfoEXT;
  38720. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38721. VULKAN_HPP_CONSTEXPR
  38722. ImageViewSlicedCreateInfoEXT( uint32_t sliceOffset_ = {}, uint32_t sliceCount_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38723. : pNext( pNext_ )
  38724. , sliceOffset( sliceOffset_ )
  38725. , sliceCount( sliceCount_ )
  38726. {
  38727. }
  38728. VULKAN_HPP_CONSTEXPR ImageViewSlicedCreateInfoEXT( ImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38729. ImageViewSlicedCreateInfoEXT( VkImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38730. : ImageViewSlicedCreateInfoEXT( *reinterpret_cast<ImageViewSlicedCreateInfoEXT const *>( &rhs ) )
  38731. {
  38732. }
  38733. ImageViewSlicedCreateInfoEXT & operator=( ImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38734. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38735. ImageViewSlicedCreateInfoEXT & operator=( VkImageViewSlicedCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  38736. {
  38737. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT const *>( &rhs );
  38738. return *this;
  38739. }
  38740. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38741. VULKAN_HPP_CONSTEXPR_14 ImageViewSlicedCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38742. {
  38743. pNext = pNext_;
  38744. return *this;
  38745. }
  38746. VULKAN_HPP_CONSTEXPR_14 ImageViewSlicedCreateInfoEXT & setSliceOffset( uint32_t sliceOffset_ ) VULKAN_HPP_NOEXCEPT
  38747. {
  38748. sliceOffset = sliceOffset_;
  38749. return *this;
  38750. }
  38751. VULKAN_HPP_CONSTEXPR_14 ImageViewSlicedCreateInfoEXT & setSliceCount( uint32_t sliceCount_ ) VULKAN_HPP_NOEXCEPT
  38752. {
  38753. sliceCount = sliceCount_;
  38754. return *this;
  38755. }
  38756. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38757. operator VkImageViewSlicedCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  38758. {
  38759. return *reinterpret_cast<const VkImageViewSlicedCreateInfoEXT *>( this );
  38760. }
  38761. operator VkImageViewSlicedCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  38762. {
  38763. return *reinterpret_cast<VkImageViewSlicedCreateInfoEXT *>( this );
  38764. }
  38765. #if defined( VULKAN_HPP_USE_REFLECT )
  38766. # if 14 <= VULKAN_HPP_CPP_VERSION
  38767. auto
  38768. # else
  38769. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &>
  38770. # endif
  38771. reflect() const VULKAN_HPP_NOEXCEPT
  38772. {
  38773. return std::tie( sType, pNext, sliceOffset, sliceCount );
  38774. }
  38775. #endif
  38776. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38777. auto operator<=>( ImageViewSlicedCreateInfoEXT const & ) const = default;
  38778. #else
  38779. bool operator==( ImageViewSlicedCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38780. {
  38781. # if defined( VULKAN_HPP_USE_REFLECT )
  38782. return this->reflect() == rhs.reflect();
  38783. # else
  38784. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sliceOffset == rhs.sliceOffset ) && ( sliceCount == rhs.sliceCount );
  38785. # endif
  38786. }
  38787. bool operator!=( ImageViewSlicedCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  38788. {
  38789. return !operator==( rhs );
  38790. }
  38791. #endif
  38792. public:
  38793. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewSlicedCreateInfoEXT;
  38794. const void * pNext = {};
  38795. uint32_t sliceOffset = {};
  38796. uint32_t sliceCount = {};
  38797. };
  38798. template <>
  38799. struct CppType<StructureType, StructureType::eImageViewSlicedCreateInfoEXT>
  38800. {
  38801. using Type = ImageViewSlicedCreateInfoEXT;
  38802. };
  38803. struct ImageViewUsageCreateInfo
  38804. {
  38805. using NativeType = VkImageViewUsageCreateInfo;
  38806. static const bool allowDuplicate = false;
  38807. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewUsageCreateInfo;
  38808. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38809. VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38810. : pNext( pNext_ )
  38811. , usage( usage_ )
  38812. {
  38813. }
  38814. VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38815. ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  38816. : ImageViewUsageCreateInfo( *reinterpret_cast<ImageViewUsageCreateInfo const *>( &rhs ) )
  38817. {
  38818. }
  38819. ImageViewUsageCreateInfo & operator=( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38820. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38821. ImageViewUsageCreateInfo & operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  38822. {
  38823. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const *>( &rhs );
  38824. return *this;
  38825. }
  38826. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38827. VULKAN_HPP_CONSTEXPR_14 ImageViewUsageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38828. {
  38829. pNext = pNext_;
  38830. return *this;
  38831. }
  38832. VULKAN_HPP_CONSTEXPR_14 ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  38833. {
  38834. usage = usage_;
  38835. return *this;
  38836. }
  38837. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38838. operator VkImageViewUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  38839. {
  38840. return *reinterpret_cast<const VkImageViewUsageCreateInfo *>( this );
  38841. }
  38842. operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT
  38843. {
  38844. return *reinterpret_cast<VkImageViewUsageCreateInfo *>( this );
  38845. }
  38846. #if defined( VULKAN_HPP_USE_REFLECT )
  38847. # if 14 <= VULKAN_HPP_CPP_VERSION
  38848. auto
  38849. # else
  38850. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  38851. # endif
  38852. reflect() const VULKAN_HPP_NOEXCEPT
  38853. {
  38854. return std::tie( sType, pNext, usage );
  38855. }
  38856. #endif
  38857. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38858. auto operator<=>( ImageViewUsageCreateInfo const & ) const = default;
  38859. #else
  38860. bool operator==( ImageViewUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  38861. {
  38862. # if defined( VULKAN_HPP_USE_REFLECT )
  38863. return this->reflect() == rhs.reflect();
  38864. # else
  38865. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( usage == rhs.usage );
  38866. # endif
  38867. }
  38868. bool operator!=( ImageViewUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  38869. {
  38870. return !operator==( rhs );
  38871. }
  38872. #endif
  38873. public:
  38874. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo;
  38875. const void * pNext = {};
  38876. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
  38877. };
  38878. template <>
  38879. struct CppType<StructureType, StructureType::eImageViewUsageCreateInfo>
  38880. {
  38881. using Type = ImageViewUsageCreateInfo;
  38882. };
  38883. using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
  38884. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  38885. struct ImportAndroidHardwareBufferInfoANDROID
  38886. {
  38887. using NativeType = VkImportAndroidHardwareBufferInfoANDROID;
  38888. static const bool allowDuplicate = false;
  38889. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
  38890. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38891. VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( struct AHardwareBuffer * buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38892. : pNext( pNext_ )
  38893. , buffer( buffer_ )
  38894. {
  38895. }
  38896. VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38897. ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  38898. : ImportAndroidHardwareBufferInfoANDROID( *reinterpret_cast<ImportAndroidHardwareBufferInfoANDROID const *>( &rhs ) )
  38899. {
  38900. }
  38901. ImportAndroidHardwareBufferInfoANDROID & operator=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38902. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38903. ImportAndroidHardwareBufferInfoANDROID & operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  38904. {
  38905. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID const *>( &rhs );
  38906. return *this;
  38907. }
  38908. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38909. VULKAN_HPP_CONSTEXPR_14 ImportAndroidHardwareBufferInfoANDROID & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38910. {
  38911. pNext = pNext_;
  38912. return *this;
  38913. }
  38914. VULKAN_HPP_CONSTEXPR_14 ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer * buffer_ ) VULKAN_HPP_NOEXCEPT
  38915. {
  38916. buffer = buffer_;
  38917. return *this;
  38918. }
  38919. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  38920. operator VkImportAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
  38921. {
  38922. return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID *>( this );
  38923. }
  38924. operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
  38925. {
  38926. return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID *>( this );
  38927. }
  38928. # if defined( VULKAN_HPP_USE_REFLECT )
  38929. # if 14 <= VULKAN_HPP_CPP_VERSION
  38930. auto
  38931. # else
  38932. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, struct AHardwareBuffer * const &>
  38933. # endif
  38934. reflect() const VULKAN_HPP_NOEXCEPT
  38935. {
  38936. return std::tie( sType, pNext, buffer );
  38937. }
  38938. # endif
  38939. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  38940. auto operator<=>( ImportAndroidHardwareBufferInfoANDROID const & ) const = default;
  38941. # else
  38942. bool operator==( ImportAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  38943. {
  38944. # if defined( VULKAN_HPP_USE_REFLECT )
  38945. return this->reflect() == rhs.reflect();
  38946. # else
  38947. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer );
  38948. # endif
  38949. }
  38950. bool operator!=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  38951. {
  38952. return !operator==( rhs );
  38953. }
  38954. # endif
  38955. public:
  38956. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
  38957. const void * pNext = {};
  38958. struct AHardwareBuffer * buffer = {};
  38959. };
  38960. template <>
  38961. struct CppType<StructureType, StructureType::eImportAndroidHardwareBufferInfoANDROID>
  38962. {
  38963. using Type = ImportAndroidHardwareBufferInfoANDROID;
  38964. };
  38965. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  38966. struct ImportFenceFdInfoKHR
  38967. {
  38968. using NativeType = VkImportFenceFdInfoKHR;
  38969. static const bool allowDuplicate = false;
  38970. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceFdInfoKHR;
  38971. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  38972. VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR(
  38973. VULKAN_HPP_NAMESPACE::Fence fence_ = {},
  38974. VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {},
  38975. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  38976. int fd_ = {},
  38977. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  38978. : pNext( pNext_ )
  38979. , fence( fence_ )
  38980. , flags( flags_ )
  38981. , handleType( handleType_ )
  38982. , fd( fd_ )
  38983. {
  38984. }
  38985. VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38986. ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  38987. : ImportFenceFdInfoKHR( *reinterpret_cast<ImportFenceFdInfoKHR const *>( &rhs ) )
  38988. {
  38989. }
  38990. ImportFenceFdInfoKHR & operator=( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  38991. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  38992. ImportFenceFdInfoKHR & operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  38993. {
  38994. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR const *>( &rhs );
  38995. return *this;
  38996. }
  38997. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  38998. VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  38999. {
  39000. pNext = pNext_;
  39001. return *this;
  39002. }
  39003. VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
  39004. {
  39005. fence = fence_;
  39006. return *this;
  39007. }
  39008. VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
  39009. {
  39010. flags = flags_;
  39011. return *this;
  39012. }
  39013. VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  39014. {
  39015. handleType = handleType_;
  39016. return *this;
  39017. }
  39018. VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
  39019. {
  39020. fd = fd_;
  39021. return *this;
  39022. }
  39023. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39024. operator VkImportFenceFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  39025. {
  39026. return *reinterpret_cast<const VkImportFenceFdInfoKHR *>( this );
  39027. }
  39028. operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  39029. {
  39030. return *reinterpret_cast<VkImportFenceFdInfoKHR *>( this );
  39031. }
  39032. #if defined( VULKAN_HPP_USE_REFLECT )
  39033. # if 14 <= VULKAN_HPP_CPP_VERSION
  39034. auto
  39035. # else
  39036. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  39037. const void * const &,
  39038. VULKAN_HPP_NAMESPACE::Fence const &,
  39039. VULKAN_HPP_NAMESPACE::FenceImportFlags const &,
  39040. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &,
  39041. int const &>
  39042. # endif
  39043. reflect() const VULKAN_HPP_NOEXCEPT
  39044. {
  39045. return std::tie( sType, pNext, fence, flags, handleType, fd );
  39046. }
  39047. #endif
  39048. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39049. auto operator<=>( ImportFenceFdInfoKHR const & ) const = default;
  39050. #else
  39051. bool operator==( ImportFenceFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39052. {
  39053. # if defined( VULKAN_HPP_USE_REFLECT )
  39054. return this->reflect() == rhs.reflect();
  39055. # else
  39056. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && ( flags == rhs.flags ) && ( handleType == rhs.handleType ) &&
  39057. ( fd == rhs.fd );
  39058. # endif
  39059. }
  39060. bool operator!=( ImportFenceFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39061. {
  39062. return !operator==( rhs );
  39063. }
  39064. #endif
  39065. public:
  39066. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR;
  39067. const void * pNext = {};
  39068. VULKAN_HPP_NAMESPACE::Fence fence = {};
  39069. VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
  39070. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
  39071. int fd = {};
  39072. };
  39073. template <>
  39074. struct CppType<StructureType, StructureType::eImportFenceFdInfoKHR>
  39075. {
  39076. using Type = ImportFenceFdInfoKHR;
  39077. };
  39078. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  39079. struct ImportFenceWin32HandleInfoKHR
  39080. {
  39081. using NativeType = VkImportFenceWin32HandleInfoKHR;
  39082. static const bool allowDuplicate = false;
  39083. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceWin32HandleInfoKHR;
  39084. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39085. VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR(
  39086. VULKAN_HPP_NAMESPACE::Fence fence_ = {},
  39087. VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {},
  39088. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  39089. HANDLE handle_ = {},
  39090. LPCWSTR name_ = {},
  39091. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39092. : pNext( pNext_ )
  39093. , fence( fence_ )
  39094. , flags( flags_ )
  39095. , handleType( handleType_ )
  39096. , handle( handle_ )
  39097. , name( name_ )
  39098. {
  39099. }
  39100. VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39101. ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  39102. : ImportFenceWin32HandleInfoKHR( *reinterpret_cast<ImportFenceWin32HandleInfoKHR const *>( &rhs ) )
  39103. {
  39104. }
  39105. ImportFenceWin32HandleInfoKHR & operator=( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39106. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39107. ImportFenceWin32HandleInfoKHR & operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  39108. {
  39109. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR const *>( &rhs );
  39110. return *this;
  39111. }
  39112. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39113. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39114. {
  39115. pNext = pNext_;
  39116. return *this;
  39117. }
  39118. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT
  39119. {
  39120. fence = fence_;
  39121. return *this;
  39122. }
  39123. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
  39124. {
  39125. flags = flags_;
  39126. return *this;
  39127. }
  39128. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR &
  39129. setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  39130. {
  39131. handleType = handleType_;
  39132. return *this;
  39133. }
  39134. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
  39135. {
  39136. handle = handle_;
  39137. return *this;
  39138. }
  39139. VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  39140. {
  39141. name = name_;
  39142. return *this;
  39143. }
  39144. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39145. operator VkImportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  39146. {
  39147. return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( this );
  39148. }
  39149. operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  39150. {
  39151. return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR *>( this );
  39152. }
  39153. # if defined( VULKAN_HPP_USE_REFLECT )
  39154. # if 14 <= VULKAN_HPP_CPP_VERSION
  39155. auto
  39156. # else
  39157. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  39158. const void * const &,
  39159. VULKAN_HPP_NAMESPACE::Fence const &,
  39160. VULKAN_HPP_NAMESPACE::FenceImportFlags const &,
  39161. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &,
  39162. HANDLE const &,
  39163. LPCWSTR const &>
  39164. # endif
  39165. reflect() const VULKAN_HPP_NOEXCEPT
  39166. {
  39167. return std::tie( sType, pNext, fence, flags, handleType, handle, name );
  39168. }
  39169. # endif
  39170. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39171. auto operator<=>( ImportFenceWin32HandleInfoKHR const & ) const = default;
  39172. # else
  39173. bool operator==( ImportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39174. {
  39175. # if defined( VULKAN_HPP_USE_REFLECT )
  39176. return this->reflect() == rhs.reflect();
  39177. # else
  39178. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && ( flags == rhs.flags ) && ( handleType == rhs.handleType ) &&
  39179. ( handle == rhs.handle ) && ( name == rhs.name );
  39180. # endif
  39181. }
  39182. bool operator!=( ImportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39183. {
  39184. return !operator==( rhs );
  39185. }
  39186. # endif
  39187. public:
  39188. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR;
  39189. const void * pNext = {};
  39190. VULKAN_HPP_NAMESPACE::Fence fence = {};
  39191. VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {};
  39192. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
  39193. HANDLE handle = {};
  39194. LPCWSTR name = {};
  39195. };
  39196. template <>
  39197. struct CppType<StructureType, StructureType::eImportFenceWin32HandleInfoKHR>
  39198. {
  39199. using Type = ImportFenceWin32HandleInfoKHR;
  39200. };
  39201. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  39202. #if defined( VK_USE_PLATFORM_FUCHSIA )
  39203. struct ImportMemoryBufferCollectionFUCHSIA
  39204. {
  39205. using NativeType = VkImportMemoryBufferCollectionFUCHSIA;
  39206. static const bool allowDuplicate = false;
  39207. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryBufferCollectionFUCHSIA;
  39208. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39209. VULKAN_HPP_CONSTEXPR ImportMemoryBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ = {},
  39210. uint32_t index_ = {},
  39211. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39212. : pNext( pNext_ )
  39213. , collection( collection_ )
  39214. , index( index_ )
  39215. {
  39216. }
  39217. VULKAN_HPP_CONSTEXPR ImportMemoryBufferCollectionFUCHSIA( ImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39218. ImportMemoryBufferCollectionFUCHSIA( VkImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  39219. : ImportMemoryBufferCollectionFUCHSIA( *reinterpret_cast<ImportMemoryBufferCollectionFUCHSIA const *>( &rhs ) )
  39220. {
  39221. }
  39222. ImportMemoryBufferCollectionFUCHSIA & operator=( ImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39223. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39224. ImportMemoryBufferCollectionFUCHSIA & operator=( VkImportMemoryBufferCollectionFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  39225. {
  39226. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA const *>( &rhs );
  39227. return *this;
  39228. }
  39229. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39230. VULKAN_HPP_CONSTEXPR_14 ImportMemoryBufferCollectionFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39231. {
  39232. pNext = pNext_;
  39233. return *this;
  39234. }
  39235. VULKAN_HPP_CONSTEXPR_14 ImportMemoryBufferCollectionFUCHSIA & setCollection( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection_ ) VULKAN_HPP_NOEXCEPT
  39236. {
  39237. collection = collection_;
  39238. return *this;
  39239. }
  39240. VULKAN_HPP_CONSTEXPR_14 ImportMemoryBufferCollectionFUCHSIA & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
  39241. {
  39242. index = index_;
  39243. return *this;
  39244. }
  39245. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39246. operator VkImportMemoryBufferCollectionFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  39247. {
  39248. return *reinterpret_cast<const VkImportMemoryBufferCollectionFUCHSIA *>( this );
  39249. }
  39250. operator VkImportMemoryBufferCollectionFUCHSIA &() VULKAN_HPP_NOEXCEPT
  39251. {
  39252. return *reinterpret_cast<VkImportMemoryBufferCollectionFUCHSIA *>( this );
  39253. }
  39254. # if defined( VULKAN_HPP_USE_REFLECT )
  39255. # if 14 <= VULKAN_HPP_CPP_VERSION
  39256. auto
  39257. # else
  39258. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const &, uint32_t const &>
  39259. # endif
  39260. reflect() const VULKAN_HPP_NOEXCEPT
  39261. {
  39262. return std::tie( sType, pNext, collection, index );
  39263. }
  39264. # endif
  39265. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39266. auto operator<=>( ImportMemoryBufferCollectionFUCHSIA const & ) const = default;
  39267. # else
  39268. bool operator==( ImportMemoryBufferCollectionFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  39269. {
  39270. # if defined( VULKAN_HPP_USE_REFLECT )
  39271. return this->reflect() == rhs.reflect();
  39272. # else
  39273. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( collection == rhs.collection ) && ( index == rhs.index );
  39274. # endif
  39275. }
  39276. bool operator!=( ImportMemoryBufferCollectionFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  39277. {
  39278. return !operator==( rhs );
  39279. }
  39280. # endif
  39281. public:
  39282. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryBufferCollectionFUCHSIA;
  39283. const void * pNext = {};
  39284. VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection = {};
  39285. uint32_t index = {};
  39286. };
  39287. template <>
  39288. struct CppType<StructureType, StructureType::eImportMemoryBufferCollectionFUCHSIA>
  39289. {
  39290. using Type = ImportMemoryBufferCollectionFUCHSIA;
  39291. };
  39292. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  39293. struct ImportMemoryFdInfoKHR
  39294. {
  39295. using NativeType = VkImportMemoryFdInfoKHR;
  39296. static const bool allowDuplicate = false;
  39297. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryFdInfoKHR;
  39298. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39299. VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR(
  39300. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  39301. int fd_ = {},
  39302. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39303. : pNext( pNext_ )
  39304. , handleType( handleType_ )
  39305. , fd( fd_ )
  39306. {
  39307. }
  39308. VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39309. ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  39310. : ImportMemoryFdInfoKHR( *reinterpret_cast<ImportMemoryFdInfoKHR const *>( &rhs ) )
  39311. {
  39312. }
  39313. ImportMemoryFdInfoKHR & operator=( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39314. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39315. ImportMemoryFdInfoKHR & operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  39316. {
  39317. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR const *>( &rhs );
  39318. return *this;
  39319. }
  39320. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39321. VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39322. {
  39323. pNext = pNext_;
  39324. return *this;
  39325. }
  39326. VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  39327. {
  39328. handleType = handleType_;
  39329. return *this;
  39330. }
  39331. VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
  39332. {
  39333. fd = fd_;
  39334. return *this;
  39335. }
  39336. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39337. operator VkImportMemoryFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  39338. {
  39339. return *reinterpret_cast<const VkImportMemoryFdInfoKHR *>( this );
  39340. }
  39341. operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  39342. {
  39343. return *reinterpret_cast<VkImportMemoryFdInfoKHR *>( this );
  39344. }
  39345. #if defined( VULKAN_HPP_USE_REFLECT )
  39346. # if 14 <= VULKAN_HPP_CPP_VERSION
  39347. auto
  39348. # else
  39349. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &, int const &>
  39350. # endif
  39351. reflect() const VULKAN_HPP_NOEXCEPT
  39352. {
  39353. return std::tie( sType, pNext, handleType, fd );
  39354. }
  39355. #endif
  39356. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39357. auto operator<=>( ImportMemoryFdInfoKHR const & ) const = default;
  39358. #else
  39359. bool operator==( ImportMemoryFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39360. {
  39361. # if defined( VULKAN_HPP_USE_REFLECT )
  39362. return this->reflect() == rhs.reflect();
  39363. # else
  39364. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && ( fd == rhs.fd );
  39365. # endif
  39366. }
  39367. bool operator!=( ImportMemoryFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39368. {
  39369. return !operator==( rhs );
  39370. }
  39371. #endif
  39372. public:
  39373. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR;
  39374. const void * pNext = {};
  39375. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  39376. int fd = {};
  39377. };
  39378. template <>
  39379. struct CppType<StructureType, StructureType::eImportMemoryFdInfoKHR>
  39380. {
  39381. using Type = ImportMemoryFdInfoKHR;
  39382. };
  39383. struct ImportMemoryHostPointerInfoEXT
  39384. {
  39385. using NativeType = VkImportMemoryHostPointerInfoEXT;
  39386. static const bool allowDuplicate = false;
  39387. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryHostPointerInfoEXT;
  39388. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39389. VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT(
  39390. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  39391. void * pHostPointer_ = {},
  39392. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39393. : pNext( pNext_ )
  39394. , handleType( handleType_ )
  39395. , pHostPointer( pHostPointer_ )
  39396. {
  39397. }
  39398. VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39399. ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39400. : ImportMemoryHostPointerInfoEXT( *reinterpret_cast<ImportMemoryHostPointerInfoEXT const *>( &rhs ) )
  39401. {
  39402. }
  39403. ImportMemoryHostPointerInfoEXT & operator=( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39404. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39405. ImportMemoryHostPointerInfoEXT & operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39406. {
  39407. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT const *>( &rhs );
  39408. return *this;
  39409. }
  39410. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39411. VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39412. {
  39413. pNext = pNext_;
  39414. return *this;
  39415. }
  39416. VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT &
  39417. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  39418. {
  39419. handleType = handleType_;
  39420. return *this;
  39421. }
  39422. VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT & setPHostPointer( void * pHostPointer_ ) VULKAN_HPP_NOEXCEPT
  39423. {
  39424. pHostPointer = pHostPointer_;
  39425. return *this;
  39426. }
  39427. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39428. operator VkImportMemoryHostPointerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  39429. {
  39430. return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT *>( this );
  39431. }
  39432. operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT
  39433. {
  39434. return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT *>( this );
  39435. }
  39436. #if defined( VULKAN_HPP_USE_REFLECT )
  39437. # if 14 <= VULKAN_HPP_CPP_VERSION
  39438. auto
  39439. # else
  39440. std::
  39441. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &, void * const &>
  39442. # endif
  39443. reflect() const VULKAN_HPP_NOEXCEPT
  39444. {
  39445. return std::tie( sType, pNext, handleType, pHostPointer );
  39446. }
  39447. #endif
  39448. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39449. auto operator<=>( ImportMemoryHostPointerInfoEXT const & ) const = default;
  39450. #else
  39451. bool operator==( ImportMemoryHostPointerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39452. {
  39453. # if defined( VULKAN_HPP_USE_REFLECT )
  39454. return this->reflect() == rhs.reflect();
  39455. # else
  39456. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && ( pHostPointer == rhs.pHostPointer );
  39457. # endif
  39458. }
  39459. bool operator!=( ImportMemoryHostPointerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39460. {
  39461. return !operator==( rhs );
  39462. }
  39463. #endif
  39464. public:
  39465. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT;
  39466. const void * pNext = {};
  39467. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  39468. void * pHostPointer = {};
  39469. };
  39470. template <>
  39471. struct CppType<StructureType, StructureType::eImportMemoryHostPointerInfoEXT>
  39472. {
  39473. using Type = ImportMemoryHostPointerInfoEXT;
  39474. };
  39475. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  39476. struct ImportMemoryWin32HandleInfoKHR
  39477. {
  39478. using NativeType = VkImportMemoryWin32HandleInfoKHR;
  39479. static const bool allowDuplicate = false;
  39480. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoKHR;
  39481. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39482. VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR(
  39483. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  39484. HANDLE handle_ = {},
  39485. LPCWSTR name_ = {},
  39486. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39487. : pNext( pNext_ )
  39488. , handleType( handleType_ )
  39489. , handle( handle_ )
  39490. , name( name_ )
  39491. {
  39492. }
  39493. VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39494. ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  39495. : ImportMemoryWin32HandleInfoKHR( *reinterpret_cast<ImportMemoryWin32HandleInfoKHR const *>( &rhs ) )
  39496. {
  39497. }
  39498. ImportMemoryWin32HandleInfoKHR & operator=( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39499. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39500. ImportMemoryWin32HandleInfoKHR & operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  39501. {
  39502. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR const *>( &rhs );
  39503. return *this;
  39504. }
  39505. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39506. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39507. {
  39508. pNext = pNext_;
  39509. return *this;
  39510. }
  39511. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR &
  39512. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  39513. {
  39514. handleType = handleType_;
  39515. return *this;
  39516. }
  39517. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
  39518. {
  39519. handle = handle_;
  39520. return *this;
  39521. }
  39522. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  39523. {
  39524. name = name_;
  39525. return *this;
  39526. }
  39527. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39528. operator VkImportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  39529. {
  39530. return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR *>( this );
  39531. }
  39532. operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  39533. {
  39534. return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR *>( this );
  39535. }
  39536. # if defined( VULKAN_HPP_USE_REFLECT )
  39537. # if 14 <= VULKAN_HPP_CPP_VERSION
  39538. auto
  39539. # else
  39540. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  39541. const void * const &,
  39542. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &,
  39543. HANDLE const &,
  39544. LPCWSTR const &>
  39545. # endif
  39546. reflect() const VULKAN_HPP_NOEXCEPT
  39547. {
  39548. return std::tie( sType, pNext, handleType, handle, name );
  39549. }
  39550. # endif
  39551. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39552. auto operator<=>( ImportMemoryWin32HandleInfoKHR const & ) const = default;
  39553. # else
  39554. bool operator==( ImportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39555. {
  39556. # if defined( VULKAN_HPP_USE_REFLECT )
  39557. return this->reflect() == rhs.reflect();
  39558. # else
  39559. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && ( handle == rhs.handle ) && ( name == rhs.name );
  39560. # endif
  39561. }
  39562. bool operator!=( ImportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  39563. {
  39564. return !operator==( rhs );
  39565. }
  39566. # endif
  39567. public:
  39568. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR;
  39569. const void * pNext = {};
  39570. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  39571. HANDLE handle = {};
  39572. LPCWSTR name = {};
  39573. };
  39574. template <>
  39575. struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoKHR>
  39576. {
  39577. using Type = ImportMemoryWin32HandleInfoKHR;
  39578. };
  39579. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  39580. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  39581. struct ImportMemoryWin32HandleInfoNV
  39582. {
  39583. using NativeType = VkImportMemoryWin32HandleInfoNV;
  39584. static const bool allowDuplicate = false;
  39585. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoNV;
  39586. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39587. VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {},
  39588. HANDLE handle_ = {},
  39589. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39590. : pNext( pNext_ )
  39591. , handleType( handleType_ )
  39592. , handle( handle_ )
  39593. {
  39594. }
  39595. VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39596. ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  39597. : ImportMemoryWin32HandleInfoNV( *reinterpret_cast<ImportMemoryWin32HandleInfoNV const *>( &rhs ) )
  39598. {
  39599. }
  39600. ImportMemoryWin32HandleInfoNV & operator=( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39601. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39602. ImportMemoryWin32HandleInfoNV & operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  39603. {
  39604. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV const *>( &rhs );
  39605. return *this;
  39606. }
  39607. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39608. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39609. {
  39610. pNext = pNext_;
  39611. return *this;
  39612. }
  39613. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV &
  39614. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT
  39615. {
  39616. handleType = handleType_;
  39617. return *this;
  39618. }
  39619. VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
  39620. {
  39621. handle = handle_;
  39622. return *this;
  39623. }
  39624. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39625. operator VkImportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT
  39626. {
  39627. return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV *>( this );
  39628. }
  39629. operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT
  39630. {
  39631. return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV *>( this );
  39632. }
  39633. # if defined( VULKAN_HPP_USE_REFLECT )
  39634. # if 14 <= VULKAN_HPP_CPP_VERSION
  39635. auto
  39636. # else
  39637. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV const &, HANDLE const &>
  39638. # endif
  39639. reflect() const VULKAN_HPP_NOEXCEPT
  39640. {
  39641. return std::tie( sType, pNext, handleType, handle );
  39642. }
  39643. # endif
  39644. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39645. auto operator<=>( ImportMemoryWin32HandleInfoNV const & ) const = default;
  39646. # else
  39647. bool operator==( ImportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  39648. {
  39649. # if defined( VULKAN_HPP_USE_REFLECT )
  39650. return this->reflect() == rhs.reflect();
  39651. # else
  39652. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && ( handle == rhs.handle );
  39653. # endif
  39654. }
  39655. bool operator!=( ImportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  39656. {
  39657. return !operator==( rhs );
  39658. }
  39659. # endif
  39660. public:
  39661. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV;
  39662. const void * pNext = {};
  39663. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {};
  39664. HANDLE handle = {};
  39665. };
  39666. template <>
  39667. struct CppType<StructureType, StructureType::eImportMemoryWin32HandleInfoNV>
  39668. {
  39669. using Type = ImportMemoryWin32HandleInfoNV;
  39670. };
  39671. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  39672. #if defined( VK_USE_PLATFORM_FUCHSIA )
  39673. struct ImportMemoryZirconHandleInfoFUCHSIA
  39674. {
  39675. using NativeType = VkImportMemoryZirconHandleInfoFUCHSIA;
  39676. static const bool allowDuplicate = false;
  39677. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryZirconHandleInfoFUCHSIA;
  39678. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39679. VULKAN_HPP_CONSTEXPR ImportMemoryZirconHandleInfoFUCHSIA(
  39680. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  39681. zx_handle_t handle_ = {},
  39682. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39683. : pNext( pNext_ )
  39684. , handleType( handleType_ )
  39685. , handle( handle_ )
  39686. {
  39687. }
  39688. VULKAN_HPP_CONSTEXPR ImportMemoryZirconHandleInfoFUCHSIA( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39689. ImportMemoryZirconHandleInfoFUCHSIA( VkImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  39690. : ImportMemoryZirconHandleInfoFUCHSIA( *reinterpret_cast<ImportMemoryZirconHandleInfoFUCHSIA const *>( &rhs ) )
  39691. {
  39692. }
  39693. ImportMemoryZirconHandleInfoFUCHSIA & operator=( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39694. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39695. ImportMemoryZirconHandleInfoFUCHSIA & operator=( VkImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  39696. {
  39697. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA const *>( &rhs );
  39698. return *this;
  39699. }
  39700. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39701. VULKAN_HPP_CONSTEXPR_14 ImportMemoryZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39702. {
  39703. pNext = pNext_;
  39704. return *this;
  39705. }
  39706. VULKAN_HPP_CONSTEXPR_14 ImportMemoryZirconHandleInfoFUCHSIA &
  39707. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  39708. {
  39709. handleType = handleType_;
  39710. return *this;
  39711. }
  39712. VULKAN_HPP_CONSTEXPR_14 ImportMemoryZirconHandleInfoFUCHSIA & setHandle( zx_handle_t handle_ ) VULKAN_HPP_NOEXCEPT
  39713. {
  39714. handle = handle_;
  39715. return *this;
  39716. }
  39717. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39718. operator VkImportMemoryZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  39719. {
  39720. return *reinterpret_cast<const VkImportMemoryZirconHandleInfoFUCHSIA *>( this );
  39721. }
  39722. operator VkImportMemoryZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  39723. {
  39724. return *reinterpret_cast<VkImportMemoryZirconHandleInfoFUCHSIA *>( this );
  39725. }
  39726. # if defined( VULKAN_HPP_USE_REFLECT )
  39727. # if 14 <= VULKAN_HPP_CPP_VERSION
  39728. auto
  39729. # else
  39730. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  39731. const void * const &,
  39732. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &,
  39733. zx_handle_t const &>
  39734. # endif
  39735. reflect() const VULKAN_HPP_NOEXCEPT
  39736. {
  39737. return std::tie( sType, pNext, handleType, handle );
  39738. }
  39739. # endif
  39740. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39741. std::strong_ordering operator<=>( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  39742. {
  39743. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  39744. return cmp;
  39745. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  39746. return cmp;
  39747. if ( auto cmp = handleType <=> rhs.handleType; cmp != 0 )
  39748. return cmp;
  39749. if ( auto cmp = memcmp( &handle, &rhs.handle, sizeof( zx_handle_t ) ); cmp != 0 )
  39750. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  39751. return std::strong_ordering::equivalent;
  39752. }
  39753. # endif
  39754. bool operator==( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  39755. {
  39756. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) &&
  39757. ( memcmp( &handle, &rhs.handle, sizeof( zx_handle_t ) ) == 0 );
  39758. }
  39759. bool operator!=( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  39760. {
  39761. return !operator==( rhs );
  39762. }
  39763. public:
  39764. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryZirconHandleInfoFUCHSIA;
  39765. const void * pNext = {};
  39766. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  39767. zx_handle_t handle = {};
  39768. };
  39769. template <>
  39770. struct CppType<StructureType, StructureType::eImportMemoryZirconHandleInfoFUCHSIA>
  39771. {
  39772. using Type = ImportMemoryZirconHandleInfoFUCHSIA;
  39773. };
  39774. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  39775. #if defined( VK_USE_PLATFORM_METAL_EXT )
  39776. struct ImportMetalBufferInfoEXT
  39777. {
  39778. using NativeType = VkImportMetalBufferInfoEXT;
  39779. static const bool allowDuplicate = false;
  39780. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalBufferInfoEXT;
  39781. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39782. VULKAN_HPP_CONSTEXPR ImportMetalBufferInfoEXT( MTLBuffer_id mtlBuffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39783. : pNext( pNext_ )
  39784. , mtlBuffer( mtlBuffer_ )
  39785. {
  39786. }
  39787. VULKAN_HPP_CONSTEXPR ImportMetalBufferInfoEXT( ImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39788. ImportMetalBufferInfoEXT( VkImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39789. : ImportMetalBufferInfoEXT( *reinterpret_cast<ImportMetalBufferInfoEXT const *>( &rhs ) )
  39790. {
  39791. }
  39792. ImportMetalBufferInfoEXT & operator=( ImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39793. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39794. ImportMetalBufferInfoEXT & operator=( VkImportMetalBufferInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39795. {
  39796. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT const *>( &rhs );
  39797. return *this;
  39798. }
  39799. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39800. VULKAN_HPP_CONSTEXPR_14 ImportMetalBufferInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39801. {
  39802. pNext = pNext_;
  39803. return *this;
  39804. }
  39805. VULKAN_HPP_CONSTEXPR_14 ImportMetalBufferInfoEXT & setMtlBuffer( MTLBuffer_id mtlBuffer_ ) VULKAN_HPP_NOEXCEPT
  39806. {
  39807. mtlBuffer = mtlBuffer_;
  39808. return *this;
  39809. }
  39810. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39811. operator VkImportMetalBufferInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  39812. {
  39813. return *reinterpret_cast<const VkImportMetalBufferInfoEXT *>( this );
  39814. }
  39815. operator VkImportMetalBufferInfoEXT &() VULKAN_HPP_NOEXCEPT
  39816. {
  39817. return *reinterpret_cast<VkImportMetalBufferInfoEXT *>( this );
  39818. }
  39819. # if defined( VULKAN_HPP_USE_REFLECT )
  39820. # if 14 <= VULKAN_HPP_CPP_VERSION
  39821. auto
  39822. # else
  39823. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, MTLBuffer_id const &>
  39824. # endif
  39825. reflect() const VULKAN_HPP_NOEXCEPT
  39826. {
  39827. return std::tie( sType, pNext, mtlBuffer );
  39828. }
  39829. # endif
  39830. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39831. auto operator<=>( ImportMetalBufferInfoEXT const & ) const = default;
  39832. # else
  39833. bool operator==( ImportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39834. {
  39835. # if defined( VULKAN_HPP_USE_REFLECT )
  39836. return this->reflect() == rhs.reflect();
  39837. # else
  39838. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mtlBuffer == rhs.mtlBuffer );
  39839. # endif
  39840. }
  39841. bool operator!=( ImportMetalBufferInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39842. {
  39843. return !operator==( rhs );
  39844. }
  39845. # endif
  39846. public:
  39847. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalBufferInfoEXT;
  39848. const void * pNext = {};
  39849. MTLBuffer_id mtlBuffer = {};
  39850. };
  39851. template <>
  39852. struct CppType<StructureType, StructureType::eImportMetalBufferInfoEXT>
  39853. {
  39854. using Type = ImportMetalBufferInfoEXT;
  39855. };
  39856. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  39857. #if defined( VK_USE_PLATFORM_METAL_EXT )
  39858. struct ImportMetalIOSurfaceInfoEXT
  39859. {
  39860. using NativeType = VkImportMetalIOSurfaceInfoEXT;
  39861. static const bool allowDuplicate = false;
  39862. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalIoSurfaceInfoEXT;
  39863. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39864. VULKAN_HPP_CONSTEXPR ImportMetalIOSurfaceInfoEXT( IOSurfaceRef ioSurface_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39865. : pNext( pNext_ )
  39866. , ioSurface( ioSurface_ )
  39867. {
  39868. }
  39869. VULKAN_HPP_CONSTEXPR ImportMetalIOSurfaceInfoEXT( ImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39870. ImportMetalIOSurfaceInfoEXT( VkImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39871. : ImportMetalIOSurfaceInfoEXT( *reinterpret_cast<ImportMetalIOSurfaceInfoEXT const *>( &rhs ) )
  39872. {
  39873. }
  39874. ImportMetalIOSurfaceInfoEXT & operator=( ImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39875. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39876. ImportMetalIOSurfaceInfoEXT & operator=( VkImportMetalIOSurfaceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39877. {
  39878. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT const *>( &rhs );
  39879. return *this;
  39880. }
  39881. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39882. VULKAN_HPP_CONSTEXPR_14 ImportMetalIOSurfaceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39883. {
  39884. pNext = pNext_;
  39885. return *this;
  39886. }
  39887. VULKAN_HPP_CONSTEXPR_14 ImportMetalIOSurfaceInfoEXT & setIoSurface( IOSurfaceRef ioSurface_ ) VULKAN_HPP_NOEXCEPT
  39888. {
  39889. ioSurface = ioSurface_;
  39890. return *this;
  39891. }
  39892. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39893. operator VkImportMetalIOSurfaceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  39894. {
  39895. return *reinterpret_cast<const VkImportMetalIOSurfaceInfoEXT *>( this );
  39896. }
  39897. operator VkImportMetalIOSurfaceInfoEXT &() VULKAN_HPP_NOEXCEPT
  39898. {
  39899. return *reinterpret_cast<VkImportMetalIOSurfaceInfoEXT *>( this );
  39900. }
  39901. # if defined( VULKAN_HPP_USE_REFLECT )
  39902. # if 14 <= VULKAN_HPP_CPP_VERSION
  39903. auto
  39904. # else
  39905. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, IOSurfaceRef const &>
  39906. # endif
  39907. reflect() const VULKAN_HPP_NOEXCEPT
  39908. {
  39909. return std::tie( sType, pNext, ioSurface );
  39910. }
  39911. # endif
  39912. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39913. auto operator<=>( ImportMetalIOSurfaceInfoEXT const & ) const = default;
  39914. # else
  39915. bool operator==( ImportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39916. {
  39917. # if defined( VULKAN_HPP_USE_REFLECT )
  39918. return this->reflect() == rhs.reflect();
  39919. # else
  39920. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ioSurface == rhs.ioSurface );
  39921. # endif
  39922. }
  39923. bool operator!=( ImportMetalIOSurfaceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39924. {
  39925. return !operator==( rhs );
  39926. }
  39927. # endif
  39928. public:
  39929. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalIoSurfaceInfoEXT;
  39930. const void * pNext = {};
  39931. IOSurfaceRef ioSurface = {};
  39932. };
  39933. template <>
  39934. struct CppType<StructureType, StructureType::eImportMetalIoSurfaceInfoEXT>
  39935. {
  39936. using Type = ImportMetalIOSurfaceInfoEXT;
  39937. };
  39938. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  39939. #if defined( VK_USE_PLATFORM_METAL_EXT )
  39940. struct ImportMetalSharedEventInfoEXT
  39941. {
  39942. using NativeType = VkImportMetalSharedEventInfoEXT;
  39943. static const bool allowDuplicate = false;
  39944. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalSharedEventInfoEXT;
  39945. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  39946. VULKAN_HPP_CONSTEXPR ImportMetalSharedEventInfoEXT( MTLSharedEvent_id mtlSharedEvent_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  39947. : pNext( pNext_ )
  39948. , mtlSharedEvent( mtlSharedEvent_ )
  39949. {
  39950. }
  39951. VULKAN_HPP_CONSTEXPR ImportMetalSharedEventInfoEXT( ImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39952. ImportMetalSharedEventInfoEXT( VkImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39953. : ImportMetalSharedEventInfoEXT( *reinterpret_cast<ImportMetalSharedEventInfoEXT const *>( &rhs ) )
  39954. {
  39955. }
  39956. ImportMetalSharedEventInfoEXT & operator=( ImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  39957. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  39958. ImportMetalSharedEventInfoEXT & operator=( VkImportMetalSharedEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  39959. {
  39960. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT const *>( &rhs );
  39961. return *this;
  39962. }
  39963. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  39964. VULKAN_HPP_CONSTEXPR_14 ImportMetalSharedEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  39965. {
  39966. pNext = pNext_;
  39967. return *this;
  39968. }
  39969. VULKAN_HPP_CONSTEXPR_14 ImportMetalSharedEventInfoEXT & setMtlSharedEvent( MTLSharedEvent_id mtlSharedEvent_ ) VULKAN_HPP_NOEXCEPT
  39970. {
  39971. mtlSharedEvent = mtlSharedEvent_;
  39972. return *this;
  39973. }
  39974. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  39975. operator VkImportMetalSharedEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  39976. {
  39977. return *reinterpret_cast<const VkImportMetalSharedEventInfoEXT *>( this );
  39978. }
  39979. operator VkImportMetalSharedEventInfoEXT &() VULKAN_HPP_NOEXCEPT
  39980. {
  39981. return *reinterpret_cast<VkImportMetalSharedEventInfoEXT *>( this );
  39982. }
  39983. # if defined( VULKAN_HPP_USE_REFLECT )
  39984. # if 14 <= VULKAN_HPP_CPP_VERSION
  39985. auto
  39986. # else
  39987. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, MTLSharedEvent_id const &>
  39988. # endif
  39989. reflect() const VULKAN_HPP_NOEXCEPT
  39990. {
  39991. return std::tie( sType, pNext, mtlSharedEvent );
  39992. }
  39993. # endif
  39994. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  39995. auto operator<=>( ImportMetalSharedEventInfoEXT const & ) const = default;
  39996. # else
  39997. bool operator==( ImportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  39998. {
  39999. # if defined( VULKAN_HPP_USE_REFLECT )
  40000. return this->reflect() == rhs.reflect();
  40001. # else
  40002. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mtlSharedEvent == rhs.mtlSharedEvent );
  40003. # endif
  40004. }
  40005. bool operator!=( ImportMetalSharedEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40006. {
  40007. return !operator==( rhs );
  40008. }
  40009. # endif
  40010. public:
  40011. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalSharedEventInfoEXT;
  40012. const void * pNext = {};
  40013. MTLSharedEvent_id mtlSharedEvent = {};
  40014. };
  40015. template <>
  40016. struct CppType<StructureType, StructureType::eImportMetalSharedEventInfoEXT>
  40017. {
  40018. using Type = ImportMetalSharedEventInfoEXT;
  40019. };
  40020. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  40021. #if defined( VK_USE_PLATFORM_METAL_EXT )
  40022. struct ImportMetalTextureInfoEXT
  40023. {
  40024. using NativeType = VkImportMetalTextureInfoEXT;
  40025. static const bool allowDuplicate = true;
  40026. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMetalTextureInfoEXT;
  40027. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40028. VULKAN_HPP_CONSTEXPR ImportMetalTextureInfoEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor,
  40029. MTLTexture_id mtlTexture_ = {},
  40030. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40031. : pNext( pNext_ )
  40032. , plane( plane_ )
  40033. , mtlTexture( mtlTexture_ )
  40034. {
  40035. }
  40036. VULKAN_HPP_CONSTEXPR ImportMetalTextureInfoEXT( ImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40037. ImportMetalTextureInfoEXT( VkImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40038. : ImportMetalTextureInfoEXT( *reinterpret_cast<ImportMetalTextureInfoEXT const *>( &rhs ) )
  40039. {
  40040. }
  40041. ImportMetalTextureInfoEXT & operator=( ImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40042. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40043. ImportMetalTextureInfoEXT & operator=( VkImportMetalTextureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  40044. {
  40045. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT const *>( &rhs );
  40046. return *this;
  40047. }
  40048. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40049. VULKAN_HPP_CONSTEXPR_14 ImportMetalTextureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40050. {
  40051. pNext = pNext_;
  40052. return *this;
  40053. }
  40054. VULKAN_HPP_CONSTEXPR_14 ImportMetalTextureInfoEXT & setPlane( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane_ ) VULKAN_HPP_NOEXCEPT
  40055. {
  40056. plane = plane_;
  40057. return *this;
  40058. }
  40059. VULKAN_HPP_CONSTEXPR_14 ImportMetalTextureInfoEXT & setMtlTexture( MTLTexture_id mtlTexture_ ) VULKAN_HPP_NOEXCEPT
  40060. {
  40061. mtlTexture = mtlTexture_;
  40062. return *this;
  40063. }
  40064. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40065. operator VkImportMetalTextureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  40066. {
  40067. return *reinterpret_cast<const VkImportMetalTextureInfoEXT *>( this );
  40068. }
  40069. operator VkImportMetalTextureInfoEXT &() VULKAN_HPP_NOEXCEPT
  40070. {
  40071. return *reinterpret_cast<VkImportMetalTextureInfoEXT *>( this );
  40072. }
  40073. # if defined( VULKAN_HPP_USE_REFLECT )
  40074. # if 14 <= VULKAN_HPP_CPP_VERSION
  40075. auto
  40076. # else
  40077. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageAspectFlagBits const &, MTLTexture_id const &>
  40078. # endif
  40079. reflect() const VULKAN_HPP_NOEXCEPT
  40080. {
  40081. return std::tie( sType, pNext, plane, mtlTexture );
  40082. }
  40083. # endif
  40084. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40085. auto operator<=>( ImportMetalTextureInfoEXT const & ) const = default;
  40086. # else
  40087. bool operator==( ImportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40088. {
  40089. # if defined( VULKAN_HPP_USE_REFLECT )
  40090. return this->reflect() == rhs.reflect();
  40091. # else
  40092. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( plane == rhs.plane ) && ( mtlTexture == rhs.mtlTexture );
  40093. # endif
  40094. }
  40095. bool operator!=( ImportMetalTextureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  40096. {
  40097. return !operator==( rhs );
  40098. }
  40099. # endif
  40100. public:
  40101. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMetalTextureInfoEXT;
  40102. const void * pNext = {};
  40103. VULKAN_HPP_NAMESPACE::ImageAspectFlagBits plane = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor;
  40104. MTLTexture_id mtlTexture = {};
  40105. };
  40106. template <>
  40107. struct CppType<StructureType, StructureType::eImportMetalTextureInfoEXT>
  40108. {
  40109. using Type = ImportMetalTextureInfoEXT;
  40110. };
  40111. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  40112. #if defined( VK_USE_PLATFORM_SCREEN_QNX )
  40113. struct ImportScreenBufferInfoQNX
  40114. {
  40115. using NativeType = VkImportScreenBufferInfoQNX;
  40116. static const bool allowDuplicate = false;
  40117. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportScreenBufferInfoQNX;
  40118. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40119. VULKAN_HPP_CONSTEXPR ImportScreenBufferInfoQNX( struct _screen_buffer * buffer_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40120. : pNext( pNext_ )
  40121. , buffer( buffer_ )
  40122. {
  40123. }
  40124. VULKAN_HPP_CONSTEXPR ImportScreenBufferInfoQNX( ImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40125. ImportScreenBufferInfoQNX( VkImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  40126. : ImportScreenBufferInfoQNX( *reinterpret_cast<ImportScreenBufferInfoQNX const *>( &rhs ) )
  40127. {
  40128. }
  40129. ImportScreenBufferInfoQNX & operator=( ImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40130. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40131. ImportScreenBufferInfoQNX & operator=( VkImportScreenBufferInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  40132. {
  40133. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX const *>( &rhs );
  40134. return *this;
  40135. }
  40136. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40137. VULKAN_HPP_CONSTEXPR_14 ImportScreenBufferInfoQNX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40138. {
  40139. pNext = pNext_;
  40140. return *this;
  40141. }
  40142. VULKAN_HPP_CONSTEXPR_14 ImportScreenBufferInfoQNX & setBuffer( struct _screen_buffer * buffer_ ) VULKAN_HPP_NOEXCEPT
  40143. {
  40144. buffer = buffer_;
  40145. return *this;
  40146. }
  40147. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40148. operator VkImportScreenBufferInfoQNX const &() const VULKAN_HPP_NOEXCEPT
  40149. {
  40150. return *reinterpret_cast<const VkImportScreenBufferInfoQNX *>( this );
  40151. }
  40152. operator VkImportScreenBufferInfoQNX &() VULKAN_HPP_NOEXCEPT
  40153. {
  40154. return *reinterpret_cast<VkImportScreenBufferInfoQNX *>( this );
  40155. }
  40156. # if defined( VULKAN_HPP_USE_REFLECT )
  40157. # if 14 <= VULKAN_HPP_CPP_VERSION
  40158. auto
  40159. # else
  40160. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, struct _screen_buffer * const &>
  40161. # endif
  40162. reflect() const VULKAN_HPP_NOEXCEPT
  40163. {
  40164. return std::tie( sType, pNext, buffer );
  40165. }
  40166. # endif
  40167. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40168. auto operator<=>( ImportScreenBufferInfoQNX const & ) const = default;
  40169. # else
  40170. bool operator==( ImportScreenBufferInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  40171. {
  40172. # if defined( VULKAN_HPP_USE_REFLECT )
  40173. return this->reflect() == rhs.reflect();
  40174. # else
  40175. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer );
  40176. # endif
  40177. }
  40178. bool operator!=( ImportScreenBufferInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  40179. {
  40180. return !operator==( rhs );
  40181. }
  40182. # endif
  40183. public:
  40184. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportScreenBufferInfoQNX;
  40185. const void * pNext = {};
  40186. struct _screen_buffer * buffer = {};
  40187. };
  40188. template <>
  40189. struct CppType<StructureType, StructureType::eImportScreenBufferInfoQNX>
  40190. {
  40191. using Type = ImportScreenBufferInfoQNX;
  40192. };
  40193. #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
  40194. struct ImportSemaphoreFdInfoKHR
  40195. {
  40196. using NativeType = VkImportSemaphoreFdInfoKHR;
  40197. static const bool allowDuplicate = false;
  40198. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreFdInfoKHR;
  40199. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40200. VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR(
  40201. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  40202. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {},
  40203. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  40204. int fd_ = {},
  40205. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40206. : pNext( pNext_ )
  40207. , semaphore( semaphore_ )
  40208. , flags( flags_ )
  40209. , handleType( handleType_ )
  40210. , fd( fd_ )
  40211. {
  40212. }
  40213. VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40214. ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  40215. : ImportSemaphoreFdInfoKHR( *reinterpret_cast<ImportSemaphoreFdInfoKHR const *>( &rhs ) )
  40216. {
  40217. }
  40218. ImportSemaphoreFdInfoKHR & operator=( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40219. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40220. ImportSemaphoreFdInfoKHR & operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  40221. {
  40222. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR const *>( &rhs );
  40223. return *this;
  40224. }
  40225. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40226. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40227. {
  40228. pNext = pNext_;
  40229. return *this;
  40230. }
  40231. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  40232. {
  40233. semaphore = semaphore_;
  40234. return *this;
  40235. }
  40236. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
  40237. {
  40238. flags = flags_;
  40239. return *this;
  40240. }
  40241. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR &
  40242. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  40243. {
  40244. handleType = handleType_;
  40245. return *this;
  40246. }
  40247. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT
  40248. {
  40249. fd = fd_;
  40250. return *this;
  40251. }
  40252. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40253. operator VkImportSemaphoreFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  40254. {
  40255. return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( this );
  40256. }
  40257. operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  40258. {
  40259. return *reinterpret_cast<VkImportSemaphoreFdInfoKHR *>( this );
  40260. }
  40261. #if defined( VULKAN_HPP_USE_REFLECT )
  40262. # if 14 <= VULKAN_HPP_CPP_VERSION
  40263. auto
  40264. # else
  40265. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  40266. const void * const &,
  40267. VULKAN_HPP_NAMESPACE::Semaphore const &,
  40268. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags const &,
  40269. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &,
  40270. int const &>
  40271. # endif
  40272. reflect() const VULKAN_HPP_NOEXCEPT
  40273. {
  40274. return std::tie( sType, pNext, semaphore, flags, handleType, fd );
  40275. }
  40276. #endif
  40277. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40278. auto operator<=>( ImportSemaphoreFdInfoKHR const & ) const = default;
  40279. #else
  40280. bool operator==( ImportSemaphoreFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  40281. {
  40282. # if defined( VULKAN_HPP_USE_REFLECT )
  40283. return this->reflect() == rhs.reflect();
  40284. # else
  40285. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( flags == rhs.flags ) && ( handleType == rhs.handleType ) &&
  40286. ( fd == rhs.fd );
  40287. # endif
  40288. }
  40289. bool operator!=( ImportSemaphoreFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  40290. {
  40291. return !operator==( rhs );
  40292. }
  40293. #endif
  40294. public:
  40295. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR;
  40296. const void * pNext = {};
  40297. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  40298. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
  40299. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  40300. int fd = {};
  40301. };
  40302. template <>
  40303. struct CppType<StructureType, StructureType::eImportSemaphoreFdInfoKHR>
  40304. {
  40305. using Type = ImportSemaphoreFdInfoKHR;
  40306. };
  40307. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  40308. struct ImportSemaphoreWin32HandleInfoKHR
  40309. {
  40310. using NativeType = VkImportSemaphoreWin32HandleInfoKHR;
  40311. static const bool allowDuplicate = false;
  40312. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
  40313. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40314. VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR(
  40315. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  40316. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {},
  40317. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  40318. HANDLE handle_ = {},
  40319. LPCWSTR name_ = {},
  40320. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40321. : pNext( pNext_ )
  40322. , semaphore( semaphore_ )
  40323. , flags( flags_ )
  40324. , handleType( handleType_ )
  40325. , handle( handle_ )
  40326. , name( name_ )
  40327. {
  40328. }
  40329. VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40330. ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  40331. : ImportSemaphoreWin32HandleInfoKHR( *reinterpret_cast<ImportSemaphoreWin32HandleInfoKHR const *>( &rhs ) )
  40332. {
  40333. }
  40334. ImportSemaphoreWin32HandleInfoKHR & operator=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40335. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40336. ImportSemaphoreWin32HandleInfoKHR & operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  40337. {
  40338. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR const *>( &rhs );
  40339. return *this;
  40340. }
  40341. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40342. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40343. {
  40344. pNext = pNext_;
  40345. return *this;
  40346. }
  40347. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  40348. {
  40349. semaphore = semaphore_;
  40350. return *this;
  40351. }
  40352. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
  40353. {
  40354. flags = flags_;
  40355. return *this;
  40356. }
  40357. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR &
  40358. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  40359. {
  40360. handleType = handleType_;
  40361. return *this;
  40362. }
  40363. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT
  40364. {
  40365. handle = handle_;
  40366. return *this;
  40367. }
  40368. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT
  40369. {
  40370. name = name_;
  40371. return *this;
  40372. }
  40373. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40374. operator VkImportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  40375. {
  40376. return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( this );
  40377. }
  40378. operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  40379. {
  40380. return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR *>( this );
  40381. }
  40382. # if defined( VULKAN_HPP_USE_REFLECT )
  40383. # if 14 <= VULKAN_HPP_CPP_VERSION
  40384. auto
  40385. # else
  40386. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  40387. const void * const &,
  40388. VULKAN_HPP_NAMESPACE::Semaphore const &,
  40389. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags const &,
  40390. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &,
  40391. HANDLE const &,
  40392. LPCWSTR const &>
  40393. # endif
  40394. reflect() const VULKAN_HPP_NOEXCEPT
  40395. {
  40396. return std::tie( sType, pNext, semaphore, flags, handleType, handle, name );
  40397. }
  40398. # endif
  40399. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40400. auto operator<=>( ImportSemaphoreWin32HandleInfoKHR const & ) const = default;
  40401. # else
  40402. bool operator==( ImportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  40403. {
  40404. # if defined( VULKAN_HPP_USE_REFLECT )
  40405. return this->reflect() == rhs.reflect();
  40406. # else
  40407. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( flags == rhs.flags ) && ( handleType == rhs.handleType ) &&
  40408. ( handle == rhs.handle ) && ( name == rhs.name );
  40409. # endif
  40410. }
  40411. bool operator!=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  40412. {
  40413. return !operator==( rhs );
  40414. }
  40415. # endif
  40416. public:
  40417. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
  40418. const void * pNext = {};
  40419. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  40420. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
  40421. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  40422. HANDLE handle = {};
  40423. LPCWSTR name = {};
  40424. };
  40425. template <>
  40426. struct CppType<StructureType, StructureType::eImportSemaphoreWin32HandleInfoKHR>
  40427. {
  40428. using Type = ImportSemaphoreWin32HandleInfoKHR;
  40429. };
  40430. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  40431. #if defined( VK_USE_PLATFORM_FUCHSIA )
  40432. struct ImportSemaphoreZirconHandleInfoFUCHSIA
  40433. {
  40434. using NativeType = VkImportSemaphoreZirconHandleInfoFUCHSIA;
  40435. static const bool allowDuplicate = false;
  40436. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA;
  40437. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40438. VULKAN_HPP_CONSTEXPR ImportSemaphoreZirconHandleInfoFUCHSIA(
  40439. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  40440. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {},
  40441. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  40442. zx_handle_t zirconHandle_ = {},
  40443. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40444. : pNext( pNext_ )
  40445. , semaphore( semaphore_ )
  40446. , flags( flags_ )
  40447. , handleType( handleType_ )
  40448. , zirconHandle( zirconHandle_ )
  40449. {
  40450. }
  40451. VULKAN_HPP_CONSTEXPR ImportSemaphoreZirconHandleInfoFUCHSIA( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40452. ImportSemaphoreZirconHandleInfoFUCHSIA( VkImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  40453. : ImportSemaphoreZirconHandleInfoFUCHSIA( *reinterpret_cast<ImportSemaphoreZirconHandleInfoFUCHSIA const *>( &rhs ) )
  40454. {
  40455. }
  40456. ImportSemaphoreZirconHandleInfoFUCHSIA & operator=( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40457. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40458. ImportSemaphoreZirconHandleInfoFUCHSIA & operator=( VkImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  40459. {
  40460. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA const *>( &rhs );
  40461. return *this;
  40462. }
  40463. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40464. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40465. {
  40466. pNext = pNext_;
  40467. return *this;
  40468. }
  40469. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  40470. {
  40471. semaphore = semaphore_;
  40472. return *this;
  40473. }
  40474. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT
  40475. {
  40476. flags = flags_;
  40477. return *this;
  40478. }
  40479. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA &
  40480. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  40481. {
  40482. handleType = handleType_;
  40483. return *this;
  40484. }
  40485. VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & setZirconHandle( zx_handle_t zirconHandle_ ) VULKAN_HPP_NOEXCEPT
  40486. {
  40487. zirconHandle = zirconHandle_;
  40488. return *this;
  40489. }
  40490. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40491. operator VkImportSemaphoreZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  40492. {
  40493. return *reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( this );
  40494. }
  40495. operator VkImportSemaphoreZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  40496. {
  40497. return *reinterpret_cast<VkImportSemaphoreZirconHandleInfoFUCHSIA *>( this );
  40498. }
  40499. # if defined( VULKAN_HPP_USE_REFLECT )
  40500. # if 14 <= VULKAN_HPP_CPP_VERSION
  40501. auto
  40502. # else
  40503. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  40504. const void * const &,
  40505. VULKAN_HPP_NAMESPACE::Semaphore const &,
  40506. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags const &,
  40507. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &,
  40508. zx_handle_t const &>
  40509. # endif
  40510. reflect() const VULKAN_HPP_NOEXCEPT
  40511. {
  40512. return std::tie( sType, pNext, semaphore, flags, handleType, zirconHandle );
  40513. }
  40514. # endif
  40515. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40516. std::strong_ordering operator<=>( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  40517. {
  40518. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  40519. return cmp;
  40520. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  40521. return cmp;
  40522. if ( auto cmp = semaphore <=> rhs.semaphore; cmp != 0 )
  40523. return cmp;
  40524. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  40525. return cmp;
  40526. if ( auto cmp = handleType <=> rhs.handleType; cmp != 0 )
  40527. return cmp;
  40528. if ( auto cmp = memcmp( &zirconHandle, &rhs.zirconHandle, sizeof( zx_handle_t ) ); cmp != 0 )
  40529. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  40530. return std::strong_ordering::equivalent;
  40531. }
  40532. # endif
  40533. bool operator==( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  40534. {
  40535. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( flags == rhs.flags ) && ( handleType == rhs.handleType ) &&
  40536. ( memcmp( &zirconHandle, &rhs.zirconHandle, sizeof( zx_handle_t ) ) == 0 );
  40537. }
  40538. bool operator!=( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  40539. {
  40540. return !operator==( rhs );
  40541. }
  40542. public:
  40543. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA;
  40544. const void * pNext = {};
  40545. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  40546. VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {};
  40547. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  40548. zx_handle_t zirconHandle = {};
  40549. };
  40550. template <>
  40551. struct CppType<StructureType, StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA>
  40552. {
  40553. using Type = ImportSemaphoreZirconHandleInfoFUCHSIA;
  40554. };
  40555. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  40556. struct IndirectCommandsLayoutTokenNV
  40557. {
  40558. using NativeType = VkIndirectCommandsLayoutTokenNV;
  40559. static const bool allowDuplicate = false;
  40560. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutTokenNV;
  40561. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40562. VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV(
  40563. VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup,
  40564. uint32_t stream_ = {},
  40565. uint32_t offset_ = {},
  40566. uint32_t vertexBindingUnit_ = {},
  40567. VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ = {},
  40568. VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ = {},
  40569. VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ = {},
  40570. uint32_t pushconstantOffset_ = {},
  40571. uint32_t pushconstantSize_ = {},
  40572. VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ = {},
  40573. uint32_t indexTypeCount_ = {},
  40574. const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes_ = {},
  40575. const uint32_t * pIndexTypeValues_ = {},
  40576. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40577. : pNext( pNext_ )
  40578. , tokenType( tokenType_ )
  40579. , stream( stream_ )
  40580. , offset( offset_ )
  40581. , vertexBindingUnit( vertexBindingUnit_ )
  40582. , vertexDynamicStride( vertexDynamicStride_ )
  40583. , pushconstantPipelineLayout( pushconstantPipelineLayout_ )
  40584. , pushconstantShaderStageFlags( pushconstantShaderStageFlags_ )
  40585. , pushconstantOffset( pushconstantOffset_ )
  40586. , pushconstantSize( pushconstantSize_ )
  40587. , indirectStateFlags( indirectStateFlags_ )
  40588. , indexTypeCount( indexTypeCount_ )
  40589. , pIndexTypes( pIndexTypes_ )
  40590. , pIndexTypeValues( pIndexTypeValues_ )
  40591. {
  40592. }
  40593. VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40594. IndirectCommandsLayoutTokenNV( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40595. : IndirectCommandsLayoutTokenNV( *reinterpret_cast<IndirectCommandsLayoutTokenNV const *>( &rhs ) )
  40596. {
  40597. }
  40598. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  40599. IndirectCommandsLayoutTokenNV( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_,
  40600. uint32_t stream_,
  40601. uint32_t offset_,
  40602. uint32_t vertexBindingUnit_,
  40603. VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_,
  40604. VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_,
  40605. VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_,
  40606. uint32_t pushconstantOffset_,
  40607. uint32_t pushconstantSize_,
  40608. VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_,
  40609. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_,
  40610. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ = {},
  40611. const void * pNext_ = nullptr )
  40612. : pNext( pNext_ )
  40613. , tokenType( tokenType_ )
  40614. , stream( stream_ )
  40615. , offset( offset_ )
  40616. , vertexBindingUnit( vertexBindingUnit_ )
  40617. , vertexDynamicStride( vertexDynamicStride_ )
  40618. , pushconstantPipelineLayout( pushconstantPipelineLayout_ )
  40619. , pushconstantShaderStageFlags( pushconstantShaderStageFlags_ )
  40620. , pushconstantOffset( pushconstantOffset_ )
  40621. , pushconstantSize( pushconstantSize_ )
  40622. , indirectStateFlags( indirectStateFlags_ )
  40623. , indexTypeCount( static_cast<uint32_t>( indexTypes_.size() ) )
  40624. , pIndexTypes( indexTypes_.data() )
  40625. , pIndexTypeValues( indexTypeValues_.data() )
  40626. {
  40627. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  40628. VULKAN_HPP_ASSERT( indexTypes_.size() == indexTypeValues_.size() );
  40629. # else
  40630. if ( indexTypes_.size() != indexTypeValues_.size() )
  40631. {
  40632. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  40633. "::IndirectCommandsLayoutTokenNV::IndirectCommandsLayoutTokenNV: indexTypes_.size() != indexTypeValues_.size()" );
  40634. }
  40635. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  40636. }
  40637. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  40638. IndirectCommandsLayoutTokenNV & operator=( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40639. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40640. IndirectCommandsLayoutTokenNV & operator=( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40641. {
  40642. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV const *>( &rhs );
  40643. return *this;
  40644. }
  40645. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40646. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40647. {
  40648. pNext = pNext_;
  40649. return *this;
  40650. }
  40651. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ ) VULKAN_HPP_NOEXCEPT
  40652. {
  40653. tokenType = tokenType_;
  40654. return *this;
  40655. }
  40656. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setStream( uint32_t stream_ ) VULKAN_HPP_NOEXCEPT
  40657. {
  40658. stream = stream_;
  40659. return *this;
  40660. }
  40661. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
  40662. {
  40663. offset = offset_;
  40664. return *this;
  40665. }
  40666. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT
  40667. {
  40668. vertexBindingUnit = vertexBindingUnit_;
  40669. return *this;
  40670. }
  40671. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setVertexDynamicStride( VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ ) VULKAN_HPP_NOEXCEPT
  40672. {
  40673. vertexDynamicStride = vertexDynamicStride_;
  40674. return *this;
  40675. }
  40676. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV &
  40677. setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
  40678. {
  40679. pushconstantPipelineLayout = pushconstantPipelineLayout_;
  40680. return *this;
  40681. }
  40682. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV &
  40683. setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT
  40684. {
  40685. pushconstantShaderStageFlags = pushconstantShaderStageFlags_;
  40686. return *this;
  40687. }
  40688. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPushconstantOffset( uint32_t pushconstantOffset_ ) VULKAN_HPP_NOEXCEPT
  40689. {
  40690. pushconstantOffset = pushconstantOffset_;
  40691. return *this;
  40692. }
  40693. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPushconstantSize( uint32_t pushconstantSize_ ) VULKAN_HPP_NOEXCEPT
  40694. {
  40695. pushconstantSize = pushconstantSize_;
  40696. return *this;
  40697. }
  40698. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV &
  40699. setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT
  40700. {
  40701. indirectStateFlags = indirectStateFlags_;
  40702. return *this;
  40703. }
  40704. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setIndexTypeCount( uint32_t indexTypeCount_ ) VULKAN_HPP_NOEXCEPT
  40705. {
  40706. indexTypeCount = indexTypeCount_;
  40707. return *this;
  40708. }
  40709. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPIndexTypes( const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes_ ) VULKAN_HPP_NOEXCEPT
  40710. {
  40711. pIndexTypes = pIndexTypes_;
  40712. return *this;
  40713. }
  40714. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  40715. IndirectCommandsLayoutTokenNV &
  40716. setIndexTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndexType> const & indexTypes_ ) VULKAN_HPP_NOEXCEPT
  40717. {
  40718. indexTypeCount = static_cast<uint32_t>( indexTypes_.size() );
  40719. pIndexTypes = indexTypes_.data();
  40720. return *this;
  40721. }
  40722. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  40723. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t * pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT
  40724. {
  40725. pIndexTypeValues = pIndexTypeValues_;
  40726. return *this;
  40727. }
  40728. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  40729. IndirectCommandsLayoutTokenNV &
  40730. setIndexTypeValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & indexTypeValues_ ) VULKAN_HPP_NOEXCEPT
  40731. {
  40732. indexTypeCount = static_cast<uint32_t>( indexTypeValues_.size() );
  40733. pIndexTypeValues = indexTypeValues_.data();
  40734. return *this;
  40735. }
  40736. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  40737. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40738. operator VkIndirectCommandsLayoutTokenNV const &() const VULKAN_HPP_NOEXCEPT
  40739. {
  40740. return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNV *>( this );
  40741. }
  40742. operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT
  40743. {
  40744. return *reinterpret_cast<VkIndirectCommandsLayoutTokenNV *>( this );
  40745. }
  40746. #if defined( VULKAN_HPP_USE_REFLECT )
  40747. # if 14 <= VULKAN_HPP_CPP_VERSION
  40748. auto
  40749. # else
  40750. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  40751. const void * const &,
  40752. VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV const &,
  40753. uint32_t const &,
  40754. uint32_t const &,
  40755. uint32_t const &,
  40756. VULKAN_HPP_NAMESPACE::Bool32 const &,
  40757. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  40758. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  40759. uint32_t const &,
  40760. uint32_t const &,
  40761. VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV const &,
  40762. uint32_t const &,
  40763. const VULKAN_HPP_NAMESPACE::IndexType * const &,
  40764. const uint32_t * const &>
  40765. # endif
  40766. reflect() const VULKAN_HPP_NOEXCEPT
  40767. {
  40768. return std::tie( sType,
  40769. pNext,
  40770. tokenType,
  40771. stream,
  40772. offset,
  40773. vertexBindingUnit,
  40774. vertexDynamicStride,
  40775. pushconstantPipelineLayout,
  40776. pushconstantShaderStageFlags,
  40777. pushconstantOffset,
  40778. pushconstantSize,
  40779. indirectStateFlags,
  40780. indexTypeCount,
  40781. pIndexTypes,
  40782. pIndexTypeValues );
  40783. }
  40784. #endif
  40785. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40786. auto operator<=>( IndirectCommandsLayoutTokenNV const & ) const = default;
  40787. #else
  40788. bool operator==( IndirectCommandsLayoutTokenNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40789. {
  40790. # if defined( VULKAN_HPP_USE_REFLECT )
  40791. return this->reflect() == rhs.reflect();
  40792. # else
  40793. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( tokenType == rhs.tokenType ) && ( stream == rhs.stream ) && ( offset == rhs.offset ) &&
  40794. ( vertexBindingUnit == rhs.vertexBindingUnit ) && ( vertexDynamicStride == rhs.vertexDynamicStride ) &&
  40795. ( pushconstantPipelineLayout == rhs.pushconstantPipelineLayout ) && ( pushconstantShaderStageFlags == rhs.pushconstantShaderStageFlags ) &&
  40796. ( pushconstantOffset == rhs.pushconstantOffset ) && ( pushconstantSize == rhs.pushconstantSize ) &&
  40797. ( indirectStateFlags == rhs.indirectStateFlags ) && ( indexTypeCount == rhs.indexTypeCount ) && ( pIndexTypes == rhs.pIndexTypes ) &&
  40798. ( pIndexTypeValues == rhs.pIndexTypeValues );
  40799. # endif
  40800. }
  40801. bool operator!=( IndirectCommandsLayoutTokenNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40802. {
  40803. return !operator==( rhs );
  40804. }
  40805. #endif
  40806. public:
  40807. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutTokenNV;
  40808. const void * pNext = {};
  40809. VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup;
  40810. uint32_t stream = {};
  40811. uint32_t offset = {};
  40812. uint32_t vertexBindingUnit = {};
  40813. VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride = {};
  40814. VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout = {};
  40815. VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags = {};
  40816. uint32_t pushconstantOffset = {};
  40817. uint32_t pushconstantSize = {};
  40818. VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags = {};
  40819. uint32_t indexTypeCount = {};
  40820. const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes = {};
  40821. const uint32_t * pIndexTypeValues = {};
  40822. };
  40823. template <>
  40824. struct CppType<StructureType, StructureType::eIndirectCommandsLayoutTokenNV>
  40825. {
  40826. using Type = IndirectCommandsLayoutTokenNV;
  40827. };
  40828. struct IndirectCommandsLayoutCreateInfoNV
  40829. {
  40830. using NativeType = VkIndirectCommandsLayoutCreateInfoNV;
  40831. static const bool allowDuplicate = false;
  40832. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
  40833. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  40834. VULKAN_HPP_CONSTEXPR
  40835. IndirectCommandsLayoutCreateInfoNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ = {},
  40836. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  40837. uint32_t tokenCount_ = {},
  40838. const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens_ = {},
  40839. uint32_t streamCount_ = {},
  40840. const uint32_t * pStreamStrides_ = {},
  40841. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  40842. : pNext( pNext_ )
  40843. , flags( flags_ )
  40844. , pipelineBindPoint( pipelineBindPoint_ )
  40845. , tokenCount( tokenCount_ )
  40846. , pTokens( pTokens_ )
  40847. , streamCount( streamCount_ )
  40848. , pStreamStrides( pStreamStrides_ )
  40849. {
  40850. }
  40851. VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40852. IndirectCommandsLayoutCreateInfoNV( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40853. : IndirectCommandsLayoutCreateInfoNV( *reinterpret_cast<IndirectCommandsLayoutCreateInfoNV const *>( &rhs ) )
  40854. {
  40855. }
  40856. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  40857. IndirectCommandsLayoutCreateInfoNV(
  40858. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_,
  40859. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_,
  40860. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const & tokens_,
  40861. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ = {},
  40862. const void * pNext_ = nullptr )
  40863. : pNext( pNext_ )
  40864. , flags( flags_ )
  40865. , pipelineBindPoint( pipelineBindPoint_ )
  40866. , tokenCount( static_cast<uint32_t>( tokens_.size() ) )
  40867. , pTokens( tokens_.data() )
  40868. , streamCount( static_cast<uint32_t>( streamStrides_.size() ) )
  40869. , pStreamStrides( streamStrides_.data() )
  40870. {
  40871. }
  40872. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  40873. IndirectCommandsLayoutCreateInfoNV & operator=( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  40874. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  40875. IndirectCommandsLayoutCreateInfoNV & operator=( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  40876. {
  40877. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const *>( &rhs );
  40878. return *this;
  40879. }
  40880. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  40881. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  40882. {
  40883. pNext = pNext_;
  40884. return *this;
  40885. }
  40886. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  40887. {
  40888. flags = flags_;
  40889. return *this;
  40890. }
  40891. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV &
  40892. setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  40893. {
  40894. pipelineBindPoint = pipelineBindPoint_;
  40895. return *this;
  40896. }
  40897. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT
  40898. {
  40899. tokenCount = tokenCount_;
  40900. return *this;
  40901. }
  40902. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV &
  40903. setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens_ ) VULKAN_HPP_NOEXCEPT
  40904. {
  40905. pTokens = pTokens_;
  40906. return *this;
  40907. }
  40908. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  40909. IndirectCommandsLayoutCreateInfoNV &
  40910. setTokens( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV> const & tokens_ ) VULKAN_HPP_NOEXCEPT
  40911. {
  40912. tokenCount = static_cast<uint32_t>( tokens_.size() );
  40913. pTokens = tokens_.data();
  40914. return *this;
  40915. }
  40916. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  40917. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT
  40918. {
  40919. streamCount = streamCount_;
  40920. return *this;
  40921. }
  40922. VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & setPStreamStrides( const uint32_t * pStreamStrides_ ) VULKAN_HPP_NOEXCEPT
  40923. {
  40924. pStreamStrides = pStreamStrides_;
  40925. return *this;
  40926. }
  40927. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  40928. IndirectCommandsLayoutCreateInfoNV &
  40929. setStreamStrides( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & streamStrides_ ) VULKAN_HPP_NOEXCEPT
  40930. {
  40931. streamCount = static_cast<uint32_t>( streamStrides_.size() );
  40932. pStreamStrides = streamStrides_.data();
  40933. return *this;
  40934. }
  40935. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  40936. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  40937. operator VkIndirectCommandsLayoutCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  40938. {
  40939. return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( this );
  40940. }
  40941. operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  40942. {
  40943. return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNV *>( this );
  40944. }
  40945. #if defined( VULKAN_HPP_USE_REFLECT )
  40946. # if 14 <= VULKAN_HPP_CPP_VERSION
  40947. auto
  40948. # else
  40949. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  40950. const void * const &,
  40951. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV const &,
  40952. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  40953. uint32_t const &,
  40954. const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * const &,
  40955. uint32_t const &,
  40956. const uint32_t * const &>
  40957. # endif
  40958. reflect() const VULKAN_HPP_NOEXCEPT
  40959. {
  40960. return std::tie( sType, pNext, flags, pipelineBindPoint, tokenCount, pTokens, streamCount, pStreamStrides );
  40961. }
  40962. #endif
  40963. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  40964. auto operator<=>( IndirectCommandsLayoutCreateInfoNV const & ) const = default;
  40965. #else
  40966. bool operator==( IndirectCommandsLayoutCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40967. {
  40968. # if defined( VULKAN_HPP_USE_REFLECT )
  40969. return this->reflect() == rhs.reflect();
  40970. # else
  40971. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) &&
  40972. ( tokenCount == rhs.tokenCount ) && ( pTokens == rhs.pTokens ) && ( streamCount == rhs.streamCount ) && ( pStreamStrides == rhs.pStreamStrides );
  40973. # endif
  40974. }
  40975. bool operator!=( IndirectCommandsLayoutCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  40976. {
  40977. return !operator==( rhs );
  40978. }
  40979. #endif
  40980. public:
  40981. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNV;
  40982. const void * pNext = {};
  40983. VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags = {};
  40984. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  40985. uint32_t tokenCount = {};
  40986. const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens = {};
  40987. uint32_t streamCount = {};
  40988. const uint32_t * pStreamStrides = {};
  40989. };
  40990. template <>
  40991. struct CppType<StructureType, StructureType::eIndirectCommandsLayoutCreateInfoNV>
  40992. {
  40993. using Type = IndirectCommandsLayoutCreateInfoNV;
  40994. };
  40995. struct InitializePerformanceApiInfoINTEL
  40996. {
  40997. using NativeType = VkInitializePerformanceApiInfoINTEL;
  40998. static const bool allowDuplicate = false;
  40999. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInitializePerformanceApiInfoINTEL;
  41000. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41001. VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( void * pUserData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41002. : pNext( pNext_ )
  41003. , pUserData( pUserData_ )
  41004. {
  41005. }
  41006. VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41007. InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  41008. : InitializePerformanceApiInfoINTEL( *reinterpret_cast<InitializePerformanceApiInfoINTEL const *>( &rhs ) )
  41009. {
  41010. }
  41011. InitializePerformanceApiInfoINTEL & operator=( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41012. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41013. InitializePerformanceApiInfoINTEL & operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  41014. {
  41015. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const *>( &rhs );
  41016. return *this;
  41017. }
  41018. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41019. VULKAN_HPP_CONSTEXPR_14 InitializePerformanceApiInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41020. {
  41021. pNext = pNext_;
  41022. return *this;
  41023. }
  41024. VULKAN_HPP_CONSTEXPR_14 InitializePerformanceApiInfoINTEL & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT
  41025. {
  41026. pUserData = pUserData_;
  41027. return *this;
  41028. }
  41029. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41030. operator VkInitializePerformanceApiInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  41031. {
  41032. return *reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( this );
  41033. }
  41034. operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT
  41035. {
  41036. return *reinterpret_cast<VkInitializePerformanceApiInfoINTEL *>( this );
  41037. }
  41038. #if defined( VULKAN_HPP_USE_REFLECT )
  41039. # if 14 <= VULKAN_HPP_CPP_VERSION
  41040. auto
  41041. # else
  41042. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, void * const &>
  41043. # endif
  41044. reflect() const VULKAN_HPP_NOEXCEPT
  41045. {
  41046. return std::tie( sType, pNext, pUserData );
  41047. }
  41048. #endif
  41049. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41050. auto operator<=>( InitializePerformanceApiInfoINTEL const & ) const = default;
  41051. #else
  41052. bool operator==( InitializePerformanceApiInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  41053. {
  41054. # if defined( VULKAN_HPP_USE_REFLECT )
  41055. return this->reflect() == rhs.reflect();
  41056. # else
  41057. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pUserData == rhs.pUserData );
  41058. # endif
  41059. }
  41060. bool operator!=( InitializePerformanceApiInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  41061. {
  41062. return !operator==( rhs );
  41063. }
  41064. #endif
  41065. public:
  41066. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL;
  41067. const void * pNext = {};
  41068. void * pUserData = {};
  41069. };
  41070. template <>
  41071. struct CppType<StructureType, StructureType::eInitializePerformanceApiInfoINTEL>
  41072. {
  41073. using Type = InitializePerformanceApiInfoINTEL;
  41074. };
  41075. struct InputAttachmentAspectReference
  41076. {
  41077. using NativeType = VkInputAttachmentAspectReference;
  41078. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41079. VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( uint32_t subpass_ = {},
  41080. uint32_t inputAttachmentIndex_ = {},
  41081. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {} ) VULKAN_HPP_NOEXCEPT
  41082. : subpass( subpass_ )
  41083. , inputAttachmentIndex( inputAttachmentIndex_ )
  41084. , aspectMask( aspectMask_ )
  41085. {
  41086. }
  41087. VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41088. InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
  41089. : InputAttachmentAspectReference( *reinterpret_cast<InputAttachmentAspectReference const *>( &rhs ) )
  41090. {
  41091. }
  41092. InputAttachmentAspectReference & operator=( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41093. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41094. InputAttachmentAspectReference & operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT
  41095. {
  41096. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference const *>( &rhs );
  41097. return *this;
  41098. }
  41099. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41100. VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT
  41101. {
  41102. subpass = subpass_;
  41103. return *this;
  41104. }
  41105. VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT
  41106. {
  41107. inputAttachmentIndex = inputAttachmentIndex_;
  41108. return *this;
  41109. }
  41110. VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT
  41111. {
  41112. aspectMask = aspectMask_;
  41113. return *this;
  41114. }
  41115. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41116. operator VkInputAttachmentAspectReference const &() const VULKAN_HPP_NOEXCEPT
  41117. {
  41118. return *reinterpret_cast<const VkInputAttachmentAspectReference *>( this );
  41119. }
  41120. operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT
  41121. {
  41122. return *reinterpret_cast<VkInputAttachmentAspectReference *>( this );
  41123. }
  41124. #if defined( VULKAN_HPP_USE_REFLECT )
  41125. # if 14 <= VULKAN_HPP_CPP_VERSION
  41126. auto
  41127. # else
  41128. std::tuple<uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ImageAspectFlags const &>
  41129. # endif
  41130. reflect() const VULKAN_HPP_NOEXCEPT
  41131. {
  41132. return std::tie( subpass, inputAttachmentIndex, aspectMask );
  41133. }
  41134. #endif
  41135. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41136. auto operator<=>( InputAttachmentAspectReference const & ) const = default;
  41137. #else
  41138. bool operator==( InputAttachmentAspectReference const & rhs ) const VULKAN_HPP_NOEXCEPT
  41139. {
  41140. # if defined( VULKAN_HPP_USE_REFLECT )
  41141. return this->reflect() == rhs.reflect();
  41142. # else
  41143. return ( subpass == rhs.subpass ) && ( inputAttachmentIndex == rhs.inputAttachmentIndex ) && ( aspectMask == rhs.aspectMask );
  41144. # endif
  41145. }
  41146. bool operator!=( InputAttachmentAspectReference const & rhs ) const VULKAN_HPP_NOEXCEPT
  41147. {
  41148. return !operator==( rhs );
  41149. }
  41150. #endif
  41151. public:
  41152. uint32_t subpass = {};
  41153. uint32_t inputAttachmentIndex = {};
  41154. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  41155. };
  41156. using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
  41157. struct InstanceCreateInfo
  41158. {
  41159. using NativeType = VkInstanceCreateInfo;
  41160. static const bool allowDuplicate = false;
  41161. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInstanceCreateInfo;
  41162. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41163. VULKAN_HPP_CONSTEXPR InstanceCreateInfo( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ = {},
  41164. const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_ = {},
  41165. uint32_t enabledLayerCount_ = {},
  41166. const char * const * ppEnabledLayerNames_ = {},
  41167. uint32_t enabledExtensionCount_ = {},
  41168. const char * const * ppEnabledExtensionNames_ = {},
  41169. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41170. : pNext( pNext_ )
  41171. , flags( flags_ )
  41172. , pApplicationInfo( pApplicationInfo_ )
  41173. , enabledLayerCount( enabledLayerCount_ )
  41174. , ppEnabledLayerNames( ppEnabledLayerNames_ )
  41175. , enabledExtensionCount( enabledExtensionCount_ )
  41176. , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
  41177. {
  41178. }
  41179. VULKAN_HPP_CONSTEXPR InstanceCreateInfo( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41180. InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : InstanceCreateInfo( *reinterpret_cast<InstanceCreateInfo const *>( &rhs ) ) {}
  41181. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  41182. InstanceCreateInfo( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_,
  41183. const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_,
  41184. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_,
  41185. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ = {},
  41186. const void * pNext_ = nullptr )
  41187. : pNext( pNext_ )
  41188. , flags( flags_ )
  41189. , pApplicationInfo( pApplicationInfo_ )
  41190. , enabledLayerCount( static_cast<uint32_t>( pEnabledLayerNames_.size() ) )
  41191. , ppEnabledLayerNames( pEnabledLayerNames_.data() )
  41192. , enabledExtensionCount( static_cast<uint32_t>( pEnabledExtensionNames_.size() ) )
  41193. , ppEnabledExtensionNames( pEnabledExtensionNames_.data() )
  41194. {
  41195. }
  41196. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  41197. InstanceCreateInfo & operator=( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41198. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41199. InstanceCreateInfo & operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  41200. {
  41201. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::InstanceCreateInfo const *>( &rhs );
  41202. return *this;
  41203. }
  41204. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41205. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41206. {
  41207. pNext = pNext_;
  41208. return *this;
  41209. }
  41210. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  41211. {
  41212. flags = flags_;
  41213. return *this;
  41214. }
  41215. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT
  41216. {
  41217. pApplicationInfo = pApplicationInfo_;
  41218. return *this;
  41219. }
  41220. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT
  41221. {
  41222. enabledLayerCount = enabledLayerCount_;
  41223. return *this;
  41224. }
  41225. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPpEnabledLayerNames( const char * const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
  41226. {
  41227. ppEnabledLayerNames = ppEnabledLayerNames_;
  41228. return *this;
  41229. }
  41230. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  41231. InstanceCreateInfo &
  41232. setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT
  41233. {
  41234. enabledLayerCount = static_cast<uint32_t>( pEnabledLayerNames_.size() );
  41235. ppEnabledLayerNames = pEnabledLayerNames_.data();
  41236. return *this;
  41237. }
  41238. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  41239. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT
  41240. {
  41241. enabledExtensionCount = enabledExtensionCount_;
  41242. return *this;
  41243. }
  41244. VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & setPpEnabledExtensionNames( const char * const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
  41245. {
  41246. ppEnabledExtensionNames = ppEnabledExtensionNames_;
  41247. return *this;
  41248. }
  41249. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  41250. InstanceCreateInfo &
  41251. setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const char * const> const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT
  41252. {
  41253. enabledExtensionCount = static_cast<uint32_t>( pEnabledExtensionNames_.size() );
  41254. ppEnabledExtensionNames = pEnabledExtensionNames_.data();
  41255. return *this;
  41256. }
  41257. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  41258. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41259. operator VkInstanceCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  41260. {
  41261. return *reinterpret_cast<const VkInstanceCreateInfo *>( this );
  41262. }
  41263. operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT
  41264. {
  41265. return *reinterpret_cast<VkInstanceCreateInfo *>( this );
  41266. }
  41267. #if defined( VULKAN_HPP_USE_REFLECT )
  41268. # if 14 <= VULKAN_HPP_CPP_VERSION
  41269. auto
  41270. # else
  41271. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  41272. const void * const &,
  41273. VULKAN_HPP_NAMESPACE::InstanceCreateFlags const &,
  41274. const VULKAN_HPP_NAMESPACE::ApplicationInfo * const &,
  41275. uint32_t const &,
  41276. const char * const * const &,
  41277. uint32_t const &,
  41278. const char * const * const &>
  41279. # endif
  41280. reflect() const VULKAN_HPP_NOEXCEPT
  41281. {
  41282. return std::tie( sType, pNext, flags, pApplicationInfo, enabledLayerCount, ppEnabledLayerNames, enabledExtensionCount, ppEnabledExtensionNames );
  41283. }
  41284. #endif
  41285. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41286. std::strong_ordering operator<=>( InstanceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  41287. {
  41288. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  41289. return cmp;
  41290. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  41291. return cmp;
  41292. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  41293. return cmp;
  41294. if ( auto cmp = pApplicationInfo <=> rhs.pApplicationInfo; cmp != 0 )
  41295. return cmp;
  41296. if ( auto cmp = enabledLayerCount <=> rhs.enabledLayerCount; cmp != 0 )
  41297. return cmp;
  41298. for ( size_t i = 0; i < enabledLayerCount; ++i )
  41299. {
  41300. if ( ppEnabledLayerNames[i] != rhs.ppEnabledLayerNames[i] )
  41301. if ( auto cmp = strcmp( ppEnabledLayerNames[i], rhs.ppEnabledLayerNames[i] ); cmp != 0 )
  41302. return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
  41303. }
  41304. if ( auto cmp = enabledExtensionCount <=> rhs.enabledExtensionCount; cmp != 0 )
  41305. return cmp;
  41306. for ( size_t i = 0; i < enabledExtensionCount; ++i )
  41307. {
  41308. if ( ppEnabledExtensionNames[i] != rhs.ppEnabledExtensionNames[i] )
  41309. if ( auto cmp = strcmp( ppEnabledExtensionNames[i], rhs.ppEnabledExtensionNames[i] ); cmp != 0 )
  41310. return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater;
  41311. }
  41312. return std::strong_ordering::equivalent;
  41313. }
  41314. #endif
  41315. bool operator==( InstanceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  41316. {
  41317. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pApplicationInfo == rhs.pApplicationInfo ) &&
  41318. ( enabledLayerCount == rhs.enabledLayerCount ) &&
  41319. std::equal( ppEnabledLayerNames,
  41320. ppEnabledLayerNames + enabledLayerCount,
  41321. rhs.ppEnabledLayerNames,
  41322. []( char const * left, char const * right ) { return ( left == right ) || ( strcmp( left, right ) == 0 ); } ) &&
  41323. ( enabledExtensionCount == rhs.enabledExtensionCount ) &&
  41324. std::equal( ppEnabledExtensionNames,
  41325. ppEnabledExtensionNames + enabledExtensionCount,
  41326. rhs.ppEnabledExtensionNames,
  41327. []( char const * left, char const * right ) { return ( left == right ) || ( strcmp( left, right ) == 0 ); } );
  41328. }
  41329. bool operator!=( InstanceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  41330. {
  41331. return !operator==( rhs );
  41332. }
  41333. public:
  41334. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo;
  41335. const void * pNext = {};
  41336. VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {};
  41337. const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo = {};
  41338. uint32_t enabledLayerCount = {};
  41339. const char * const * ppEnabledLayerNames = {};
  41340. uint32_t enabledExtensionCount = {};
  41341. const char * const * ppEnabledExtensionNames = {};
  41342. };
  41343. template <>
  41344. struct CppType<StructureType, StructureType::eInstanceCreateInfo>
  41345. {
  41346. using Type = InstanceCreateInfo;
  41347. };
  41348. struct LatencySleepInfoNV
  41349. {
  41350. using NativeType = VkLatencySleepInfoNV;
  41351. static const bool allowDuplicate = false;
  41352. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySleepInfoNV;
  41353. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41354. VULKAN_HPP_CONSTEXPR
  41355. LatencySleepInfoNV( VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore_ = {}, uint64_t value_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41356. : pNext( pNext_ )
  41357. , signalSemaphore( signalSemaphore_ )
  41358. , value( value_ )
  41359. {
  41360. }
  41361. VULKAN_HPP_CONSTEXPR LatencySleepInfoNV( LatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41362. LatencySleepInfoNV( VkLatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT : LatencySleepInfoNV( *reinterpret_cast<LatencySleepInfoNV const *>( &rhs ) ) {}
  41363. LatencySleepInfoNV & operator=( LatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41364. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41365. LatencySleepInfoNV & operator=( VkLatencySleepInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  41366. {
  41367. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV const *>( &rhs );
  41368. return *this;
  41369. }
  41370. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41371. VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41372. {
  41373. pNext = pNext_;
  41374. return *this;
  41375. }
  41376. VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setSignalSemaphore( VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore_ ) VULKAN_HPP_NOEXCEPT
  41377. {
  41378. signalSemaphore = signalSemaphore_;
  41379. return *this;
  41380. }
  41381. VULKAN_HPP_CONSTEXPR_14 LatencySleepInfoNV & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
  41382. {
  41383. value = value_;
  41384. return *this;
  41385. }
  41386. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41387. operator VkLatencySleepInfoNV const &() const VULKAN_HPP_NOEXCEPT
  41388. {
  41389. return *reinterpret_cast<const VkLatencySleepInfoNV *>( this );
  41390. }
  41391. operator VkLatencySleepInfoNV &() VULKAN_HPP_NOEXCEPT
  41392. {
  41393. return *reinterpret_cast<VkLatencySleepInfoNV *>( this );
  41394. }
  41395. #if defined( VULKAN_HPP_USE_REFLECT )
  41396. # if 14 <= VULKAN_HPP_CPP_VERSION
  41397. auto
  41398. # else
  41399. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, uint64_t const &>
  41400. # endif
  41401. reflect() const VULKAN_HPP_NOEXCEPT
  41402. {
  41403. return std::tie( sType, pNext, signalSemaphore, value );
  41404. }
  41405. #endif
  41406. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41407. auto operator<=>( LatencySleepInfoNV const & ) const = default;
  41408. #else
  41409. bool operator==( LatencySleepInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  41410. {
  41411. # if defined( VULKAN_HPP_USE_REFLECT )
  41412. return this->reflect() == rhs.reflect();
  41413. # else
  41414. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( signalSemaphore == rhs.signalSemaphore ) && ( value == rhs.value );
  41415. # endif
  41416. }
  41417. bool operator!=( LatencySleepInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  41418. {
  41419. return !operator==( rhs );
  41420. }
  41421. #endif
  41422. public:
  41423. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySleepInfoNV;
  41424. const void * pNext = {};
  41425. VULKAN_HPP_NAMESPACE::Semaphore signalSemaphore = {};
  41426. uint64_t value = {};
  41427. };
  41428. template <>
  41429. struct CppType<StructureType, StructureType::eLatencySleepInfoNV>
  41430. {
  41431. using Type = LatencySleepInfoNV;
  41432. };
  41433. struct LatencySleepModeInfoNV
  41434. {
  41435. using NativeType = VkLatencySleepModeInfoNV;
  41436. static const bool allowDuplicate = false;
  41437. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySleepModeInfoNV;
  41438. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41439. VULKAN_HPP_CONSTEXPR LatencySleepModeInfoNV( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode_ = {},
  41440. VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost_ = {},
  41441. uint32_t minimumIntervalUs_ = {},
  41442. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41443. : pNext( pNext_ )
  41444. , lowLatencyMode( lowLatencyMode_ )
  41445. , lowLatencyBoost( lowLatencyBoost_ )
  41446. , minimumIntervalUs( minimumIntervalUs_ )
  41447. {
  41448. }
  41449. VULKAN_HPP_CONSTEXPR LatencySleepModeInfoNV( LatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41450. LatencySleepModeInfoNV( VkLatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  41451. : LatencySleepModeInfoNV( *reinterpret_cast<LatencySleepModeInfoNV const *>( &rhs ) )
  41452. {
  41453. }
  41454. LatencySleepModeInfoNV & operator=( LatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41455. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41456. LatencySleepModeInfoNV & operator=( VkLatencySleepModeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  41457. {
  41458. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV const *>( &rhs );
  41459. return *this;
  41460. }
  41461. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41462. VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41463. {
  41464. pNext = pNext_;
  41465. return *this;
  41466. }
  41467. VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setLowLatencyMode( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode_ ) VULKAN_HPP_NOEXCEPT
  41468. {
  41469. lowLatencyMode = lowLatencyMode_;
  41470. return *this;
  41471. }
  41472. VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setLowLatencyBoost( VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost_ ) VULKAN_HPP_NOEXCEPT
  41473. {
  41474. lowLatencyBoost = lowLatencyBoost_;
  41475. return *this;
  41476. }
  41477. VULKAN_HPP_CONSTEXPR_14 LatencySleepModeInfoNV & setMinimumIntervalUs( uint32_t minimumIntervalUs_ ) VULKAN_HPP_NOEXCEPT
  41478. {
  41479. minimumIntervalUs = minimumIntervalUs_;
  41480. return *this;
  41481. }
  41482. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41483. operator VkLatencySleepModeInfoNV const &() const VULKAN_HPP_NOEXCEPT
  41484. {
  41485. return *reinterpret_cast<const VkLatencySleepModeInfoNV *>( this );
  41486. }
  41487. operator VkLatencySleepModeInfoNV &() VULKAN_HPP_NOEXCEPT
  41488. {
  41489. return *reinterpret_cast<VkLatencySleepModeInfoNV *>( this );
  41490. }
  41491. #if defined( VULKAN_HPP_USE_REFLECT )
  41492. # if 14 <= VULKAN_HPP_CPP_VERSION
  41493. auto
  41494. # else
  41495. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  41496. const void * const &,
  41497. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41498. VULKAN_HPP_NAMESPACE::Bool32 const &,
  41499. uint32_t const &>
  41500. # endif
  41501. reflect() const VULKAN_HPP_NOEXCEPT
  41502. {
  41503. return std::tie( sType, pNext, lowLatencyMode, lowLatencyBoost, minimumIntervalUs );
  41504. }
  41505. #endif
  41506. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41507. auto operator<=>( LatencySleepModeInfoNV const & ) const = default;
  41508. #else
  41509. bool operator==( LatencySleepModeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  41510. {
  41511. # if defined( VULKAN_HPP_USE_REFLECT )
  41512. return this->reflect() == rhs.reflect();
  41513. # else
  41514. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( lowLatencyMode == rhs.lowLatencyMode ) && ( lowLatencyBoost == rhs.lowLatencyBoost ) &&
  41515. ( minimumIntervalUs == rhs.minimumIntervalUs );
  41516. # endif
  41517. }
  41518. bool operator!=( LatencySleepModeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  41519. {
  41520. return !operator==( rhs );
  41521. }
  41522. #endif
  41523. public:
  41524. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySleepModeInfoNV;
  41525. const void * pNext = {};
  41526. VULKAN_HPP_NAMESPACE::Bool32 lowLatencyMode = {};
  41527. VULKAN_HPP_NAMESPACE::Bool32 lowLatencyBoost = {};
  41528. uint32_t minimumIntervalUs = {};
  41529. };
  41530. template <>
  41531. struct CppType<StructureType, StructureType::eLatencySleepModeInfoNV>
  41532. {
  41533. using Type = LatencySleepModeInfoNV;
  41534. };
  41535. struct LatencySubmissionPresentIdNV
  41536. {
  41537. using NativeType = VkLatencySubmissionPresentIdNV;
  41538. static const bool allowDuplicate = false;
  41539. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySubmissionPresentIdNV;
  41540. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41541. VULKAN_HPP_CONSTEXPR LatencySubmissionPresentIdNV( uint64_t presentID_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41542. : pNext( pNext_ )
  41543. , presentID( presentID_ )
  41544. {
  41545. }
  41546. VULKAN_HPP_CONSTEXPR LatencySubmissionPresentIdNV( LatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41547. LatencySubmissionPresentIdNV( VkLatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT
  41548. : LatencySubmissionPresentIdNV( *reinterpret_cast<LatencySubmissionPresentIdNV const *>( &rhs ) )
  41549. {
  41550. }
  41551. LatencySubmissionPresentIdNV & operator=( LatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41552. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41553. LatencySubmissionPresentIdNV & operator=( VkLatencySubmissionPresentIdNV const & rhs ) VULKAN_HPP_NOEXCEPT
  41554. {
  41555. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV const *>( &rhs );
  41556. return *this;
  41557. }
  41558. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41559. VULKAN_HPP_CONSTEXPR_14 LatencySubmissionPresentIdNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41560. {
  41561. pNext = pNext_;
  41562. return *this;
  41563. }
  41564. VULKAN_HPP_CONSTEXPR_14 LatencySubmissionPresentIdNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT
  41565. {
  41566. presentID = presentID_;
  41567. return *this;
  41568. }
  41569. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41570. operator VkLatencySubmissionPresentIdNV const &() const VULKAN_HPP_NOEXCEPT
  41571. {
  41572. return *reinterpret_cast<const VkLatencySubmissionPresentIdNV *>( this );
  41573. }
  41574. operator VkLatencySubmissionPresentIdNV &() VULKAN_HPP_NOEXCEPT
  41575. {
  41576. return *reinterpret_cast<VkLatencySubmissionPresentIdNV *>( this );
  41577. }
  41578. #if defined( VULKAN_HPP_USE_REFLECT )
  41579. # if 14 <= VULKAN_HPP_CPP_VERSION
  41580. auto
  41581. # else
  41582. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
  41583. # endif
  41584. reflect() const VULKAN_HPP_NOEXCEPT
  41585. {
  41586. return std::tie( sType, pNext, presentID );
  41587. }
  41588. #endif
  41589. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41590. auto operator<=>( LatencySubmissionPresentIdNV const & ) const = default;
  41591. #else
  41592. bool operator==( LatencySubmissionPresentIdNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  41593. {
  41594. # if defined( VULKAN_HPP_USE_REFLECT )
  41595. return this->reflect() == rhs.reflect();
  41596. # else
  41597. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentID == rhs.presentID );
  41598. # endif
  41599. }
  41600. bool operator!=( LatencySubmissionPresentIdNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  41601. {
  41602. return !operator==( rhs );
  41603. }
  41604. #endif
  41605. public:
  41606. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySubmissionPresentIdNV;
  41607. const void * pNext = {};
  41608. uint64_t presentID = {};
  41609. };
  41610. template <>
  41611. struct CppType<StructureType, StructureType::eLatencySubmissionPresentIdNV>
  41612. {
  41613. using Type = LatencySubmissionPresentIdNV;
  41614. };
  41615. struct LatencySurfaceCapabilitiesNV
  41616. {
  41617. using NativeType = VkLatencySurfaceCapabilitiesNV;
  41618. static const bool allowDuplicate = false;
  41619. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eLatencySurfaceCapabilitiesNV;
  41620. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41621. VULKAN_HPP_CONSTEXPR LatencySurfaceCapabilitiesNV( uint32_t presentModeCount_ = {},
  41622. VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {},
  41623. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41624. : pNext( pNext_ )
  41625. , presentModeCount( presentModeCount_ )
  41626. , pPresentModes( pPresentModes_ )
  41627. {
  41628. }
  41629. VULKAN_HPP_CONSTEXPR LatencySurfaceCapabilitiesNV( LatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41630. LatencySurfaceCapabilitiesNV( VkLatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  41631. : LatencySurfaceCapabilitiesNV( *reinterpret_cast<LatencySurfaceCapabilitiesNV const *>( &rhs ) )
  41632. {
  41633. }
  41634. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  41635. LatencySurfaceCapabilitiesNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_,
  41636. const void * pNext_ = nullptr )
  41637. : pNext( pNext_ ), presentModeCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() )
  41638. {
  41639. }
  41640. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  41641. LatencySurfaceCapabilitiesNV & operator=( LatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41642. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41643. LatencySurfaceCapabilitiesNV & operator=( VkLatencySurfaceCapabilitiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  41644. {
  41645. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV const *>( &rhs );
  41646. return *this;
  41647. }
  41648. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41649. VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41650. {
  41651. pNext = pNext_;
  41652. return *this;
  41653. }
  41654. VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPresentModeCount( uint32_t presentModeCount_ ) VULKAN_HPP_NOEXCEPT
  41655. {
  41656. presentModeCount = presentModeCount_;
  41657. return *this;
  41658. }
  41659. VULKAN_HPP_CONSTEXPR_14 LatencySurfaceCapabilitiesNV & setPPresentModes( VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT
  41660. {
  41661. pPresentModes = pPresentModes_;
  41662. return *this;
  41663. }
  41664. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  41665. LatencySurfaceCapabilitiesNV &
  41666. setPresentModes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_ ) VULKAN_HPP_NOEXCEPT
  41667. {
  41668. presentModeCount = static_cast<uint32_t>( presentModes_.size() );
  41669. pPresentModes = presentModes_.data();
  41670. return *this;
  41671. }
  41672. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  41673. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41674. operator VkLatencySurfaceCapabilitiesNV const &() const VULKAN_HPP_NOEXCEPT
  41675. {
  41676. return *reinterpret_cast<const VkLatencySurfaceCapabilitiesNV *>( this );
  41677. }
  41678. operator VkLatencySurfaceCapabilitiesNV &() VULKAN_HPP_NOEXCEPT
  41679. {
  41680. return *reinterpret_cast<VkLatencySurfaceCapabilitiesNV *>( this );
  41681. }
  41682. #if defined( VULKAN_HPP_USE_REFLECT )
  41683. # if 14 <= VULKAN_HPP_CPP_VERSION
  41684. auto
  41685. # else
  41686. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
  41687. # endif
  41688. reflect() const VULKAN_HPP_NOEXCEPT
  41689. {
  41690. return std::tie( sType, pNext, presentModeCount, pPresentModes );
  41691. }
  41692. #endif
  41693. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41694. auto operator<=>( LatencySurfaceCapabilitiesNV const & ) const = default;
  41695. #else
  41696. bool operator==( LatencySurfaceCapabilitiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  41697. {
  41698. # if defined( VULKAN_HPP_USE_REFLECT )
  41699. return this->reflect() == rhs.reflect();
  41700. # else
  41701. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentModeCount == rhs.presentModeCount ) && ( pPresentModes == rhs.pPresentModes );
  41702. # endif
  41703. }
  41704. bool operator!=( LatencySurfaceCapabilitiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  41705. {
  41706. return !operator==( rhs );
  41707. }
  41708. #endif
  41709. public:
  41710. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eLatencySurfaceCapabilitiesNV;
  41711. const void * pNext = {};
  41712. uint32_t presentModeCount = {};
  41713. VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes = {};
  41714. };
  41715. template <>
  41716. struct CppType<StructureType, StructureType::eLatencySurfaceCapabilitiesNV>
  41717. {
  41718. using Type = LatencySurfaceCapabilitiesNV;
  41719. };
  41720. struct LayerProperties
  41721. {
  41722. using NativeType = VkLayerProperties;
  41723. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41724. VULKAN_HPP_CONSTEXPR_14 LayerProperties( std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & layerName_ = {},
  41725. uint32_t specVersion_ = {},
  41726. uint32_t implementationVersion_ = {},
  41727. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {} ) VULKAN_HPP_NOEXCEPT
  41728. : layerName( layerName_ )
  41729. , specVersion( specVersion_ )
  41730. , implementationVersion( implementationVersion_ )
  41731. , description( description_ )
  41732. {
  41733. }
  41734. VULKAN_HPP_CONSTEXPR_14 LayerProperties( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41735. LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT : LayerProperties( *reinterpret_cast<LayerProperties const *>( &rhs ) ) {}
  41736. LayerProperties & operator=( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41737. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41738. LayerProperties & operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  41739. {
  41740. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::LayerProperties const *>( &rhs );
  41741. return *this;
  41742. }
  41743. operator VkLayerProperties const &() const VULKAN_HPP_NOEXCEPT
  41744. {
  41745. return *reinterpret_cast<const VkLayerProperties *>( this );
  41746. }
  41747. operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT
  41748. {
  41749. return *reinterpret_cast<VkLayerProperties *>( this );
  41750. }
  41751. #if defined( VULKAN_HPP_USE_REFLECT )
  41752. # if 14 <= VULKAN_HPP_CPP_VERSION
  41753. auto
  41754. # else
  41755. std::tuple<VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &,
  41756. uint32_t const &,
  41757. uint32_t const &,
  41758. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &>
  41759. # endif
  41760. reflect() const VULKAN_HPP_NOEXCEPT
  41761. {
  41762. return std::tie( layerName, specVersion, implementationVersion, description );
  41763. }
  41764. #endif
  41765. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41766. auto operator<=>( LayerProperties const & ) const = default;
  41767. #else
  41768. bool operator==( LayerProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  41769. {
  41770. # if defined( VULKAN_HPP_USE_REFLECT )
  41771. return this->reflect() == rhs.reflect();
  41772. # else
  41773. return ( layerName == rhs.layerName ) && ( specVersion == rhs.specVersion ) && ( implementationVersion == rhs.implementationVersion ) &&
  41774. ( description == rhs.description );
  41775. # endif
  41776. }
  41777. bool operator!=( LayerProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  41778. {
  41779. return !operator==( rhs );
  41780. }
  41781. #endif
  41782. public:
  41783. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layerName = {};
  41784. uint32_t specVersion = {};
  41785. uint32_t implementationVersion = {};
  41786. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  41787. };
  41788. #if defined( VK_USE_PLATFORM_MACOS_MVK )
  41789. struct MacOSSurfaceCreateInfoMVK
  41790. {
  41791. using NativeType = VkMacOSSurfaceCreateInfoMVK;
  41792. static const bool allowDuplicate = false;
  41793. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMacosSurfaceCreateInfoMVK;
  41794. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41795. VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {},
  41796. const void * pView_ = {},
  41797. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41798. : pNext( pNext_ )
  41799. , flags( flags_ )
  41800. , pView( pView_ )
  41801. {
  41802. }
  41803. VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41804. MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
  41805. : MacOSSurfaceCreateInfoMVK( *reinterpret_cast<MacOSSurfaceCreateInfoMVK const *>( &rhs ) )
  41806. {
  41807. }
  41808. MacOSSurfaceCreateInfoMVK & operator=( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41809. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41810. MacOSSurfaceCreateInfoMVK & operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT
  41811. {
  41812. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const *>( &rhs );
  41813. return *this;
  41814. }
  41815. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41816. VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41817. {
  41818. pNext = pNext_;
  41819. return *this;
  41820. }
  41821. VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT
  41822. {
  41823. flags = flags_;
  41824. return *this;
  41825. }
  41826. VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & setPView( const void * pView_ ) VULKAN_HPP_NOEXCEPT
  41827. {
  41828. pView = pView_;
  41829. return *this;
  41830. }
  41831. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41832. operator VkMacOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT
  41833. {
  41834. return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( this );
  41835. }
  41836. operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT
  41837. {
  41838. return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK *>( this );
  41839. }
  41840. # if defined( VULKAN_HPP_USE_REFLECT )
  41841. # if 14 <= VULKAN_HPP_CPP_VERSION
  41842. auto
  41843. # else
  41844. std::
  41845. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK const &, const void * const &>
  41846. # endif
  41847. reflect() const VULKAN_HPP_NOEXCEPT
  41848. {
  41849. return std::tie( sType, pNext, flags, pView );
  41850. }
  41851. # endif
  41852. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41853. auto operator<=>( MacOSSurfaceCreateInfoMVK const & ) const = default;
  41854. # else
  41855. bool operator==( MacOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
  41856. {
  41857. # if defined( VULKAN_HPP_USE_REFLECT )
  41858. return this->reflect() == rhs.reflect();
  41859. # else
  41860. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pView == rhs.pView );
  41861. # endif
  41862. }
  41863. bool operator!=( MacOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT
  41864. {
  41865. return !operator==( rhs );
  41866. }
  41867. # endif
  41868. public:
  41869. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK;
  41870. const void * pNext = {};
  41871. VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {};
  41872. const void * pView = {};
  41873. };
  41874. template <>
  41875. struct CppType<StructureType, StructureType::eMacosSurfaceCreateInfoMVK>
  41876. {
  41877. using Type = MacOSSurfaceCreateInfoMVK;
  41878. };
  41879. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  41880. struct MappedMemoryRange
  41881. {
  41882. using NativeType = VkMappedMemoryRange;
  41883. static const bool allowDuplicate = false;
  41884. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMappedMemoryRange;
  41885. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41886. VULKAN_HPP_CONSTEXPR MappedMemoryRange( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  41887. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  41888. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  41889. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41890. : pNext( pNext_ )
  41891. , memory( memory_ )
  41892. , offset( offset_ )
  41893. , size( size_ )
  41894. {
  41895. }
  41896. VULKAN_HPP_CONSTEXPR MappedMemoryRange( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41897. MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT : MappedMemoryRange( *reinterpret_cast<MappedMemoryRange const *>( &rhs ) ) {}
  41898. MappedMemoryRange & operator=( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41899. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41900. MappedMemoryRange & operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT
  41901. {
  41902. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MappedMemoryRange const *>( &rhs );
  41903. return *this;
  41904. }
  41905. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  41906. VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  41907. {
  41908. pNext = pNext_;
  41909. return *this;
  41910. }
  41911. VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  41912. {
  41913. memory = memory_;
  41914. return *this;
  41915. }
  41916. VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  41917. {
  41918. offset = offset_;
  41919. return *this;
  41920. }
  41921. VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  41922. {
  41923. size = size_;
  41924. return *this;
  41925. }
  41926. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  41927. operator VkMappedMemoryRange const &() const VULKAN_HPP_NOEXCEPT
  41928. {
  41929. return *reinterpret_cast<const VkMappedMemoryRange *>( this );
  41930. }
  41931. operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT
  41932. {
  41933. return *reinterpret_cast<VkMappedMemoryRange *>( this );
  41934. }
  41935. #if defined( VULKAN_HPP_USE_REFLECT )
  41936. # if 14 <= VULKAN_HPP_CPP_VERSION
  41937. auto
  41938. # else
  41939. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  41940. const void * const &,
  41941. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  41942. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  41943. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  41944. # endif
  41945. reflect() const VULKAN_HPP_NOEXCEPT
  41946. {
  41947. return std::tie( sType, pNext, memory, offset, size );
  41948. }
  41949. #endif
  41950. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  41951. auto operator<=>( MappedMemoryRange const & ) const = default;
  41952. #else
  41953. bool operator==( MappedMemoryRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  41954. {
  41955. # if defined( VULKAN_HPP_USE_REFLECT )
  41956. return this->reflect() == rhs.reflect();
  41957. # else
  41958. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( offset == rhs.offset ) && ( size == rhs.size );
  41959. # endif
  41960. }
  41961. bool operator!=( MappedMemoryRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  41962. {
  41963. return !operator==( rhs );
  41964. }
  41965. #endif
  41966. public:
  41967. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange;
  41968. const void * pNext = {};
  41969. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  41970. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  41971. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  41972. };
  41973. template <>
  41974. struct CppType<StructureType, StructureType::eMappedMemoryRange>
  41975. {
  41976. using Type = MappedMemoryRange;
  41977. };
  41978. struct MemoryAllocateFlagsInfo
  41979. {
  41980. using NativeType = VkMemoryAllocateFlagsInfo;
  41981. static const bool allowDuplicate = false;
  41982. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateFlagsInfo;
  41983. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  41984. VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {},
  41985. uint32_t deviceMask_ = {},
  41986. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  41987. : pNext( pNext_ )
  41988. , flags( flags_ )
  41989. , deviceMask( deviceMask_ )
  41990. {
  41991. }
  41992. VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41993. MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  41994. : MemoryAllocateFlagsInfo( *reinterpret_cast<MemoryAllocateFlagsInfo const *>( &rhs ) )
  41995. {
  41996. }
  41997. MemoryAllocateFlagsInfo & operator=( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  41998. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  41999. MemoryAllocateFlagsInfo & operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  42000. {
  42001. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo const *>( &rhs );
  42002. return *this;
  42003. }
  42004. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42005. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42006. {
  42007. pNext = pNext_;
  42008. return *this;
  42009. }
  42010. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  42011. {
  42012. flags = flags_;
  42013. return *this;
  42014. }
  42015. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT
  42016. {
  42017. deviceMask = deviceMask_;
  42018. return *this;
  42019. }
  42020. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42021. operator VkMemoryAllocateFlagsInfo const &() const VULKAN_HPP_NOEXCEPT
  42022. {
  42023. return *reinterpret_cast<const VkMemoryAllocateFlagsInfo *>( this );
  42024. }
  42025. operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT
  42026. {
  42027. return *reinterpret_cast<VkMemoryAllocateFlagsInfo *>( this );
  42028. }
  42029. #if defined( VULKAN_HPP_USE_REFLECT )
  42030. # if 14 <= VULKAN_HPP_CPP_VERSION
  42031. auto
  42032. # else
  42033. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::MemoryAllocateFlags const &, uint32_t const &>
  42034. # endif
  42035. reflect() const VULKAN_HPP_NOEXCEPT
  42036. {
  42037. return std::tie( sType, pNext, flags, deviceMask );
  42038. }
  42039. #endif
  42040. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42041. auto operator<=>( MemoryAllocateFlagsInfo const & ) const = default;
  42042. #else
  42043. bool operator==( MemoryAllocateFlagsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  42044. {
  42045. # if defined( VULKAN_HPP_USE_REFLECT )
  42046. return this->reflect() == rhs.reflect();
  42047. # else
  42048. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( deviceMask == rhs.deviceMask );
  42049. # endif
  42050. }
  42051. bool operator!=( MemoryAllocateFlagsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  42052. {
  42053. return !operator==( rhs );
  42054. }
  42055. #endif
  42056. public:
  42057. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo;
  42058. const void * pNext = {};
  42059. VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {};
  42060. uint32_t deviceMask = {};
  42061. };
  42062. template <>
  42063. struct CppType<StructureType, StructureType::eMemoryAllocateFlagsInfo>
  42064. {
  42065. using Type = MemoryAllocateFlagsInfo;
  42066. };
  42067. using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
  42068. struct MemoryAllocateInfo
  42069. {
  42070. using NativeType = VkMemoryAllocateInfo;
  42071. static const bool allowDuplicate = false;
  42072. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateInfo;
  42073. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42074. VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {},
  42075. uint32_t memoryTypeIndex_ = {},
  42076. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42077. : pNext( pNext_ )
  42078. , allocationSize( allocationSize_ )
  42079. , memoryTypeIndex( memoryTypeIndex_ )
  42080. {
  42081. }
  42082. VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42083. MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryAllocateInfo( *reinterpret_cast<MemoryAllocateInfo const *>( &rhs ) ) {}
  42084. MemoryAllocateInfo & operator=( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42085. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42086. MemoryAllocateInfo & operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  42087. {
  42088. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const *>( &rhs );
  42089. return *this;
  42090. }
  42091. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42092. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42093. {
  42094. pNext = pNext_;
  42095. return *this;
  42096. }
  42097. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT
  42098. {
  42099. allocationSize = allocationSize_;
  42100. return *this;
  42101. }
  42102. VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT
  42103. {
  42104. memoryTypeIndex = memoryTypeIndex_;
  42105. return *this;
  42106. }
  42107. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42108. operator VkMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  42109. {
  42110. return *reinterpret_cast<const VkMemoryAllocateInfo *>( this );
  42111. }
  42112. operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT
  42113. {
  42114. return *reinterpret_cast<VkMemoryAllocateInfo *>( this );
  42115. }
  42116. #if defined( VULKAN_HPP_USE_REFLECT )
  42117. # if 14 <= VULKAN_HPP_CPP_VERSION
  42118. auto
  42119. # else
  42120. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
  42121. # endif
  42122. reflect() const VULKAN_HPP_NOEXCEPT
  42123. {
  42124. return std::tie( sType, pNext, allocationSize, memoryTypeIndex );
  42125. }
  42126. #endif
  42127. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42128. auto operator<=>( MemoryAllocateInfo const & ) const = default;
  42129. #else
  42130. bool operator==( MemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  42131. {
  42132. # if defined( VULKAN_HPP_USE_REFLECT )
  42133. return this->reflect() == rhs.reflect();
  42134. # else
  42135. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( allocationSize == rhs.allocationSize ) && ( memoryTypeIndex == rhs.memoryTypeIndex );
  42136. # endif
  42137. }
  42138. bool operator!=( MemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  42139. {
  42140. return !operator==( rhs );
  42141. }
  42142. #endif
  42143. public:
  42144. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo;
  42145. const void * pNext = {};
  42146. VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
  42147. uint32_t memoryTypeIndex = {};
  42148. };
  42149. template <>
  42150. struct CppType<StructureType, StructureType::eMemoryAllocateInfo>
  42151. {
  42152. using Type = MemoryAllocateInfo;
  42153. };
  42154. struct MemoryBarrier
  42155. {
  42156. using NativeType = VkMemoryBarrier;
  42157. static const bool allowDuplicate = false;
  42158. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier;
  42159. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42160. VULKAN_HPP_CONSTEXPR MemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
  42161. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
  42162. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42163. : pNext( pNext_ )
  42164. , srcAccessMask( srcAccessMask_ )
  42165. , dstAccessMask( dstAccessMask_ )
  42166. {
  42167. }
  42168. VULKAN_HPP_CONSTEXPR MemoryBarrier( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42169. MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryBarrier( *reinterpret_cast<MemoryBarrier const *>( &rhs ) ) {}
  42170. MemoryBarrier & operator=( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42171. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42172. MemoryBarrier & operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT
  42173. {
  42174. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryBarrier const *>( &rhs );
  42175. return *this;
  42176. }
  42177. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42178. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42179. {
  42180. pNext = pNext_;
  42181. return *this;
  42182. }
  42183. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  42184. {
  42185. srcAccessMask = srcAccessMask_;
  42186. return *this;
  42187. }
  42188. VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  42189. {
  42190. dstAccessMask = dstAccessMask_;
  42191. return *this;
  42192. }
  42193. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42194. operator VkMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT
  42195. {
  42196. return *reinterpret_cast<const VkMemoryBarrier *>( this );
  42197. }
  42198. operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT
  42199. {
  42200. return *reinterpret_cast<VkMemoryBarrier *>( this );
  42201. }
  42202. #if defined( VULKAN_HPP_USE_REFLECT )
  42203. # if 14 <= VULKAN_HPP_CPP_VERSION
  42204. auto
  42205. # else
  42206. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  42207. const void * const &,
  42208. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  42209. VULKAN_HPP_NAMESPACE::AccessFlags const &>
  42210. # endif
  42211. reflect() const VULKAN_HPP_NOEXCEPT
  42212. {
  42213. return std::tie( sType, pNext, srcAccessMask, dstAccessMask );
  42214. }
  42215. #endif
  42216. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42217. auto operator<=>( MemoryBarrier const & ) const = default;
  42218. #else
  42219. bool operator==( MemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  42220. {
  42221. # if defined( VULKAN_HPP_USE_REFLECT )
  42222. return this->reflect() == rhs.reflect();
  42223. # else
  42224. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcAccessMask == rhs.srcAccessMask ) && ( dstAccessMask == rhs.dstAccessMask );
  42225. # endif
  42226. }
  42227. bool operator!=( MemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT
  42228. {
  42229. return !operator==( rhs );
  42230. }
  42231. #endif
  42232. public:
  42233. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier;
  42234. const void * pNext = {};
  42235. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
  42236. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
  42237. };
  42238. template <>
  42239. struct CppType<StructureType, StructureType::eMemoryBarrier>
  42240. {
  42241. using Type = MemoryBarrier;
  42242. };
  42243. struct MemoryDedicatedAllocateInfo
  42244. {
  42245. using NativeType = VkMemoryDedicatedAllocateInfo;
  42246. static const bool allowDuplicate = false;
  42247. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfo;
  42248. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42249. VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( VULKAN_HPP_NAMESPACE::Image image_ = {},
  42250. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  42251. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42252. : pNext( pNext_ )
  42253. , image( image_ )
  42254. , buffer( buffer_ )
  42255. {
  42256. }
  42257. VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42258. MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  42259. : MemoryDedicatedAllocateInfo( *reinterpret_cast<MemoryDedicatedAllocateInfo const *>( &rhs ) )
  42260. {
  42261. }
  42262. MemoryDedicatedAllocateInfo & operator=( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42263. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42264. MemoryDedicatedAllocateInfo & operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  42265. {
  42266. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo const *>( &rhs );
  42267. return *this;
  42268. }
  42269. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42270. VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42271. {
  42272. pNext = pNext_;
  42273. return *this;
  42274. }
  42275. VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT
  42276. {
  42277. image = image_;
  42278. return *this;
  42279. }
  42280. VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  42281. {
  42282. buffer = buffer_;
  42283. return *this;
  42284. }
  42285. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42286. operator VkMemoryDedicatedAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  42287. {
  42288. return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo *>( this );
  42289. }
  42290. operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT
  42291. {
  42292. return *reinterpret_cast<VkMemoryDedicatedAllocateInfo *>( this );
  42293. }
  42294. #if defined( VULKAN_HPP_USE_REFLECT )
  42295. # if 14 <= VULKAN_HPP_CPP_VERSION
  42296. auto
  42297. # else
  42298. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Image const &, VULKAN_HPP_NAMESPACE::Buffer const &>
  42299. # endif
  42300. reflect() const VULKAN_HPP_NOEXCEPT
  42301. {
  42302. return std::tie( sType, pNext, image, buffer );
  42303. }
  42304. #endif
  42305. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42306. auto operator<=>( MemoryDedicatedAllocateInfo const & ) const = default;
  42307. #else
  42308. bool operator==( MemoryDedicatedAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  42309. {
  42310. # if defined( VULKAN_HPP_USE_REFLECT )
  42311. return this->reflect() == rhs.reflect();
  42312. # else
  42313. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( buffer == rhs.buffer );
  42314. # endif
  42315. }
  42316. bool operator!=( MemoryDedicatedAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  42317. {
  42318. return !operator==( rhs );
  42319. }
  42320. #endif
  42321. public:
  42322. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo;
  42323. const void * pNext = {};
  42324. VULKAN_HPP_NAMESPACE::Image image = {};
  42325. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  42326. };
  42327. template <>
  42328. struct CppType<StructureType, StructureType::eMemoryDedicatedAllocateInfo>
  42329. {
  42330. using Type = MemoryDedicatedAllocateInfo;
  42331. };
  42332. using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
  42333. struct MemoryDedicatedRequirements
  42334. {
  42335. using NativeType = VkMemoryDedicatedRequirements;
  42336. static const bool allowDuplicate = false;
  42337. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedRequirements;
  42338. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42339. VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {},
  42340. VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {},
  42341. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42342. : pNext( pNext_ )
  42343. , prefersDedicatedAllocation( prefersDedicatedAllocation_ )
  42344. , requiresDedicatedAllocation( requiresDedicatedAllocation_ )
  42345. {
  42346. }
  42347. VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42348. MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  42349. : MemoryDedicatedRequirements( *reinterpret_cast<MemoryDedicatedRequirements const *>( &rhs ) )
  42350. {
  42351. }
  42352. MemoryDedicatedRequirements & operator=( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42353. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42354. MemoryDedicatedRequirements & operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  42355. {
  42356. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const *>( &rhs );
  42357. return *this;
  42358. }
  42359. operator VkMemoryDedicatedRequirements const &() const VULKAN_HPP_NOEXCEPT
  42360. {
  42361. return *reinterpret_cast<const VkMemoryDedicatedRequirements *>( this );
  42362. }
  42363. operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT
  42364. {
  42365. return *reinterpret_cast<VkMemoryDedicatedRequirements *>( this );
  42366. }
  42367. #if defined( VULKAN_HPP_USE_REFLECT )
  42368. # if 14 <= VULKAN_HPP_CPP_VERSION
  42369. auto
  42370. # else
  42371. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  42372. # endif
  42373. reflect() const VULKAN_HPP_NOEXCEPT
  42374. {
  42375. return std::tie( sType, pNext, prefersDedicatedAllocation, requiresDedicatedAllocation );
  42376. }
  42377. #endif
  42378. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42379. auto operator<=>( MemoryDedicatedRequirements const & ) const = default;
  42380. #else
  42381. bool operator==( MemoryDedicatedRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  42382. {
  42383. # if defined( VULKAN_HPP_USE_REFLECT )
  42384. return this->reflect() == rhs.reflect();
  42385. # else
  42386. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation ) &&
  42387. ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation );
  42388. # endif
  42389. }
  42390. bool operator!=( MemoryDedicatedRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  42391. {
  42392. return !operator==( rhs );
  42393. }
  42394. #endif
  42395. public:
  42396. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements;
  42397. void * pNext = {};
  42398. VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {};
  42399. VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {};
  42400. };
  42401. template <>
  42402. struct CppType<StructureType, StructureType::eMemoryDedicatedRequirements>
  42403. {
  42404. using Type = MemoryDedicatedRequirements;
  42405. };
  42406. using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
  42407. struct MemoryFdPropertiesKHR
  42408. {
  42409. using NativeType = VkMemoryFdPropertiesKHR;
  42410. static const bool allowDuplicate = false;
  42411. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryFdPropertiesKHR;
  42412. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42413. VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42414. : pNext( pNext_ )
  42415. , memoryTypeBits( memoryTypeBits_ )
  42416. {
  42417. }
  42418. VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42419. MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  42420. : MemoryFdPropertiesKHR( *reinterpret_cast<MemoryFdPropertiesKHR const *>( &rhs ) )
  42421. {
  42422. }
  42423. MemoryFdPropertiesKHR & operator=( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42424. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42425. MemoryFdPropertiesKHR & operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  42426. {
  42427. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR const *>( &rhs );
  42428. return *this;
  42429. }
  42430. operator VkMemoryFdPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  42431. {
  42432. return *reinterpret_cast<const VkMemoryFdPropertiesKHR *>( this );
  42433. }
  42434. operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  42435. {
  42436. return *reinterpret_cast<VkMemoryFdPropertiesKHR *>( this );
  42437. }
  42438. #if defined( VULKAN_HPP_USE_REFLECT )
  42439. # if 14 <= VULKAN_HPP_CPP_VERSION
  42440. auto
  42441. # else
  42442. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  42443. # endif
  42444. reflect() const VULKAN_HPP_NOEXCEPT
  42445. {
  42446. return std::tie( sType, pNext, memoryTypeBits );
  42447. }
  42448. #endif
  42449. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42450. auto operator<=>( MemoryFdPropertiesKHR const & ) const = default;
  42451. #else
  42452. bool operator==( MemoryFdPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  42453. {
  42454. # if defined( VULKAN_HPP_USE_REFLECT )
  42455. return this->reflect() == rhs.reflect();
  42456. # else
  42457. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits );
  42458. # endif
  42459. }
  42460. bool operator!=( MemoryFdPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  42461. {
  42462. return !operator==( rhs );
  42463. }
  42464. #endif
  42465. public:
  42466. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR;
  42467. void * pNext = {};
  42468. uint32_t memoryTypeBits = {};
  42469. };
  42470. template <>
  42471. struct CppType<StructureType, StructureType::eMemoryFdPropertiesKHR>
  42472. {
  42473. using Type = MemoryFdPropertiesKHR;
  42474. };
  42475. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  42476. struct MemoryGetAndroidHardwareBufferInfoANDROID
  42477. {
  42478. using NativeType = VkMemoryGetAndroidHardwareBufferInfoANDROID;
  42479. static const bool allowDuplicate = false;
  42480. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
  42481. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42482. VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  42483. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42484. : pNext( pNext_ )
  42485. , memory( memory_ )
  42486. {
  42487. }
  42488. VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42489. MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  42490. : MemoryGetAndroidHardwareBufferInfoANDROID( *reinterpret_cast<MemoryGetAndroidHardwareBufferInfoANDROID const *>( &rhs ) )
  42491. {
  42492. }
  42493. MemoryGetAndroidHardwareBufferInfoANDROID & operator=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42494. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42495. MemoryGetAndroidHardwareBufferInfoANDROID & operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  42496. {
  42497. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID const *>( &rhs );
  42498. return *this;
  42499. }
  42500. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42501. VULKAN_HPP_CONSTEXPR_14 MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42502. {
  42503. pNext = pNext_;
  42504. return *this;
  42505. }
  42506. VULKAN_HPP_CONSTEXPR_14 MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  42507. {
  42508. memory = memory_;
  42509. return *this;
  42510. }
  42511. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42512. operator VkMemoryGetAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT
  42513. {
  42514. return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( this );
  42515. }
  42516. operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT
  42517. {
  42518. return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID *>( this );
  42519. }
  42520. # if defined( VULKAN_HPP_USE_REFLECT )
  42521. # if 14 <= VULKAN_HPP_CPP_VERSION
  42522. auto
  42523. # else
  42524. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::DeviceMemory const &>
  42525. # endif
  42526. reflect() const VULKAN_HPP_NOEXCEPT
  42527. {
  42528. return std::tie( sType, pNext, memory );
  42529. }
  42530. # endif
  42531. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42532. auto operator<=>( MemoryGetAndroidHardwareBufferInfoANDROID const & ) const = default;
  42533. # else
  42534. bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  42535. {
  42536. # if defined( VULKAN_HPP_USE_REFLECT )
  42537. return this->reflect() == rhs.reflect();
  42538. # else
  42539. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory );
  42540. # endif
  42541. }
  42542. bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  42543. {
  42544. return !operator==( rhs );
  42545. }
  42546. # endif
  42547. public:
  42548. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
  42549. const void * pNext = {};
  42550. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  42551. };
  42552. template <>
  42553. struct CppType<StructureType, StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID>
  42554. {
  42555. using Type = MemoryGetAndroidHardwareBufferInfoANDROID;
  42556. };
  42557. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  42558. struct MemoryGetFdInfoKHR
  42559. {
  42560. using NativeType = VkMemoryGetFdInfoKHR;
  42561. static const bool allowDuplicate = false;
  42562. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetFdInfoKHR;
  42563. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42564. VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR(
  42565. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  42566. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  42567. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42568. : pNext( pNext_ )
  42569. , memory( memory_ )
  42570. , handleType( handleType_ )
  42571. {
  42572. }
  42573. VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42574. MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryGetFdInfoKHR( *reinterpret_cast<MemoryGetFdInfoKHR const *>( &rhs ) ) {}
  42575. MemoryGetFdInfoKHR & operator=( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42576. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42577. MemoryGetFdInfoKHR & operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  42578. {
  42579. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR const *>( &rhs );
  42580. return *this;
  42581. }
  42582. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42583. VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42584. {
  42585. pNext = pNext_;
  42586. return *this;
  42587. }
  42588. VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  42589. {
  42590. memory = memory_;
  42591. return *this;
  42592. }
  42593. VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  42594. {
  42595. handleType = handleType_;
  42596. return *this;
  42597. }
  42598. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42599. operator VkMemoryGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  42600. {
  42601. return *reinterpret_cast<const VkMemoryGetFdInfoKHR *>( this );
  42602. }
  42603. operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  42604. {
  42605. return *reinterpret_cast<VkMemoryGetFdInfoKHR *>( this );
  42606. }
  42607. #if defined( VULKAN_HPP_USE_REFLECT )
  42608. # if 14 <= VULKAN_HPP_CPP_VERSION
  42609. auto
  42610. # else
  42611. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  42612. const void * const &,
  42613. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  42614. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  42615. # endif
  42616. reflect() const VULKAN_HPP_NOEXCEPT
  42617. {
  42618. return std::tie( sType, pNext, memory, handleType );
  42619. }
  42620. #endif
  42621. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42622. auto operator<=>( MemoryGetFdInfoKHR const & ) const = default;
  42623. #else
  42624. bool operator==( MemoryGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  42625. {
  42626. # if defined( VULKAN_HPP_USE_REFLECT )
  42627. return this->reflect() == rhs.reflect();
  42628. # else
  42629. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( handleType == rhs.handleType );
  42630. # endif
  42631. }
  42632. bool operator!=( MemoryGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  42633. {
  42634. return !operator==( rhs );
  42635. }
  42636. #endif
  42637. public:
  42638. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR;
  42639. const void * pNext = {};
  42640. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  42641. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  42642. };
  42643. template <>
  42644. struct CppType<StructureType, StructureType::eMemoryGetFdInfoKHR>
  42645. {
  42646. using Type = MemoryGetFdInfoKHR;
  42647. };
  42648. struct MemoryGetRemoteAddressInfoNV
  42649. {
  42650. using NativeType = VkMemoryGetRemoteAddressInfoNV;
  42651. static const bool allowDuplicate = false;
  42652. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetRemoteAddressInfoNV;
  42653. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42654. VULKAN_HPP_CONSTEXPR MemoryGetRemoteAddressInfoNV(
  42655. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  42656. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  42657. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42658. : pNext( pNext_ )
  42659. , memory( memory_ )
  42660. , handleType( handleType_ )
  42661. {
  42662. }
  42663. VULKAN_HPP_CONSTEXPR MemoryGetRemoteAddressInfoNV( MemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42664. MemoryGetRemoteAddressInfoNV( VkMemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  42665. : MemoryGetRemoteAddressInfoNV( *reinterpret_cast<MemoryGetRemoteAddressInfoNV const *>( &rhs ) )
  42666. {
  42667. }
  42668. MemoryGetRemoteAddressInfoNV & operator=( MemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42669. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42670. MemoryGetRemoteAddressInfoNV & operator=( VkMemoryGetRemoteAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  42671. {
  42672. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV const *>( &rhs );
  42673. return *this;
  42674. }
  42675. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42676. VULKAN_HPP_CONSTEXPR_14 MemoryGetRemoteAddressInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42677. {
  42678. pNext = pNext_;
  42679. return *this;
  42680. }
  42681. VULKAN_HPP_CONSTEXPR_14 MemoryGetRemoteAddressInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  42682. {
  42683. memory = memory_;
  42684. return *this;
  42685. }
  42686. VULKAN_HPP_CONSTEXPR_14 MemoryGetRemoteAddressInfoNV &
  42687. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  42688. {
  42689. handleType = handleType_;
  42690. return *this;
  42691. }
  42692. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42693. operator VkMemoryGetRemoteAddressInfoNV const &() const VULKAN_HPP_NOEXCEPT
  42694. {
  42695. return *reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( this );
  42696. }
  42697. operator VkMemoryGetRemoteAddressInfoNV &() VULKAN_HPP_NOEXCEPT
  42698. {
  42699. return *reinterpret_cast<VkMemoryGetRemoteAddressInfoNV *>( this );
  42700. }
  42701. #if defined( VULKAN_HPP_USE_REFLECT )
  42702. # if 14 <= VULKAN_HPP_CPP_VERSION
  42703. auto
  42704. # else
  42705. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  42706. const void * const &,
  42707. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  42708. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  42709. # endif
  42710. reflect() const VULKAN_HPP_NOEXCEPT
  42711. {
  42712. return std::tie( sType, pNext, memory, handleType );
  42713. }
  42714. #endif
  42715. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42716. auto operator<=>( MemoryGetRemoteAddressInfoNV const & ) const = default;
  42717. #else
  42718. bool operator==( MemoryGetRemoteAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  42719. {
  42720. # if defined( VULKAN_HPP_USE_REFLECT )
  42721. return this->reflect() == rhs.reflect();
  42722. # else
  42723. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( handleType == rhs.handleType );
  42724. # endif
  42725. }
  42726. bool operator!=( MemoryGetRemoteAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  42727. {
  42728. return !operator==( rhs );
  42729. }
  42730. #endif
  42731. public:
  42732. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetRemoteAddressInfoNV;
  42733. const void * pNext = {};
  42734. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  42735. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  42736. };
  42737. template <>
  42738. struct CppType<StructureType, StructureType::eMemoryGetRemoteAddressInfoNV>
  42739. {
  42740. using Type = MemoryGetRemoteAddressInfoNV;
  42741. };
  42742. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  42743. struct MemoryGetWin32HandleInfoKHR
  42744. {
  42745. using NativeType = VkMemoryGetWin32HandleInfoKHR;
  42746. static const bool allowDuplicate = false;
  42747. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetWin32HandleInfoKHR;
  42748. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42749. VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR(
  42750. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  42751. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  42752. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42753. : pNext( pNext_ )
  42754. , memory( memory_ )
  42755. , handleType( handleType_ )
  42756. {
  42757. }
  42758. VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42759. MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  42760. : MemoryGetWin32HandleInfoKHR( *reinterpret_cast<MemoryGetWin32HandleInfoKHR const *>( &rhs ) )
  42761. {
  42762. }
  42763. MemoryGetWin32HandleInfoKHR & operator=( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42764. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42765. MemoryGetWin32HandleInfoKHR & operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  42766. {
  42767. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR const *>( &rhs );
  42768. return *this;
  42769. }
  42770. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42771. VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42772. {
  42773. pNext = pNext_;
  42774. return *this;
  42775. }
  42776. VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  42777. {
  42778. memory = memory_;
  42779. return *this;
  42780. }
  42781. VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR &
  42782. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  42783. {
  42784. handleType = handleType_;
  42785. return *this;
  42786. }
  42787. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42788. operator VkMemoryGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  42789. {
  42790. return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( this );
  42791. }
  42792. operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  42793. {
  42794. return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR *>( this );
  42795. }
  42796. # if defined( VULKAN_HPP_USE_REFLECT )
  42797. # if 14 <= VULKAN_HPP_CPP_VERSION
  42798. auto
  42799. # else
  42800. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  42801. const void * const &,
  42802. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  42803. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  42804. # endif
  42805. reflect() const VULKAN_HPP_NOEXCEPT
  42806. {
  42807. return std::tie( sType, pNext, memory, handleType );
  42808. }
  42809. # endif
  42810. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42811. auto operator<=>( MemoryGetWin32HandleInfoKHR const & ) const = default;
  42812. # else
  42813. bool operator==( MemoryGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  42814. {
  42815. # if defined( VULKAN_HPP_USE_REFLECT )
  42816. return this->reflect() == rhs.reflect();
  42817. # else
  42818. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( handleType == rhs.handleType );
  42819. # endif
  42820. }
  42821. bool operator!=( MemoryGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  42822. {
  42823. return !operator==( rhs );
  42824. }
  42825. # endif
  42826. public:
  42827. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR;
  42828. const void * pNext = {};
  42829. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  42830. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  42831. };
  42832. template <>
  42833. struct CppType<StructureType, StructureType::eMemoryGetWin32HandleInfoKHR>
  42834. {
  42835. using Type = MemoryGetWin32HandleInfoKHR;
  42836. };
  42837. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  42838. #if defined( VK_USE_PLATFORM_FUCHSIA )
  42839. struct MemoryGetZirconHandleInfoFUCHSIA
  42840. {
  42841. using NativeType = VkMemoryGetZirconHandleInfoFUCHSIA;
  42842. static const bool allowDuplicate = false;
  42843. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetZirconHandleInfoFUCHSIA;
  42844. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42845. VULKAN_HPP_CONSTEXPR MemoryGetZirconHandleInfoFUCHSIA(
  42846. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  42847. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  42848. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42849. : pNext( pNext_ )
  42850. , memory( memory_ )
  42851. , handleType( handleType_ )
  42852. {
  42853. }
  42854. VULKAN_HPP_CONSTEXPR MemoryGetZirconHandleInfoFUCHSIA( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42855. MemoryGetZirconHandleInfoFUCHSIA( VkMemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  42856. : MemoryGetZirconHandleInfoFUCHSIA( *reinterpret_cast<MemoryGetZirconHandleInfoFUCHSIA const *>( &rhs ) )
  42857. {
  42858. }
  42859. MemoryGetZirconHandleInfoFUCHSIA & operator=( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42860. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42861. MemoryGetZirconHandleInfoFUCHSIA & operator=( VkMemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  42862. {
  42863. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA const *>( &rhs );
  42864. return *this;
  42865. }
  42866. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  42867. VULKAN_HPP_CONSTEXPR_14 MemoryGetZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  42868. {
  42869. pNext = pNext_;
  42870. return *this;
  42871. }
  42872. VULKAN_HPP_CONSTEXPR_14 MemoryGetZirconHandleInfoFUCHSIA & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  42873. {
  42874. memory = memory_;
  42875. return *this;
  42876. }
  42877. VULKAN_HPP_CONSTEXPR_14 MemoryGetZirconHandleInfoFUCHSIA &
  42878. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  42879. {
  42880. handleType = handleType_;
  42881. return *this;
  42882. }
  42883. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  42884. operator VkMemoryGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  42885. {
  42886. return *reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( this );
  42887. }
  42888. operator VkMemoryGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  42889. {
  42890. return *reinterpret_cast<VkMemoryGetZirconHandleInfoFUCHSIA *>( this );
  42891. }
  42892. # if defined( VULKAN_HPP_USE_REFLECT )
  42893. # if 14 <= VULKAN_HPP_CPP_VERSION
  42894. auto
  42895. # else
  42896. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  42897. const void * const &,
  42898. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  42899. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  42900. # endif
  42901. reflect() const VULKAN_HPP_NOEXCEPT
  42902. {
  42903. return std::tie( sType, pNext, memory, handleType );
  42904. }
  42905. # endif
  42906. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42907. auto operator<=>( MemoryGetZirconHandleInfoFUCHSIA const & ) const = default;
  42908. # else
  42909. bool operator==( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  42910. {
  42911. # if defined( VULKAN_HPP_USE_REFLECT )
  42912. return this->reflect() == rhs.reflect();
  42913. # else
  42914. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( handleType == rhs.handleType );
  42915. # endif
  42916. }
  42917. bool operator!=( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  42918. {
  42919. return !operator==( rhs );
  42920. }
  42921. # endif
  42922. public:
  42923. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetZirconHandleInfoFUCHSIA;
  42924. const void * pNext = {};
  42925. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  42926. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  42927. };
  42928. template <>
  42929. struct CppType<StructureType, StructureType::eMemoryGetZirconHandleInfoFUCHSIA>
  42930. {
  42931. using Type = MemoryGetZirconHandleInfoFUCHSIA;
  42932. };
  42933. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  42934. struct MemoryHeap
  42935. {
  42936. using NativeType = VkMemoryHeap;
  42937. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42938. VULKAN_HPP_CONSTEXPR MemoryHeap( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
  42939. : size( size_ )
  42940. , flags( flags_ )
  42941. {
  42942. }
  42943. VULKAN_HPP_CONSTEXPR MemoryHeap( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42944. MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryHeap( *reinterpret_cast<MemoryHeap const *>( &rhs ) ) {}
  42945. MemoryHeap & operator=( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  42946. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  42947. MemoryHeap & operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT
  42948. {
  42949. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHeap const *>( &rhs );
  42950. return *this;
  42951. }
  42952. operator VkMemoryHeap const &() const VULKAN_HPP_NOEXCEPT
  42953. {
  42954. return *reinterpret_cast<const VkMemoryHeap *>( this );
  42955. }
  42956. operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT
  42957. {
  42958. return *reinterpret_cast<VkMemoryHeap *>( this );
  42959. }
  42960. #if defined( VULKAN_HPP_USE_REFLECT )
  42961. # if 14 <= VULKAN_HPP_CPP_VERSION
  42962. auto
  42963. # else
  42964. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::MemoryHeapFlags const &>
  42965. # endif
  42966. reflect() const VULKAN_HPP_NOEXCEPT
  42967. {
  42968. return std::tie( size, flags );
  42969. }
  42970. #endif
  42971. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  42972. auto operator<=>( MemoryHeap const & ) const = default;
  42973. #else
  42974. bool operator==( MemoryHeap const & rhs ) const VULKAN_HPP_NOEXCEPT
  42975. {
  42976. # if defined( VULKAN_HPP_USE_REFLECT )
  42977. return this->reflect() == rhs.reflect();
  42978. # else
  42979. return ( size == rhs.size ) && ( flags == rhs.flags );
  42980. # endif
  42981. }
  42982. bool operator!=( MemoryHeap const & rhs ) const VULKAN_HPP_NOEXCEPT
  42983. {
  42984. return !operator==( rhs );
  42985. }
  42986. #endif
  42987. public:
  42988. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  42989. VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {};
  42990. };
  42991. struct MemoryHostPointerPropertiesEXT
  42992. {
  42993. using NativeType = VkMemoryHostPointerPropertiesEXT;
  42994. static const bool allowDuplicate = false;
  42995. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryHostPointerPropertiesEXT;
  42996. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  42997. VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  42998. : pNext( pNext_ )
  42999. , memoryTypeBits( memoryTypeBits_ )
  43000. {
  43001. }
  43002. VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43003. MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43004. : MemoryHostPointerPropertiesEXT( *reinterpret_cast<MemoryHostPointerPropertiesEXT const *>( &rhs ) )
  43005. {
  43006. }
  43007. MemoryHostPointerPropertiesEXT & operator=( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43008. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43009. MemoryHostPointerPropertiesEXT & operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43010. {
  43011. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT const *>( &rhs );
  43012. return *this;
  43013. }
  43014. operator VkMemoryHostPointerPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  43015. {
  43016. return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT *>( this );
  43017. }
  43018. operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  43019. {
  43020. return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( this );
  43021. }
  43022. #if defined( VULKAN_HPP_USE_REFLECT )
  43023. # if 14 <= VULKAN_HPP_CPP_VERSION
  43024. auto
  43025. # else
  43026. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  43027. # endif
  43028. reflect() const VULKAN_HPP_NOEXCEPT
  43029. {
  43030. return std::tie( sType, pNext, memoryTypeBits );
  43031. }
  43032. #endif
  43033. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43034. auto operator<=>( MemoryHostPointerPropertiesEXT const & ) const = default;
  43035. #else
  43036. bool operator==( MemoryHostPointerPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43037. {
  43038. # if defined( VULKAN_HPP_USE_REFLECT )
  43039. return this->reflect() == rhs.reflect();
  43040. # else
  43041. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits );
  43042. # endif
  43043. }
  43044. bool operator!=( MemoryHostPointerPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43045. {
  43046. return !operator==( rhs );
  43047. }
  43048. #endif
  43049. public:
  43050. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT;
  43051. void * pNext = {};
  43052. uint32_t memoryTypeBits = {};
  43053. };
  43054. template <>
  43055. struct CppType<StructureType, StructureType::eMemoryHostPointerPropertiesEXT>
  43056. {
  43057. using Type = MemoryHostPointerPropertiesEXT;
  43058. };
  43059. struct MemoryMapInfoKHR
  43060. {
  43061. using NativeType = VkMemoryMapInfoKHR;
  43062. static const bool allowDuplicate = false;
  43063. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryMapInfoKHR;
  43064. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43065. VULKAN_HPP_CONSTEXPR MemoryMapInfoKHR( VULKAN_HPP_NAMESPACE::MemoryMapFlags flags_ = {},
  43066. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  43067. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  43068. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  43069. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43070. : pNext( pNext_ )
  43071. , flags( flags_ )
  43072. , memory( memory_ )
  43073. , offset( offset_ )
  43074. , size( size_ )
  43075. {
  43076. }
  43077. VULKAN_HPP_CONSTEXPR MemoryMapInfoKHR( MemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43078. MemoryMapInfoKHR( VkMemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryMapInfoKHR( *reinterpret_cast<MemoryMapInfoKHR const *>( &rhs ) ) {}
  43079. MemoryMapInfoKHR & operator=( MemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43080. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43081. MemoryMapInfoKHR & operator=( VkMemoryMapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  43082. {
  43083. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR const *>( &rhs );
  43084. return *this;
  43085. }
  43086. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43087. VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43088. {
  43089. pNext = pNext_;
  43090. return *this;
  43091. }
  43092. VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::MemoryMapFlags flags_ ) VULKAN_HPP_NOEXCEPT
  43093. {
  43094. flags = flags_;
  43095. return *this;
  43096. }
  43097. VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  43098. {
  43099. memory = memory_;
  43100. return *this;
  43101. }
  43102. VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  43103. {
  43104. offset = offset_;
  43105. return *this;
  43106. }
  43107. VULKAN_HPP_CONSTEXPR_14 MemoryMapInfoKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  43108. {
  43109. size = size_;
  43110. return *this;
  43111. }
  43112. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43113. operator VkMemoryMapInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  43114. {
  43115. return *reinterpret_cast<const VkMemoryMapInfoKHR *>( this );
  43116. }
  43117. operator VkMemoryMapInfoKHR &() VULKAN_HPP_NOEXCEPT
  43118. {
  43119. return *reinterpret_cast<VkMemoryMapInfoKHR *>( this );
  43120. }
  43121. #if defined( VULKAN_HPP_USE_REFLECT )
  43122. # if 14 <= VULKAN_HPP_CPP_VERSION
  43123. auto
  43124. # else
  43125. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  43126. const void * const &,
  43127. VULKAN_HPP_NAMESPACE::MemoryMapFlags const &,
  43128. VULKAN_HPP_NAMESPACE::DeviceMemory const &,
  43129. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  43130. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  43131. # endif
  43132. reflect() const VULKAN_HPP_NOEXCEPT
  43133. {
  43134. return std::tie( sType, pNext, flags, memory, offset, size );
  43135. }
  43136. #endif
  43137. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43138. auto operator<=>( MemoryMapInfoKHR const & ) const = default;
  43139. #else
  43140. bool operator==( MemoryMapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  43141. {
  43142. # if defined( VULKAN_HPP_USE_REFLECT )
  43143. return this->reflect() == rhs.reflect();
  43144. # else
  43145. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( memory == rhs.memory ) && ( offset == rhs.offset ) &&
  43146. ( size == rhs.size );
  43147. # endif
  43148. }
  43149. bool operator!=( MemoryMapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  43150. {
  43151. return !operator==( rhs );
  43152. }
  43153. #endif
  43154. public:
  43155. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryMapInfoKHR;
  43156. const void * pNext = {};
  43157. VULKAN_HPP_NAMESPACE::MemoryMapFlags flags = {};
  43158. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  43159. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  43160. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  43161. };
  43162. template <>
  43163. struct CppType<StructureType, StructureType::eMemoryMapInfoKHR>
  43164. {
  43165. using Type = MemoryMapInfoKHR;
  43166. };
  43167. struct MemoryOpaqueCaptureAddressAllocateInfo
  43168. {
  43169. using NativeType = VkMemoryOpaqueCaptureAddressAllocateInfo;
  43170. static const bool allowDuplicate = false;
  43171. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
  43172. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43173. VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( uint64_t opaqueCaptureAddress_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43174. : pNext( pNext_ )
  43175. , opaqueCaptureAddress( opaqueCaptureAddress_ )
  43176. {
  43177. }
  43178. VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43179. MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  43180. : MemoryOpaqueCaptureAddressAllocateInfo( *reinterpret_cast<MemoryOpaqueCaptureAddressAllocateInfo const *>( &rhs ) )
  43181. {
  43182. }
  43183. MemoryOpaqueCaptureAddressAllocateInfo & operator=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43184. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43185. MemoryOpaqueCaptureAddressAllocateInfo & operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  43186. {
  43187. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo const *>( &rhs );
  43188. return *this;
  43189. }
  43190. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43191. VULKAN_HPP_CONSTEXPR_14 MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43192. {
  43193. pNext = pNext_;
  43194. return *this;
  43195. }
  43196. VULKAN_HPP_CONSTEXPR_14 MemoryOpaqueCaptureAddressAllocateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT
  43197. {
  43198. opaqueCaptureAddress = opaqueCaptureAddress_;
  43199. return *this;
  43200. }
  43201. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43202. operator VkMemoryOpaqueCaptureAddressAllocateInfo const &() const VULKAN_HPP_NOEXCEPT
  43203. {
  43204. return *reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo *>( this );
  43205. }
  43206. operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT
  43207. {
  43208. return *reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo *>( this );
  43209. }
  43210. #if defined( VULKAN_HPP_USE_REFLECT )
  43211. # if 14 <= VULKAN_HPP_CPP_VERSION
  43212. auto
  43213. # else
  43214. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
  43215. # endif
  43216. reflect() const VULKAN_HPP_NOEXCEPT
  43217. {
  43218. return std::tie( sType, pNext, opaqueCaptureAddress );
  43219. }
  43220. #endif
  43221. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43222. auto operator<=>( MemoryOpaqueCaptureAddressAllocateInfo const & ) const = default;
  43223. #else
  43224. bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  43225. {
  43226. # if defined( VULKAN_HPP_USE_REFLECT )
  43227. return this->reflect() == rhs.reflect();
  43228. # else
  43229. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress );
  43230. # endif
  43231. }
  43232. bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  43233. {
  43234. return !operator==( rhs );
  43235. }
  43236. #endif
  43237. public:
  43238. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo;
  43239. const void * pNext = {};
  43240. uint64_t opaqueCaptureAddress = {};
  43241. };
  43242. template <>
  43243. struct CppType<StructureType, StructureType::eMemoryOpaqueCaptureAddressAllocateInfo>
  43244. {
  43245. using Type = MemoryOpaqueCaptureAddressAllocateInfo;
  43246. };
  43247. using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
  43248. struct MemoryPriorityAllocateInfoEXT
  43249. {
  43250. using NativeType = VkMemoryPriorityAllocateInfoEXT;
  43251. static const bool allowDuplicate = false;
  43252. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryPriorityAllocateInfoEXT;
  43253. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43254. VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( float priority_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43255. : pNext( pNext_ )
  43256. , priority( priority_ )
  43257. {
  43258. }
  43259. VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43260. MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43261. : MemoryPriorityAllocateInfoEXT( *reinterpret_cast<MemoryPriorityAllocateInfoEXT const *>( &rhs ) )
  43262. {
  43263. }
  43264. MemoryPriorityAllocateInfoEXT & operator=( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43265. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43266. MemoryPriorityAllocateInfoEXT & operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43267. {
  43268. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT const *>( &rhs );
  43269. return *this;
  43270. }
  43271. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43272. VULKAN_HPP_CONSTEXPR_14 MemoryPriorityAllocateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43273. {
  43274. pNext = pNext_;
  43275. return *this;
  43276. }
  43277. VULKAN_HPP_CONSTEXPR_14 MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT
  43278. {
  43279. priority = priority_;
  43280. return *this;
  43281. }
  43282. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43283. operator VkMemoryPriorityAllocateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  43284. {
  43285. return *reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT *>( this );
  43286. }
  43287. operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT
  43288. {
  43289. return *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT *>( this );
  43290. }
  43291. #if defined( VULKAN_HPP_USE_REFLECT )
  43292. # if 14 <= VULKAN_HPP_CPP_VERSION
  43293. auto
  43294. # else
  43295. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, float const &>
  43296. # endif
  43297. reflect() const VULKAN_HPP_NOEXCEPT
  43298. {
  43299. return std::tie( sType, pNext, priority );
  43300. }
  43301. #endif
  43302. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43303. auto operator<=>( MemoryPriorityAllocateInfoEXT const & ) const = default;
  43304. #else
  43305. bool operator==( MemoryPriorityAllocateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43306. {
  43307. # if defined( VULKAN_HPP_USE_REFLECT )
  43308. return this->reflect() == rhs.reflect();
  43309. # else
  43310. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( priority == rhs.priority );
  43311. # endif
  43312. }
  43313. bool operator!=( MemoryPriorityAllocateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43314. {
  43315. return !operator==( rhs );
  43316. }
  43317. #endif
  43318. public:
  43319. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT;
  43320. const void * pNext = {};
  43321. float priority = {};
  43322. };
  43323. template <>
  43324. struct CppType<StructureType, StructureType::eMemoryPriorityAllocateInfoEXT>
  43325. {
  43326. using Type = MemoryPriorityAllocateInfoEXT;
  43327. };
  43328. struct MemoryRequirements
  43329. {
  43330. using NativeType = VkMemoryRequirements;
  43331. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43332. VULKAN_HPP_CONSTEXPR MemoryRequirements( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  43333. VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {},
  43334. uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT
  43335. : size( size_ )
  43336. , alignment( alignment_ )
  43337. , memoryTypeBits( memoryTypeBits_ )
  43338. {
  43339. }
  43340. VULKAN_HPP_CONSTEXPR MemoryRequirements( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43341. MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryRequirements( *reinterpret_cast<MemoryRequirements const *>( &rhs ) ) {}
  43342. MemoryRequirements & operator=( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43343. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43344. MemoryRequirements & operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  43345. {
  43346. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements const *>( &rhs );
  43347. return *this;
  43348. }
  43349. operator VkMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
  43350. {
  43351. return *reinterpret_cast<const VkMemoryRequirements *>( this );
  43352. }
  43353. operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT
  43354. {
  43355. return *reinterpret_cast<VkMemoryRequirements *>( this );
  43356. }
  43357. #if defined( VULKAN_HPP_USE_REFLECT )
  43358. # if 14 <= VULKAN_HPP_CPP_VERSION
  43359. auto
  43360. # else
  43361. std::tuple<VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
  43362. # endif
  43363. reflect() const VULKAN_HPP_NOEXCEPT
  43364. {
  43365. return std::tie( size, alignment, memoryTypeBits );
  43366. }
  43367. #endif
  43368. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43369. auto operator<=>( MemoryRequirements const & ) const = default;
  43370. #else
  43371. bool operator==( MemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  43372. {
  43373. # if defined( VULKAN_HPP_USE_REFLECT )
  43374. return this->reflect() == rhs.reflect();
  43375. # else
  43376. return ( size == rhs.size ) && ( alignment == rhs.alignment ) && ( memoryTypeBits == rhs.memoryTypeBits );
  43377. # endif
  43378. }
  43379. bool operator!=( MemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  43380. {
  43381. return !operator==( rhs );
  43382. }
  43383. #endif
  43384. public:
  43385. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  43386. VULKAN_HPP_NAMESPACE::DeviceSize alignment = {};
  43387. uint32_t memoryTypeBits = {};
  43388. };
  43389. struct MemoryRequirements2
  43390. {
  43391. using NativeType = VkMemoryRequirements2;
  43392. static const bool allowDuplicate = false;
  43393. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryRequirements2;
  43394. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43395. VULKAN_HPP_CONSTEXPR MemoryRequirements2( VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43396. : pNext( pNext_ )
  43397. , memoryRequirements( memoryRequirements_ )
  43398. {
  43399. }
  43400. VULKAN_HPP_CONSTEXPR MemoryRequirements2( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43401. MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryRequirements2( *reinterpret_cast<MemoryRequirements2 const *>( &rhs ) )
  43402. {
  43403. }
  43404. MemoryRequirements2 & operator=( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43405. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43406. MemoryRequirements2 & operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
  43407. {
  43408. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryRequirements2 const *>( &rhs );
  43409. return *this;
  43410. }
  43411. operator VkMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT
  43412. {
  43413. return *reinterpret_cast<const VkMemoryRequirements2 *>( this );
  43414. }
  43415. operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
  43416. {
  43417. return *reinterpret_cast<VkMemoryRequirements2 *>( this );
  43418. }
  43419. #if defined( VULKAN_HPP_USE_REFLECT )
  43420. # if 14 <= VULKAN_HPP_CPP_VERSION
  43421. auto
  43422. # else
  43423. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::MemoryRequirements const &>
  43424. # endif
  43425. reflect() const VULKAN_HPP_NOEXCEPT
  43426. {
  43427. return std::tie( sType, pNext, memoryRequirements );
  43428. }
  43429. #endif
  43430. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43431. auto operator<=>( MemoryRequirements2 const & ) const = default;
  43432. #else
  43433. bool operator==( MemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  43434. {
  43435. # if defined( VULKAN_HPP_USE_REFLECT )
  43436. return this->reflect() == rhs.reflect();
  43437. # else
  43438. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryRequirements == rhs.memoryRequirements );
  43439. # endif
  43440. }
  43441. bool operator!=( MemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  43442. {
  43443. return !operator==( rhs );
  43444. }
  43445. #endif
  43446. public:
  43447. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2;
  43448. void * pNext = {};
  43449. VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {};
  43450. };
  43451. template <>
  43452. struct CppType<StructureType, StructureType::eMemoryRequirements2>
  43453. {
  43454. using Type = MemoryRequirements2;
  43455. };
  43456. using MemoryRequirements2KHR = MemoryRequirements2;
  43457. struct MemoryType
  43458. {
  43459. using NativeType = VkMemoryType;
  43460. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43461. VULKAN_HPP_CONSTEXPR MemoryType( VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, uint32_t heapIndex_ = {} ) VULKAN_HPP_NOEXCEPT
  43462. : propertyFlags( propertyFlags_ )
  43463. , heapIndex( heapIndex_ )
  43464. {
  43465. }
  43466. VULKAN_HPP_CONSTEXPR MemoryType( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43467. MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryType( *reinterpret_cast<MemoryType const *>( &rhs ) ) {}
  43468. MemoryType & operator=( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43469. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43470. MemoryType & operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT
  43471. {
  43472. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryType const *>( &rhs );
  43473. return *this;
  43474. }
  43475. operator VkMemoryType const &() const VULKAN_HPP_NOEXCEPT
  43476. {
  43477. return *reinterpret_cast<const VkMemoryType *>( this );
  43478. }
  43479. operator VkMemoryType &() VULKAN_HPP_NOEXCEPT
  43480. {
  43481. return *reinterpret_cast<VkMemoryType *>( this );
  43482. }
  43483. #if defined( VULKAN_HPP_USE_REFLECT )
  43484. # if 14 <= VULKAN_HPP_CPP_VERSION
  43485. auto
  43486. # else
  43487. std::tuple<VULKAN_HPP_NAMESPACE::MemoryPropertyFlags const &, uint32_t const &>
  43488. # endif
  43489. reflect() const VULKAN_HPP_NOEXCEPT
  43490. {
  43491. return std::tie( propertyFlags, heapIndex );
  43492. }
  43493. #endif
  43494. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43495. auto operator<=>( MemoryType const & ) const = default;
  43496. #else
  43497. bool operator==( MemoryType const & rhs ) const VULKAN_HPP_NOEXCEPT
  43498. {
  43499. # if defined( VULKAN_HPP_USE_REFLECT )
  43500. return this->reflect() == rhs.reflect();
  43501. # else
  43502. return ( propertyFlags == rhs.propertyFlags ) && ( heapIndex == rhs.heapIndex );
  43503. # endif
  43504. }
  43505. bool operator!=( MemoryType const & rhs ) const VULKAN_HPP_NOEXCEPT
  43506. {
  43507. return !operator==( rhs );
  43508. }
  43509. #endif
  43510. public:
  43511. VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {};
  43512. uint32_t heapIndex = {};
  43513. };
  43514. struct MemoryUnmapInfoKHR
  43515. {
  43516. using NativeType = VkMemoryUnmapInfoKHR;
  43517. static const bool allowDuplicate = false;
  43518. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryUnmapInfoKHR;
  43519. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43520. VULKAN_HPP_CONSTEXPR MemoryUnmapInfoKHR( VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR flags_ = {},
  43521. VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {},
  43522. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43523. : pNext( pNext_ )
  43524. , flags( flags_ )
  43525. , memory( memory_ )
  43526. {
  43527. }
  43528. VULKAN_HPP_CONSTEXPR MemoryUnmapInfoKHR( MemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43529. MemoryUnmapInfoKHR( VkMemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : MemoryUnmapInfoKHR( *reinterpret_cast<MemoryUnmapInfoKHR const *>( &rhs ) ) {}
  43530. MemoryUnmapInfoKHR & operator=( MemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43531. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43532. MemoryUnmapInfoKHR & operator=( VkMemoryUnmapInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  43533. {
  43534. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR const *>( &rhs );
  43535. return *this;
  43536. }
  43537. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43538. VULKAN_HPP_CONSTEXPR_14 MemoryUnmapInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43539. {
  43540. pNext = pNext_;
  43541. return *this;
  43542. }
  43543. VULKAN_HPP_CONSTEXPR_14 MemoryUnmapInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  43544. {
  43545. flags = flags_;
  43546. return *this;
  43547. }
  43548. VULKAN_HPP_CONSTEXPR_14 MemoryUnmapInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT
  43549. {
  43550. memory = memory_;
  43551. return *this;
  43552. }
  43553. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43554. operator VkMemoryUnmapInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  43555. {
  43556. return *reinterpret_cast<const VkMemoryUnmapInfoKHR *>( this );
  43557. }
  43558. operator VkMemoryUnmapInfoKHR &() VULKAN_HPP_NOEXCEPT
  43559. {
  43560. return *reinterpret_cast<VkMemoryUnmapInfoKHR *>( this );
  43561. }
  43562. #if defined( VULKAN_HPP_USE_REFLECT )
  43563. # if 14 <= VULKAN_HPP_CPP_VERSION
  43564. auto
  43565. # else
  43566. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  43567. const void * const &,
  43568. VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR const &,
  43569. VULKAN_HPP_NAMESPACE::DeviceMemory const &>
  43570. # endif
  43571. reflect() const VULKAN_HPP_NOEXCEPT
  43572. {
  43573. return std::tie( sType, pNext, flags, memory );
  43574. }
  43575. #endif
  43576. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43577. auto operator<=>( MemoryUnmapInfoKHR const & ) const = default;
  43578. #else
  43579. bool operator==( MemoryUnmapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  43580. {
  43581. # if defined( VULKAN_HPP_USE_REFLECT )
  43582. return this->reflect() == rhs.reflect();
  43583. # else
  43584. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( memory == rhs.memory );
  43585. # endif
  43586. }
  43587. bool operator!=( MemoryUnmapInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  43588. {
  43589. return !operator==( rhs );
  43590. }
  43591. #endif
  43592. public:
  43593. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryUnmapInfoKHR;
  43594. const void * pNext = {};
  43595. VULKAN_HPP_NAMESPACE::MemoryUnmapFlagsKHR flags = {};
  43596. VULKAN_HPP_NAMESPACE::DeviceMemory memory = {};
  43597. };
  43598. template <>
  43599. struct CppType<StructureType, StructureType::eMemoryUnmapInfoKHR>
  43600. {
  43601. using Type = MemoryUnmapInfoKHR;
  43602. };
  43603. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  43604. struct MemoryWin32HandlePropertiesKHR
  43605. {
  43606. using NativeType = VkMemoryWin32HandlePropertiesKHR;
  43607. static const bool allowDuplicate = false;
  43608. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryWin32HandlePropertiesKHR;
  43609. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43610. VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43611. : pNext( pNext_ )
  43612. , memoryTypeBits( memoryTypeBits_ )
  43613. {
  43614. }
  43615. VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43616. MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  43617. : MemoryWin32HandlePropertiesKHR( *reinterpret_cast<MemoryWin32HandlePropertiesKHR const *>( &rhs ) )
  43618. {
  43619. }
  43620. MemoryWin32HandlePropertiesKHR & operator=( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43621. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43622. MemoryWin32HandlePropertiesKHR & operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  43623. {
  43624. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR const *>( &rhs );
  43625. return *this;
  43626. }
  43627. operator VkMemoryWin32HandlePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  43628. {
  43629. return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR *>( this );
  43630. }
  43631. operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  43632. {
  43633. return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( this );
  43634. }
  43635. # if defined( VULKAN_HPP_USE_REFLECT )
  43636. # if 14 <= VULKAN_HPP_CPP_VERSION
  43637. auto
  43638. # else
  43639. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  43640. # endif
  43641. reflect() const VULKAN_HPP_NOEXCEPT
  43642. {
  43643. return std::tie( sType, pNext, memoryTypeBits );
  43644. }
  43645. # endif
  43646. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43647. auto operator<=>( MemoryWin32HandlePropertiesKHR const & ) const = default;
  43648. # else
  43649. bool operator==( MemoryWin32HandlePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  43650. {
  43651. # if defined( VULKAN_HPP_USE_REFLECT )
  43652. return this->reflect() == rhs.reflect();
  43653. # else
  43654. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits );
  43655. # endif
  43656. }
  43657. bool operator!=( MemoryWin32HandlePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  43658. {
  43659. return !operator==( rhs );
  43660. }
  43661. # endif
  43662. public:
  43663. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR;
  43664. void * pNext = {};
  43665. uint32_t memoryTypeBits = {};
  43666. };
  43667. template <>
  43668. struct CppType<StructureType, StructureType::eMemoryWin32HandlePropertiesKHR>
  43669. {
  43670. using Type = MemoryWin32HandlePropertiesKHR;
  43671. };
  43672. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  43673. #if defined( VK_USE_PLATFORM_FUCHSIA )
  43674. struct MemoryZirconHandlePropertiesFUCHSIA
  43675. {
  43676. using NativeType = VkMemoryZirconHandlePropertiesFUCHSIA;
  43677. static const bool allowDuplicate = false;
  43678. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryZirconHandlePropertiesFUCHSIA;
  43679. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43680. VULKAN_HPP_CONSTEXPR MemoryZirconHandlePropertiesFUCHSIA( uint32_t memoryTypeBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43681. : pNext( pNext_ )
  43682. , memoryTypeBits( memoryTypeBits_ )
  43683. {
  43684. }
  43685. VULKAN_HPP_CONSTEXPR MemoryZirconHandlePropertiesFUCHSIA( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43686. MemoryZirconHandlePropertiesFUCHSIA( VkMemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  43687. : MemoryZirconHandlePropertiesFUCHSIA( *reinterpret_cast<MemoryZirconHandlePropertiesFUCHSIA const *>( &rhs ) )
  43688. {
  43689. }
  43690. MemoryZirconHandlePropertiesFUCHSIA & operator=( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43691. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43692. MemoryZirconHandlePropertiesFUCHSIA & operator=( VkMemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  43693. {
  43694. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA const *>( &rhs );
  43695. return *this;
  43696. }
  43697. operator VkMemoryZirconHandlePropertiesFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  43698. {
  43699. return *reinterpret_cast<const VkMemoryZirconHandlePropertiesFUCHSIA *>( this );
  43700. }
  43701. operator VkMemoryZirconHandlePropertiesFUCHSIA &() VULKAN_HPP_NOEXCEPT
  43702. {
  43703. return *reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>( this );
  43704. }
  43705. # if defined( VULKAN_HPP_USE_REFLECT )
  43706. # if 14 <= VULKAN_HPP_CPP_VERSION
  43707. auto
  43708. # else
  43709. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  43710. # endif
  43711. reflect() const VULKAN_HPP_NOEXCEPT
  43712. {
  43713. return std::tie( sType, pNext, memoryTypeBits );
  43714. }
  43715. # endif
  43716. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43717. auto operator<=>( MemoryZirconHandlePropertiesFUCHSIA const & ) const = default;
  43718. # else
  43719. bool operator==( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  43720. {
  43721. # if defined( VULKAN_HPP_USE_REFLECT )
  43722. return this->reflect() == rhs.reflect();
  43723. # else
  43724. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits );
  43725. # endif
  43726. }
  43727. bool operator!=( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  43728. {
  43729. return !operator==( rhs );
  43730. }
  43731. # endif
  43732. public:
  43733. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryZirconHandlePropertiesFUCHSIA;
  43734. void * pNext = {};
  43735. uint32_t memoryTypeBits = {};
  43736. };
  43737. template <>
  43738. struct CppType<StructureType, StructureType::eMemoryZirconHandlePropertiesFUCHSIA>
  43739. {
  43740. using Type = MemoryZirconHandlePropertiesFUCHSIA;
  43741. };
  43742. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  43743. #if defined( VK_USE_PLATFORM_METAL_EXT )
  43744. struct MetalSurfaceCreateInfoEXT
  43745. {
  43746. using NativeType = VkMetalSurfaceCreateInfoEXT;
  43747. static const bool allowDuplicate = false;
  43748. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMetalSurfaceCreateInfoEXT;
  43749. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43750. VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {},
  43751. const CAMetalLayer * pLayer_ = {},
  43752. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43753. : pNext( pNext_ )
  43754. , flags( flags_ )
  43755. , pLayer( pLayer_ )
  43756. {
  43757. }
  43758. VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43759. MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43760. : MetalSurfaceCreateInfoEXT( *reinterpret_cast<MetalSurfaceCreateInfoEXT const *>( &rhs ) )
  43761. {
  43762. }
  43763. MetalSurfaceCreateInfoEXT & operator=( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43764. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43765. MetalSurfaceCreateInfoEXT & operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43766. {
  43767. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const *>( &rhs );
  43768. return *this;
  43769. }
  43770. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43771. VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43772. {
  43773. pNext = pNext_;
  43774. return *this;
  43775. }
  43776. VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  43777. {
  43778. flags = flags_;
  43779. return *this;
  43780. }
  43781. VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer * pLayer_ ) VULKAN_HPP_NOEXCEPT
  43782. {
  43783. pLayer = pLayer_;
  43784. return *this;
  43785. }
  43786. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43787. operator VkMetalSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  43788. {
  43789. return *reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( this );
  43790. }
  43791. operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  43792. {
  43793. return *reinterpret_cast<VkMetalSurfaceCreateInfoEXT *>( this );
  43794. }
  43795. # if defined( VULKAN_HPP_USE_REFLECT )
  43796. # if 14 <= VULKAN_HPP_CPP_VERSION
  43797. auto
  43798. # else
  43799. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  43800. const void * const &,
  43801. VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT const &,
  43802. const CAMetalLayer * const &>
  43803. # endif
  43804. reflect() const VULKAN_HPP_NOEXCEPT
  43805. {
  43806. return std::tie( sType, pNext, flags, pLayer );
  43807. }
  43808. # endif
  43809. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  43810. auto operator<=>( MetalSurfaceCreateInfoEXT const & ) const = default;
  43811. # else
  43812. bool operator==( MetalSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43813. {
  43814. # if defined( VULKAN_HPP_USE_REFLECT )
  43815. return this->reflect() == rhs.reflect();
  43816. # else
  43817. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pLayer == rhs.pLayer );
  43818. # endif
  43819. }
  43820. bool operator!=( MetalSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  43821. {
  43822. return !operator==( rhs );
  43823. }
  43824. # endif
  43825. public:
  43826. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT;
  43827. const void * pNext = {};
  43828. VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {};
  43829. const CAMetalLayer * pLayer = {};
  43830. };
  43831. template <>
  43832. struct CppType<StructureType, StructureType::eMetalSurfaceCreateInfoEXT>
  43833. {
  43834. using Type = MetalSurfaceCreateInfoEXT;
  43835. };
  43836. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  43837. struct MicromapBuildInfoEXT
  43838. {
  43839. using NativeType = VkMicromapBuildInfoEXT;
  43840. static const bool allowDuplicate = false;
  43841. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMicromapBuildInfoEXT;
  43842. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  43843. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT( VULKAN_HPP_NAMESPACE::MicromapTypeEXT type_ = VULKAN_HPP_NAMESPACE::MicromapTypeEXT::eOpacityMicromap,
  43844. VULKAN_HPP_NAMESPACE::BuildMicromapFlagsEXT flags_ = {},
  43845. VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT mode_ = VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT::eBuild,
  43846. VULKAN_HPP_NAMESPACE::MicromapEXT dstMicromap_ = {},
  43847. uint32_t usageCountsCount_ = {},
  43848. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ = {},
  43849. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ = {},
  43850. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {},
  43851. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {},
  43852. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR triangleArray_ = {},
  43853. VULKAN_HPP_NAMESPACE::DeviceSize triangleArrayStride_ = {},
  43854. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  43855. : pNext( pNext_ )
  43856. , type( type_ )
  43857. , flags( flags_ )
  43858. , mode( mode_ )
  43859. , dstMicromap( dstMicromap_ )
  43860. , usageCountsCount( usageCountsCount_ )
  43861. , pUsageCounts( pUsageCounts_ )
  43862. , ppUsageCounts( ppUsageCounts_ )
  43863. , data( data_ )
  43864. , scratchData( scratchData_ )
  43865. , triangleArray( triangleArray_ )
  43866. , triangleArrayStride( triangleArrayStride_ )
  43867. {
  43868. }
  43869. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT( MicromapBuildInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43870. MicromapBuildInfoEXT( VkMicromapBuildInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43871. : MicromapBuildInfoEXT( *reinterpret_cast<MicromapBuildInfoEXT const *>( &rhs ) )
  43872. {
  43873. }
  43874. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  43875. MicromapBuildInfoEXT( VULKAN_HPP_NAMESPACE::MicromapTypeEXT type_,
  43876. VULKAN_HPP_NAMESPACE::BuildMicromapFlagsEXT flags_,
  43877. VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT mode_,
  43878. VULKAN_HPP_NAMESPACE::MicromapEXT dstMicromap_,
  43879. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_,
  43880. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ = {},
  43881. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {},
  43882. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {},
  43883. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR triangleArray_ = {},
  43884. VULKAN_HPP_NAMESPACE::DeviceSize triangleArrayStride_ = {},
  43885. const void * pNext_ = nullptr )
  43886. : pNext( pNext_ )
  43887. , type( type_ )
  43888. , flags( flags_ )
  43889. , mode( mode_ )
  43890. , dstMicromap( dstMicromap_ )
  43891. , usageCountsCount( static_cast<uint32_t>( !usageCounts_.empty() ? usageCounts_.size() : pUsageCounts_.size() ) )
  43892. , pUsageCounts( usageCounts_.data() )
  43893. , ppUsageCounts( pUsageCounts_.data() )
  43894. , data( data_ )
  43895. , scratchData( scratchData_ )
  43896. , triangleArray( triangleArray_ )
  43897. , triangleArrayStride( triangleArrayStride_ )
  43898. {
  43899. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  43900. VULKAN_HPP_ASSERT( ( !usageCounts_.empty() + !pUsageCounts_.empty() ) <= 1 );
  43901. # else
  43902. if ( 1 < ( !usageCounts_.empty() + !pUsageCounts_.empty() ) )
  43903. {
  43904. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::MicromapBuildInfoEXT::MicromapBuildInfoEXT: 1 < ( !usageCounts_.empty() + !pUsageCounts_.empty() )" );
  43905. }
  43906. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  43907. }
  43908. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43909. MicromapBuildInfoEXT & operator=( MicromapBuildInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  43910. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  43911. MicromapBuildInfoEXT & operator=( VkMicromapBuildInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  43912. {
  43913. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT const *>( &rhs );
  43914. return *this;
  43915. }
  43916. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  43917. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  43918. {
  43919. pNext = pNext_;
  43920. return *this;
  43921. }
  43922. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setType( VULKAN_HPP_NAMESPACE::MicromapTypeEXT type_ ) VULKAN_HPP_NOEXCEPT
  43923. {
  43924. type = type_;
  43925. return *this;
  43926. }
  43927. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::BuildMicromapFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  43928. {
  43929. flags = flags_;
  43930. return *this;
  43931. }
  43932. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setMode( VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT mode_ ) VULKAN_HPP_NOEXCEPT
  43933. {
  43934. mode = mode_;
  43935. return *this;
  43936. }
  43937. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setDstMicromap( VULKAN_HPP_NAMESPACE::MicromapEXT dstMicromap_ ) VULKAN_HPP_NOEXCEPT
  43938. {
  43939. dstMicromap = dstMicromap_;
  43940. return *this;
  43941. }
  43942. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setUsageCountsCount( uint32_t usageCountsCount_ ) VULKAN_HPP_NOEXCEPT
  43943. {
  43944. usageCountsCount = usageCountsCount_;
  43945. return *this;
  43946. }
  43947. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setPUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
  43948. {
  43949. pUsageCounts = pUsageCounts_;
  43950. return *this;
  43951. }
  43952. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  43953. MicromapBuildInfoEXT &
  43954. setUsageCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT> const & usageCounts_ ) VULKAN_HPP_NOEXCEPT
  43955. {
  43956. usageCountsCount = static_cast<uint32_t>( usageCounts_.size() );
  43957. pUsageCounts = usageCounts_.data();
  43958. return *this;
  43959. }
  43960. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43961. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setPpUsageCounts( const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts_ ) VULKAN_HPP_NOEXCEPT
  43962. {
  43963. ppUsageCounts = ppUsageCounts_;
  43964. return *this;
  43965. }
  43966. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  43967. MicromapBuildInfoEXT & setPUsageCounts(
  43968. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const> const & pUsageCounts_ ) VULKAN_HPP_NOEXCEPT
  43969. {
  43970. usageCountsCount = static_cast<uint32_t>( pUsageCounts_.size() );
  43971. ppUsageCounts = pUsageCounts_.data();
  43972. return *this;
  43973. }
  43974. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43975. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT
  43976. {
  43977. data = data_;
  43978. return *this;
  43979. }
  43980. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT
  43981. {
  43982. scratchData = scratchData_;
  43983. return *this;
  43984. }
  43985. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT &
  43986. setTriangleArray( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & triangleArray_ ) VULKAN_HPP_NOEXCEPT
  43987. {
  43988. triangleArray = triangleArray_;
  43989. return *this;
  43990. }
  43991. VULKAN_HPP_CONSTEXPR_14 MicromapBuildInfoEXT & setTriangleArrayStride( VULKAN_HPP_NAMESPACE::DeviceSize triangleArrayStride_ ) VULKAN_HPP_NOEXCEPT
  43992. {
  43993. triangleArrayStride = triangleArrayStride_;
  43994. return *this;
  43995. }
  43996. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  43997. operator VkMicromapBuildInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  43998. {
  43999. return *reinterpret_cast<const VkMicromapBuildInfoEXT *>( this );
  44000. }
  44001. operator VkMicromapBuildInfoEXT &() VULKAN_HPP_NOEXCEPT
  44002. {
  44003. return *reinterpret_cast<VkMicromapBuildInfoEXT *>( this );
  44004. }
  44005. #if defined( VULKAN_HPP_USE_REFLECT )
  44006. # if 14 <= VULKAN_HPP_CPP_VERSION
  44007. auto
  44008. # else
  44009. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  44010. const void * const &,
  44011. VULKAN_HPP_NAMESPACE::MicromapTypeEXT const &,
  44012. VULKAN_HPP_NAMESPACE::BuildMicromapFlagsEXT const &,
  44013. VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT const &,
  44014. VULKAN_HPP_NAMESPACE::MicromapEXT const &,
  44015. uint32_t const &,
  44016. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const &,
  44017. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * const &,
  44018. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  44019. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const &,
  44020. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const &,
  44021. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  44022. # endif
  44023. reflect() const VULKAN_HPP_NOEXCEPT
  44024. {
  44025. return std::tie(
  44026. sType, pNext, type, flags, mode, dstMicromap, usageCountsCount, pUsageCounts, ppUsageCounts, data, scratchData, triangleArray, triangleArrayStride );
  44027. }
  44028. #endif
  44029. public:
  44030. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMicromapBuildInfoEXT;
  44031. const void * pNext = {};
  44032. VULKAN_HPP_NAMESPACE::MicromapTypeEXT type = VULKAN_HPP_NAMESPACE::MicromapTypeEXT::eOpacityMicromap;
  44033. VULKAN_HPP_NAMESPACE::BuildMicromapFlagsEXT flags = {};
  44034. VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT mode = VULKAN_HPP_NAMESPACE::BuildMicromapModeEXT::eBuild;
  44035. VULKAN_HPP_NAMESPACE::MicromapEXT dstMicromap = {};
  44036. uint32_t usageCountsCount = {};
  44037. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * pUsageCounts = {};
  44038. const VULKAN_HPP_NAMESPACE::MicromapUsageEXT * const * ppUsageCounts = {};
  44039. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {};
  44040. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {};
  44041. VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR triangleArray = {};
  44042. VULKAN_HPP_NAMESPACE::DeviceSize triangleArrayStride = {};
  44043. };
  44044. template <>
  44045. struct CppType<StructureType, StructureType::eMicromapBuildInfoEXT>
  44046. {
  44047. using Type = MicromapBuildInfoEXT;
  44048. };
  44049. struct MicromapBuildSizesInfoEXT
  44050. {
  44051. using NativeType = VkMicromapBuildSizesInfoEXT;
  44052. static const bool allowDuplicate = false;
  44053. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMicromapBuildSizesInfoEXT;
  44054. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44055. VULKAN_HPP_CONSTEXPR MicromapBuildSizesInfoEXT( VULKAN_HPP_NAMESPACE::DeviceSize micromapSize_ = {},
  44056. VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ = {},
  44057. VULKAN_HPP_NAMESPACE::Bool32 discardable_ = {},
  44058. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44059. : pNext( pNext_ )
  44060. , micromapSize( micromapSize_ )
  44061. , buildScratchSize( buildScratchSize_ )
  44062. , discardable( discardable_ )
  44063. {
  44064. }
  44065. VULKAN_HPP_CONSTEXPR MicromapBuildSizesInfoEXT( MicromapBuildSizesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44066. MicromapBuildSizesInfoEXT( VkMicromapBuildSizesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44067. : MicromapBuildSizesInfoEXT( *reinterpret_cast<MicromapBuildSizesInfoEXT const *>( &rhs ) )
  44068. {
  44069. }
  44070. MicromapBuildSizesInfoEXT & operator=( MicromapBuildSizesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44071. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44072. MicromapBuildSizesInfoEXT & operator=( VkMicromapBuildSizesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44073. {
  44074. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT const *>( &rhs );
  44075. return *this;
  44076. }
  44077. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44078. VULKAN_HPP_CONSTEXPR_14 MicromapBuildSizesInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44079. {
  44080. pNext = pNext_;
  44081. return *this;
  44082. }
  44083. VULKAN_HPP_CONSTEXPR_14 MicromapBuildSizesInfoEXT & setMicromapSize( VULKAN_HPP_NAMESPACE::DeviceSize micromapSize_ ) VULKAN_HPP_NOEXCEPT
  44084. {
  44085. micromapSize = micromapSize_;
  44086. return *this;
  44087. }
  44088. VULKAN_HPP_CONSTEXPR_14 MicromapBuildSizesInfoEXT & setBuildScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ ) VULKAN_HPP_NOEXCEPT
  44089. {
  44090. buildScratchSize = buildScratchSize_;
  44091. return *this;
  44092. }
  44093. VULKAN_HPP_CONSTEXPR_14 MicromapBuildSizesInfoEXT & setDiscardable( VULKAN_HPP_NAMESPACE::Bool32 discardable_ ) VULKAN_HPP_NOEXCEPT
  44094. {
  44095. discardable = discardable_;
  44096. return *this;
  44097. }
  44098. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44099. operator VkMicromapBuildSizesInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  44100. {
  44101. return *reinterpret_cast<const VkMicromapBuildSizesInfoEXT *>( this );
  44102. }
  44103. operator VkMicromapBuildSizesInfoEXT &() VULKAN_HPP_NOEXCEPT
  44104. {
  44105. return *reinterpret_cast<VkMicromapBuildSizesInfoEXT *>( this );
  44106. }
  44107. #if defined( VULKAN_HPP_USE_REFLECT )
  44108. # if 14 <= VULKAN_HPP_CPP_VERSION
  44109. auto
  44110. # else
  44111. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  44112. const void * const &,
  44113. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  44114. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  44115. VULKAN_HPP_NAMESPACE::Bool32 const &>
  44116. # endif
  44117. reflect() const VULKAN_HPP_NOEXCEPT
  44118. {
  44119. return std::tie( sType, pNext, micromapSize, buildScratchSize, discardable );
  44120. }
  44121. #endif
  44122. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44123. auto operator<=>( MicromapBuildSizesInfoEXT const & ) const = default;
  44124. #else
  44125. bool operator==( MicromapBuildSizesInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44126. {
  44127. # if defined( VULKAN_HPP_USE_REFLECT )
  44128. return this->reflect() == rhs.reflect();
  44129. # else
  44130. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( micromapSize == rhs.micromapSize ) && ( buildScratchSize == rhs.buildScratchSize ) &&
  44131. ( discardable == rhs.discardable );
  44132. # endif
  44133. }
  44134. bool operator!=( MicromapBuildSizesInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44135. {
  44136. return !operator==( rhs );
  44137. }
  44138. #endif
  44139. public:
  44140. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMicromapBuildSizesInfoEXT;
  44141. const void * pNext = {};
  44142. VULKAN_HPP_NAMESPACE::DeviceSize micromapSize = {};
  44143. VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize = {};
  44144. VULKAN_HPP_NAMESPACE::Bool32 discardable = {};
  44145. };
  44146. template <>
  44147. struct CppType<StructureType, StructureType::eMicromapBuildSizesInfoEXT>
  44148. {
  44149. using Type = MicromapBuildSizesInfoEXT;
  44150. };
  44151. struct MicromapCreateInfoEXT
  44152. {
  44153. using NativeType = VkMicromapCreateInfoEXT;
  44154. static const bool allowDuplicate = false;
  44155. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMicromapCreateInfoEXT;
  44156. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44157. VULKAN_HPP_CONSTEXPR MicromapCreateInfoEXT( VULKAN_HPP_NAMESPACE::MicromapCreateFlagsEXT createFlags_ = {},
  44158. VULKAN_HPP_NAMESPACE::Buffer buffer_ = {},
  44159. VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {},
  44160. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {},
  44161. VULKAN_HPP_NAMESPACE::MicromapTypeEXT type_ = VULKAN_HPP_NAMESPACE::MicromapTypeEXT::eOpacityMicromap,
  44162. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
  44163. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44164. : pNext( pNext_ )
  44165. , createFlags( createFlags_ )
  44166. , buffer( buffer_ )
  44167. , offset( offset_ )
  44168. , size( size_ )
  44169. , type( type_ )
  44170. , deviceAddress( deviceAddress_ )
  44171. {
  44172. }
  44173. VULKAN_HPP_CONSTEXPR MicromapCreateInfoEXT( MicromapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44174. MicromapCreateInfoEXT( VkMicromapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44175. : MicromapCreateInfoEXT( *reinterpret_cast<MicromapCreateInfoEXT const *>( &rhs ) )
  44176. {
  44177. }
  44178. MicromapCreateInfoEXT & operator=( MicromapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44179. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44180. MicromapCreateInfoEXT & operator=( VkMicromapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44181. {
  44182. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const *>( &rhs );
  44183. return *this;
  44184. }
  44185. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44186. VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44187. {
  44188. pNext = pNext_;
  44189. return *this;
  44190. }
  44191. VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setCreateFlags( VULKAN_HPP_NAMESPACE::MicromapCreateFlagsEXT createFlags_ ) VULKAN_HPP_NOEXCEPT
  44192. {
  44193. createFlags = createFlags_;
  44194. return *this;
  44195. }
  44196. VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT
  44197. {
  44198. buffer = buffer_;
  44199. return *this;
  44200. }
  44201. VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT
  44202. {
  44203. offset = offset_;
  44204. return *this;
  44205. }
  44206. VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  44207. {
  44208. size = size_;
  44209. return *this;
  44210. }
  44211. VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setType( VULKAN_HPP_NAMESPACE::MicromapTypeEXT type_ ) VULKAN_HPP_NOEXCEPT
  44212. {
  44213. type = type_;
  44214. return *this;
  44215. }
  44216. VULKAN_HPP_CONSTEXPR_14 MicromapCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
  44217. {
  44218. deviceAddress = deviceAddress_;
  44219. return *this;
  44220. }
  44221. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44222. operator VkMicromapCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  44223. {
  44224. return *reinterpret_cast<const VkMicromapCreateInfoEXT *>( this );
  44225. }
  44226. operator VkMicromapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  44227. {
  44228. return *reinterpret_cast<VkMicromapCreateInfoEXT *>( this );
  44229. }
  44230. #if defined( VULKAN_HPP_USE_REFLECT )
  44231. # if 14 <= VULKAN_HPP_CPP_VERSION
  44232. auto
  44233. # else
  44234. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  44235. const void * const &,
  44236. VULKAN_HPP_NAMESPACE::MicromapCreateFlagsEXT const &,
  44237. VULKAN_HPP_NAMESPACE::Buffer const &,
  44238. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  44239. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  44240. VULKAN_HPP_NAMESPACE::MicromapTypeEXT const &,
  44241. VULKAN_HPP_NAMESPACE::DeviceAddress const &>
  44242. # endif
  44243. reflect() const VULKAN_HPP_NOEXCEPT
  44244. {
  44245. return std::tie( sType, pNext, createFlags, buffer, offset, size, type, deviceAddress );
  44246. }
  44247. #endif
  44248. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44249. auto operator<=>( MicromapCreateInfoEXT const & ) const = default;
  44250. #else
  44251. bool operator==( MicromapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44252. {
  44253. # if defined( VULKAN_HPP_USE_REFLECT )
  44254. return this->reflect() == rhs.reflect();
  44255. # else
  44256. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( createFlags == rhs.createFlags ) && ( buffer == rhs.buffer ) && ( offset == rhs.offset ) &&
  44257. ( size == rhs.size ) && ( type == rhs.type ) && ( deviceAddress == rhs.deviceAddress );
  44258. # endif
  44259. }
  44260. bool operator!=( MicromapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44261. {
  44262. return !operator==( rhs );
  44263. }
  44264. #endif
  44265. public:
  44266. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMicromapCreateInfoEXT;
  44267. const void * pNext = {};
  44268. VULKAN_HPP_NAMESPACE::MicromapCreateFlagsEXT createFlags = {};
  44269. VULKAN_HPP_NAMESPACE::Buffer buffer = {};
  44270. VULKAN_HPP_NAMESPACE::DeviceSize offset = {};
  44271. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  44272. VULKAN_HPP_NAMESPACE::MicromapTypeEXT type = VULKAN_HPP_NAMESPACE::MicromapTypeEXT::eOpacityMicromap;
  44273. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
  44274. };
  44275. template <>
  44276. struct CppType<StructureType, StructureType::eMicromapCreateInfoEXT>
  44277. {
  44278. using Type = MicromapCreateInfoEXT;
  44279. };
  44280. struct MicromapTriangleEXT
  44281. {
  44282. using NativeType = VkMicromapTriangleEXT;
  44283. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44284. VULKAN_HPP_CONSTEXPR MicromapTriangleEXT( uint32_t dataOffset_ = {}, uint16_t subdivisionLevel_ = {}, uint16_t format_ = {} ) VULKAN_HPP_NOEXCEPT
  44285. : dataOffset( dataOffset_ )
  44286. , subdivisionLevel( subdivisionLevel_ )
  44287. , format( format_ )
  44288. {
  44289. }
  44290. VULKAN_HPP_CONSTEXPR MicromapTriangleEXT( MicromapTriangleEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44291. MicromapTriangleEXT( VkMicromapTriangleEXT const & rhs ) VULKAN_HPP_NOEXCEPT : MicromapTriangleEXT( *reinterpret_cast<MicromapTriangleEXT const *>( &rhs ) )
  44292. {
  44293. }
  44294. MicromapTriangleEXT & operator=( MicromapTriangleEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44295. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44296. MicromapTriangleEXT & operator=( VkMicromapTriangleEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44297. {
  44298. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapTriangleEXT const *>( &rhs );
  44299. return *this;
  44300. }
  44301. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44302. VULKAN_HPP_CONSTEXPR_14 MicromapTriangleEXT & setDataOffset( uint32_t dataOffset_ ) VULKAN_HPP_NOEXCEPT
  44303. {
  44304. dataOffset = dataOffset_;
  44305. return *this;
  44306. }
  44307. VULKAN_HPP_CONSTEXPR_14 MicromapTriangleEXT & setSubdivisionLevel( uint16_t subdivisionLevel_ ) VULKAN_HPP_NOEXCEPT
  44308. {
  44309. subdivisionLevel = subdivisionLevel_;
  44310. return *this;
  44311. }
  44312. VULKAN_HPP_CONSTEXPR_14 MicromapTriangleEXT & setFormat( uint16_t format_ ) VULKAN_HPP_NOEXCEPT
  44313. {
  44314. format = format_;
  44315. return *this;
  44316. }
  44317. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44318. operator VkMicromapTriangleEXT const &() const VULKAN_HPP_NOEXCEPT
  44319. {
  44320. return *reinterpret_cast<const VkMicromapTriangleEXT *>( this );
  44321. }
  44322. operator VkMicromapTriangleEXT &() VULKAN_HPP_NOEXCEPT
  44323. {
  44324. return *reinterpret_cast<VkMicromapTriangleEXT *>( this );
  44325. }
  44326. #if defined( VULKAN_HPP_USE_REFLECT )
  44327. # if 14 <= VULKAN_HPP_CPP_VERSION
  44328. auto
  44329. # else
  44330. std::tuple<uint32_t const &, uint16_t const &, uint16_t const &>
  44331. # endif
  44332. reflect() const VULKAN_HPP_NOEXCEPT
  44333. {
  44334. return std::tie( dataOffset, subdivisionLevel, format );
  44335. }
  44336. #endif
  44337. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44338. auto operator<=>( MicromapTriangleEXT const & ) const = default;
  44339. #else
  44340. bool operator==( MicromapTriangleEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44341. {
  44342. # if defined( VULKAN_HPP_USE_REFLECT )
  44343. return this->reflect() == rhs.reflect();
  44344. # else
  44345. return ( dataOffset == rhs.dataOffset ) && ( subdivisionLevel == rhs.subdivisionLevel ) && ( format == rhs.format );
  44346. # endif
  44347. }
  44348. bool operator!=( MicromapTriangleEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44349. {
  44350. return !operator==( rhs );
  44351. }
  44352. #endif
  44353. public:
  44354. uint32_t dataOffset = {};
  44355. uint16_t subdivisionLevel = {};
  44356. uint16_t format = {};
  44357. };
  44358. struct MicromapVersionInfoEXT
  44359. {
  44360. using NativeType = VkMicromapVersionInfoEXT;
  44361. static const bool allowDuplicate = false;
  44362. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMicromapVersionInfoEXT;
  44363. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44364. VULKAN_HPP_CONSTEXPR MicromapVersionInfoEXT( const uint8_t * pVersionData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44365. : pNext( pNext_ )
  44366. , pVersionData( pVersionData_ )
  44367. {
  44368. }
  44369. VULKAN_HPP_CONSTEXPR MicromapVersionInfoEXT( MicromapVersionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44370. MicromapVersionInfoEXT( VkMicromapVersionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44371. : MicromapVersionInfoEXT( *reinterpret_cast<MicromapVersionInfoEXT const *>( &rhs ) )
  44372. {
  44373. }
  44374. MicromapVersionInfoEXT & operator=( MicromapVersionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44375. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44376. MicromapVersionInfoEXT & operator=( VkMicromapVersionInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44377. {
  44378. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT const *>( &rhs );
  44379. return *this;
  44380. }
  44381. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44382. VULKAN_HPP_CONSTEXPR_14 MicromapVersionInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44383. {
  44384. pNext = pNext_;
  44385. return *this;
  44386. }
  44387. VULKAN_HPP_CONSTEXPR_14 MicromapVersionInfoEXT & setPVersionData( const uint8_t * pVersionData_ ) VULKAN_HPP_NOEXCEPT
  44388. {
  44389. pVersionData = pVersionData_;
  44390. return *this;
  44391. }
  44392. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44393. operator VkMicromapVersionInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  44394. {
  44395. return *reinterpret_cast<const VkMicromapVersionInfoEXT *>( this );
  44396. }
  44397. operator VkMicromapVersionInfoEXT &() VULKAN_HPP_NOEXCEPT
  44398. {
  44399. return *reinterpret_cast<VkMicromapVersionInfoEXT *>( this );
  44400. }
  44401. #if defined( VULKAN_HPP_USE_REFLECT )
  44402. # if 14 <= VULKAN_HPP_CPP_VERSION
  44403. auto
  44404. # else
  44405. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const uint8_t * const &>
  44406. # endif
  44407. reflect() const VULKAN_HPP_NOEXCEPT
  44408. {
  44409. return std::tie( sType, pNext, pVersionData );
  44410. }
  44411. #endif
  44412. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44413. auto operator<=>( MicromapVersionInfoEXT const & ) const = default;
  44414. #else
  44415. bool operator==( MicromapVersionInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44416. {
  44417. # if defined( VULKAN_HPP_USE_REFLECT )
  44418. return this->reflect() == rhs.reflect();
  44419. # else
  44420. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pVersionData == rhs.pVersionData );
  44421. # endif
  44422. }
  44423. bool operator!=( MicromapVersionInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44424. {
  44425. return !operator==( rhs );
  44426. }
  44427. #endif
  44428. public:
  44429. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMicromapVersionInfoEXT;
  44430. const void * pNext = {};
  44431. const uint8_t * pVersionData = {};
  44432. };
  44433. template <>
  44434. struct CppType<StructureType, StructureType::eMicromapVersionInfoEXT>
  44435. {
  44436. using Type = MicromapVersionInfoEXT;
  44437. };
  44438. struct MultiDrawIndexedInfoEXT
  44439. {
  44440. using NativeType = VkMultiDrawIndexedInfoEXT;
  44441. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44442. VULKAN_HPP_CONSTEXPR MultiDrawIndexedInfoEXT( uint32_t firstIndex_ = {}, uint32_t indexCount_ = {}, int32_t vertexOffset_ = {} ) VULKAN_HPP_NOEXCEPT
  44443. : firstIndex( firstIndex_ )
  44444. , indexCount( indexCount_ )
  44445. , vertexOffset( vertexOffset_ )
  44446. {
  44447. }
  44448. VULKAN_HPP_CONSTEXPR MultiDrawIndexedInfoEXT( MultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44449. MultiDrawIndexedInfoEXT( VkMultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44450. : MultiDrawIndexedInfoEXT( *reinterpret_cast<MultiDrawIndexedInfoEXT const *>( &rhs ) )
  44451. {
  44452. }
  44453. MultiDrawIndexedInfoEXT & operator=( MultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44454. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44455. MultiDrawIndexedInfoEXT & operator=( VkMultiDrawIndexedInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44456. {
  44457. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT const *>( &rhs );
  44458. return *this;
  44459. }
  44460. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44461. VULKAN_HPP_CONSTEXPR_14 MultiDrawIndexedInfoEXT & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT
  44462. {
  44463. firstIndex = firstIndex_;
  44464. return *this;
  44465. }
  44466. VULKAN_HPP_CONSTEXPR_14 MultiDrawIndexedInfoEXT & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT
  44467. {
  44468. indexCount = indexCount_;
  44469. return *this;
  44470. }
  44471. VULKAN_HPP_CONSTEXPR_14 MultiDrawIndexedInfoEXT & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT
  44472. {
  44473. vertexOffset = vertexOffset_;
  44474. return *this;
  44475. }
  44476. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44477. operator VkMultiDrawIndexedInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  44478. {
  44479. return *reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>( this );
  44480. }
  44481. operator VkMultiDrawIndexedInfoEXT &() VULKAN_HPP_NOEXCEPT
  44482. {
  44483. return *reinterpret_cast<VkMultiDrawIndexedInfoEXT *>( this );
  44484. }
  44485. #if defined( VULKAN_HPP_USE_REFLECT )
  44486. # if 14 <= VULKAN_HPP_CPP_VERSION
  44487. auto
  44488. # else
  44489. std::tuple<uint32_t const &, uint32_t const &, int32_t const &>
  44490. # endif
  44491. reflect() const VULKAN_HPP_NOEXCEPT
  44492. {
  44493. return std::tie( firstIndex, indexCount, vertexOffset );
  44494. }
  44495. #endif
  44496. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44497. auto operator<=>( MultiDrawIndexedInfoEXT const & ) const = default;
  44498. #else
  44499. bool operator==( MultiDrawIndexedInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44500. {
  44501. # if defined( VULKAN_HPP_USE_REFLECT )
  44502. return this->reflect() == rhs.reflect();
  44503. # else
  44504. return ( firstIndex == rhs.firstIndex ) && ( indexCount == rhs.indexCount ) && ( vertexOffset == rhs.vertexOffset );
  44505. # endif
  44506. }
  44507. bool operator!=( MultiDrawIndexedInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44508. {
  44509. return !operator==( rhs );
  44510. }
  44511. #endif
  44512. public:
  44513. uint32_t firstIndex = {};
  44514. uint32_t indexCount = {};
  44515. int32_t vertexOffset = {};
  44516. };
  44517. struct MultiDrawInfoEXT
  44518. {
  44519. using NativeType = VkMultiDrawInfoEXT;
  44520. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44521. VULKAN_HPP_CONSTEXPR MultiDrawInfoEXT( uint32_t firstVertex_ = {}, uint32_t vertexCount_ = {} ) VULKAN_HPP_NOEXCEPT
  44522. : firstVertex( firstVertex_ )
  44523. , vertexCount( vertexCount_ )
  44524. {
  44525. }
  44526. VULKAN_HPP_CONSTEXPR MultiDrawInfoEXT( MultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44527. MultiDrawInfoEXT( VkMultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : MultiDrawInfoEXT( *reinterpret_cast<MultiDrawInfoEXT const *>( &rhs ) ) {}
  44528. MultiDrawInfoEXT & operator=( MultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44529. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44530. MultiDrawInfoEXT & operator=( VkMultiDrawInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44531. {
  44532. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT const *>( &rhs );
  44533. return *this;
  44534. }
  44535. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44536. VULKAN_HPP_CONSTEXPR_14 MultiDrawInfoEXT & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT
  44537. {
  44538. firstVertex = firstVertex_;
  44539. return *this;
  44540. }
  44541. VULKAN_HPP_CONSTEXPR_14 MultiDrawInfoEXT & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT
  44542. {
  44543. vertexCount = vertexCount_;
  44544. return *this;
  44545. }
  44546. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44547. operator VkMultiDrawInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  44548. {
  44549. return *reinterpret_cast<const VkMultiDrawInfoEXT *>( this );
  44550. }
  44551. operator VkMultiDrawInfoEXT &() VULKAN_HPP_NOEXCEPT
  44552. {
  44553. return *reinterpret_cast<VkMultiDrawInfoEXT *>( this );
  44554. }
  44555. #if defined( VULKAN_HPP_USE_REFLECT )
  44556. # if 14 <= VULKAN_HPP_CPP_VERSION
  44557. auto
  44558. # else
  44559. std::tuple<uint32_t const &, uint32_t const &>
  44560. # endif
  44561. reflect() const VULKAN_HPP_NOEXCEPT
  44562. {
  44563. return std::tie( firstVertex, vertexCount );
  44564. }
  44565. #endif
  44566. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44567. auto operator<=>( MultiDrawInfoEXT const & ) const = default;
  44568. #else
  44569. bool operator==( MultiDrawInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44570. {
  44571. # if defined( VULKAN_HPP_USE_REFLECT )
  44572. return this->reflect() == rhs.reflect();
  44573. # else
  44574. return ( firstVertex == rhs.firstVertex ) && ( vertexCount == rhs.vertexCount );
  44575. # endif
  44576. }
  44577. bool operator!=( MultiDrawInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44578. {
  44579. return !operator==( rhs );
  44580. }
  44581. #endif
  44582. public:
  44583. uint32_t firstVertex = {};
  44584. uint32_t vertexCount = {};
  44585. };
  44586. struct MultisamplePropertiesEXT
  44587. {
  44588. using NativeType = VkMultisamplePropertiesEXT;
  44589. static const bool allowDuplicate = false;
  44590. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisamplePropertiesEXT;
  44591. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44592. VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44593. : pNext( pNext_ )
  44594. , maxSampleLocationGridSize( maxSampleLocationGridSize_ )
  44595. {
  44596. }
  44597. VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44598. MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44599. : MultisamplePropertiesEXT( *reinterpret_cast<MultisamplePropertiesEXT const *>( &rhs ) )
  44600. {
  44601. }
  44602. MultisamplePropertiesEXT & operator=( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44603. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44604. MultisamplePropertiesEXT & operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44605. {
  44606. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT const *>( &rhs );
  44607. return *this;
  44608. }
  44609. operator VkMultisamplePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  44610. {
  44611. return *reinterpret_cast<const VkMultisamplePropertiesEXT *>( this );
  44612. }
  44613. operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT
  44614. {
  44615. return *reinterpret_cast<VkMultisamplePropertiesEXT *>( this );
  44616. }
  44617. #if defined( VULKAN_HPP_USE_REFLECT )
  44618. # if 14 <= VULKAN_HPP_CPP_VERSION
  44619. auto
  44620. # else
  44621. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
  44622. # endif
  44623. reflect() const VULKAN_HPP_NOEXCEPT
  44624. {
  44625. return std::tie( sType, pNext, maxSampleLocationGridSize );
  44626. }
  44627. #endif
  44628. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44629. auto operator<=>( MultisamplePropertiesEXT const & ) const = default;
  44630. #else
  44631. bool operator==( MultisamplePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44632. {
  44633. # if defined( VULKAN_HPP_USE_REFLECT )
  44634. return this->reflect() == rhs.reflect();
  44635. # else
  44636. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize );
  44637. # endif
  44638. }
  44639. bool operator!=( MultisamplePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44640. {
  44641. return !operator==( rhs );
  44642. }
  44643. #endif
  44644. public:
  44645. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT;
  44646. void * pNext = {};
  44647. VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
  44648. };
  44649. template <>
  44650. struct CppType<StructureType, StructureType::eMultisamplePropertiesEXT>
  44651. {
  44652. using Type = MultisamplePropertiesEXT;
  44653. };
  44654. struct MultisampledRenderToSingleSampledInfoEXT
  44655. {
  44656. using NativeType = VkMultisampledRenderToSingleSampledInfoEXT;
  44657. static const bool allowDuplicate = false;
  44658. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisampledRenderToSingleSampledInfoEXT;
  44659. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44660. VULKAN_HPP_CONSTEXPR
  44661. MultisampledRenderToSingleSampledInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampledEnable_ = {},
  44662. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  44663. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44664. : pNext( pNext_ )
  44665. , multisampledRenderToSingleSampledEnable( multisampledRenderToSingleSampledEnable_ )
  44666. , rasterizationSamples( rasterizationSamples_ )
  44667. {
  44668. }
  44669. VULKAN_HPP_CONSTEXPR MultisampledRenderToSingleSampledInfoEXT( MultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44670. MultisampledRenderToSingleSampledInfoEXT( VkMultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44671. : MultisampledRenderToSingleSampledInfoEXT( *reinterpret_cast<MultisampledRenderToSingleSampledInfoEXT const *>( &rhs ) )
  44672. {
  44673. }
  44674. MultisampledRenderToSingleSampledInfoEXT & operator=( MultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44675. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44676. MultisampledRenderToSingleSampledInfoEXT & operator=( VkMultisampledRenderToSingleSampledInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44677. {
  44678. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT const *>( &rhs );
  44679. return *this;
  44680. }
  44681. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44682. VULKAN_HPP_CONSTEXPR_14 MultisampledRenderToSingleSampledInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44683. {
  44684. pNext = pNext_;
  44685. return *this;
  44686. }
  44687. VULKAN_HPP_CONSTEXPR_14 MultisampledRenderToSingleSampledInfoEXT &
  44688. setMultisampledRenderToSingleSampledEnable( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampledEnable_ ) VULKAN_HPP_NOEXCEPT
  44689. {
  44690. multisampledRenderToSingleSampledEnable = multisampledRenderToSingleSampledEnable_;
  44691. return *this;
  44692. }
  44693. VULKAN_HPP_CONSTEXPR_14 MultisampledRenderToSingleSampledInfoEXT &
  44694. setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
  44695. {
  44696. rasterizationSamples = rasterizationSamples_;
  44697. return *this;
  44698. }
  44699. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44700. operator VkMultisampledRenderToSingleSampledInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  44701. {
  44702. return *reinterpret_cast<const VkMultisampledRenderToSingleSampledInfoEXT *>( this );
  44703. }
  44704. operator VkMultisampledRenderToSingleSampledInfoEXT &() VULKAN_HPP_NOEXCEPT
  44705. {
  44706. return *reinterpret_cast<VkMultisampledRenderToSingleSampledInfoEXT *>( this );
  44707. }
  44708. #if defined( VULKAN_HPP_USE_REFLECT )
  44709. # if 14 <= VULKAN_HPP_CPP_VERSION
  44710. auto
  44711. # else
  44712. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  44713. const void * const &,
  44714. VULKAN_HPP_NAMESPACE::Bool32 const &,
  44715. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
  44716. # endif
  44717. reflect() const VULKAN_HPP_NOEXCEPT
  44718. {
  44719. return std::tie( sType, pNext, multisampledRenderToSingleSampledEnable, rasterizationSamples );
  44720. }
  44721. #endif
  44722. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44723. auto operator<=>( MultisampledRenderToSingleSampledInfoEXT const & ) const = default;
  44724. #else
  44725. bool operator==( MultisampledRenderToSingleSampledInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44726. {
  44727. # if defined( VULKAN_HPP_USE_REFLECT )
  44728. return this->reflect() == rhs.reflect();
  44729. # else
  44730. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multisampledRenderToSingleSampledEnable == rhs.multisampledRenderToSingleSampledEnable ) &&
  44731. ( rasterizationSamples == rhs.rasterizationSamples );
  44732. # endif
  44733. }
  44734. bool operator!=( MultisampledRenderToSingleSampledInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  44735. {
  44736. return !operator==( rhs );
  44737. }
  44738. #endif
  44739. public:
  44740. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisampledRenderToSingleSampledInfoEXT;
  44741. const void * pNext = {};
  44742. VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampledEnable = {};
  44743. VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  44744. };
  44745. template <>
  44746. struct CppType<StructureType, StructureType::eMultisampledRenderToSingleSampledInfoEXT>
  44747. {
  44748. using Type = MultisampledRenderToSingleSampledInfoEXT;
  44749. };
  44750. struct MultiviewPerViewAttributesInfoNVX
  44751. {
  44752. using NativeType = VkMultiviewPerViewAttributesInfoNVX;
  44753. static const bool allowDuplicate = false;
  44754. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultiviewPerViewAttributesInfoNVX;
  44755. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44756. VULKAN_HPP_CONSTEXPR MultiviewPerViewAttributesInfoNVX( VULKAN_HPP_NAMESPACE::Bool32 perViewAttributes_ = {},
  44757. VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly_ = {},
  44758. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44759. : pNext( pNext_ )
  44760. , perViewAttributes( perViewAttributes_ )
  44761. , perViewAttributesPositionXOnly( perViewAttributesPositionXOnly_ )
  44762. {
  44763. }
  44764. VULKAN_HPP_CONSTEXPR MultiviewPerViewAttributesInfoNVX( MultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44765. MultiviewPerViewAttributesInfoNVX( VkMultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  44766. : MultiviewPerViewAttributesInfoNVX( *reinterpret_cast<MultiviewPerViewAttributesInfoNVX const *>( &rhs ) )
  44767. {
  44768. }
  44769. MultiviewPerViewAttributesInfoNVX & operator=( MultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44770. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44771. MultiviewPerViewAttributesInfoNVX & operator=( VkMultiviewPerViewAttributesInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  44772. {
  44773. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX const *>( &rhs );
  44774. return *this;
  44775. }
  44776. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44777. VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewAttributesInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44778. {
  44779. pNext = pNext_;
  44780. return *this;
  44781. }
  44782. VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewAttributesInfoNVX & setPerViewAttributes( VULKAN_HPP_NAMESPACE::Bool32 perViewAttributes_ ) VULKAN_HPP_NOEXCEPT
  44783. {
  44784. perViewAttributes = perViewAttributes_;
  44785. return *this;
  44786. }
  44787. VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewAttributesInfoNVX &
  44788. setPerViewAttributesPositionXOnly( VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly_ ) VULKAN_HPP_NOEXCEPT
  44789. {
  44790. perViewAttributesPositionXOnly = perViewAttributesPositionXOnly_;
  44791. return *this;
  44792. }
  44793. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44794. operator VkMultiviewPerViewAttributesInfoNVX const &() const VULKAN_HPP_NOEXCEPT
  44795. {
  44796. return *reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX *>( this );
  44797. }
  44798. operator VkMultiviewPerViewAttributesInfoNVX &() VULKAN_HPP_NOEXCEPT
  44799. {
  44800. return *reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX *>( this );
  44801. }
  44802. #if defined( VULKAN_HPP_USE_REFLECT )
  44803. # if 14 <= VULKAN_HPP_CPP_VERSION
  44804. auto
  44805. # else
  44806. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  44807. # endif
  44808. reflect() const VULKAN_HPP_NOEXCEPT
  44809. {
  44810. return std::tie( sType, pNext, perViewAttributes, perViewAttributesPositionXOnly );
  44811. }
  44812. #endif
  44813. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44814. auto operator<=>( MultiviewPerViewAttributesInfoNVX const & ) const = default;
  44815. #else
  44816. bool operator==( MultiviewPerViewAttributesInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  44817. {
  44818. # if defined( VULKAN_HPP_USE_REFLECT )
  44819. return this->reflect() == rhs.reflect();
  44820. # else
  44821. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( perViewAttributes == rhs.perViewAttributes ) &&
  44822. ( perViewAttributesPositionXOnly == rhs.perViewAttributesPositionXOnly );
  44823. # endif
  44824. }
  44825. bool operator!=( MultiviewPerViewAttributesInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  44826. {
  44827. return !operator==( rhs );
  44828. }
  44829. #endif
  44830. public:
  44831. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultiviewPerViewAttributesInfoNVX;
  44832. const void * pNext = {};
  44833. VULKAN_HPP_NAMESPACE::Bool32 perViewAttributes = {};
  44834. VULKAN_HPP_NAMESPACE::Bool32 perViewAttributesPositionXOnly = {};
  44835. };
  44836. template <>
  44837. struct CppType<StructureType, StructureType::eMultiviewPerViewAttributesInfoNVX>
  44838. {
  44839. using Type = MultiviewPerViewAttributesInfoNVX;
  44840. };
  44841. struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM
  44842. {
  44843. using NativeType = VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
  44844. static const bool allowDuplicate = false;
  44845. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
  44846. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44847. VULKAN_HPP_CONSTEXPR MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( uint32_t perViewRenderAreaCount_ = {},
  44848. const VULKAN_HPP_NAMESPACE::Rect2D * pPerViewRenderAreas_ = {},
  44849. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  44850. : pNext( pNext_ )
  44851. , perViewRenderAreaCount( perViewRenderAreaCount_ )
  44852. , pPerViewRenderAreas( pPerViewRenderAreas_ )
  44853. {
  44854. }
  44855. VULKAN_HPP_CONSTEXPR
  44856. MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44857. MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  44858. : MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM( *reinterpret_cast<MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const *>( &rhs ) )
  44859. {
  44860. }
  44861. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  44862. MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM(
  44863. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & perViewRenderAreas_, const void * pNext_ = nullptr )
  44864. : pNext( pNext_ ), perViewRenderAreaCount( static_cast<uint32_t>( perViewRenderAreas_.size() ) ), pPerViewRenderAreas( perViewRenderAreas_.data() )
  44865. {
  44866. }
  44867. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44868. MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM &
  44869. operator=( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44870. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44871. MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM & operator=( VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  44872. {
  44873. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const *>( &rhs );
  44874. return *this;
  44875. }
  44876. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44877. VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  44878. {
  44879. pNext = pNext_;
  44880. return *this;
  44881. }
  44882. VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM &
  44883. setPerViewRenderAreaCount( uint32_t perViewRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT
  44884. {
  44885. perViewRenderAreaCount = perViewRenderAreaCount_;
  44886. return *this;
  44887. }
  44888. VULKAN_HPP_CONSTEXPR_14 MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM &
  44889. setPPerViewRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D * pPerViewRenderAreas_ ) VULKAN_HPP_NOEXCEPT
  44890. {
  44891. pPerViewRenderAreas = pPerViewRenderAreas_;
  44892. return *this;
  44893. }
  44894. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  44895. MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM &
  44896. setPerViewRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & perViewRenderAreas_ ) VULKAN_HPP_NOEXCEPT
  44897. {
  44898. perViewRenderAreaCount = static_cast<uint32_t>( perViewRenderAreas_.size() );
  44899. pPerViewRenderAreas = perViewRenderAreas_.data();
  44900. return *this;
  44901. }
  44902. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44903. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  44904. operator VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  44905. {
  44906. return *reinterpret_cast<const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM *>( this );
  44907. }
  44908. operator VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
  44909. {
  44910. return *reinterpret_cast<VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM *>( this );
  44911. }
  44912. #if defined( VULKAN_HPP_USE_REFLECT )
  44913. # if 14 <= VULKAN_HPP_CPP_VERSION
  44914. auto
  44915. # else
  44916. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  44917. # endif
  44918. reflect() const VULKAN_HPP_NOEXCEPT
  44919. {
  44920. return std::tie( sType, pNext, perViewRenderAreaCount, pPerViewRenderAreas );
  44921. }
  44922. #endif
  44923. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  44924. auto operator<=>( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & ) const = default;
  44925. #else
  44926. bool operator==( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  44927. {
  44928. # if defined( VULKAN_HPP_USE_REFLECT )
  44929. return this->reflect() == rhs.reflect();
  44930. # else
  44931. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( perViewRenderAreaCount == rhs.perViewRenderAreaCount ) &&
  44932. ( pPerViewRenderAreas == rhs.pPerViewRenderAreas );
  44933. # endif
  44934. }
  44935. bool operator!=( MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  44936. {
  44937. return !operator==( rhs );
  44938. }
  44939. #endif
  44940. public:
  44941. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
  44942. const void * pNext = {};
  44943. uint32_t perViewRenderAreaCount = {};
  44944. const VULKAN_HPP_NAMESPACE::Rect2D * pPerViewRenderAreas = {};
  44945. };
  44946. template <>
  44947. struct CppType<StructureType, StructureType::eMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM>
  44948. {
  44949. using Type = MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
  44950. };
  44951. struct MutableDescriptorTypeListEXT
  44952. {
  44953. using NativeType = VkMutableDescriptorTypeListEXT;
  44954. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  44955. VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListEXT( uint32_t descriptorTypeCount_ = {},
  44956. const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes_ = {} ) VULKAN_HPP_NOEXCEPT
  44957. : descriptorTypeCount( descriptorTypeCount_ )
  44958. , pDescriptorTypes( pDescriptorTypes_ )
  44959. {
  44960. }
  44961. VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListEXT( MutableDescriptorTypeListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44962. MutableDescriptorTypeListEXT( VkMutableDescriptorTypeListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44963. : MutableDescriptorTypeListEXT( *reinterpret_cast<MutableDescriptorTypeListEXT const *>( &rhs ) )
  44964. {
  44965. }
  44966. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  44967. MutableDescriptorTypeListEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorType> const & descriptorTypes_ )
  44968. : descriptorTypeCount( static_cast<uint32_t>( descriptorTypes_.size() ) ), pDescriptorTypes( descriptorTypes_.data() )
  44969. {
  44970. }
  44971. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44972. MutableDescriptorTypeListEXT & operator=( MutableDescriptorTypeListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  44973. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  44974. MutableDescriptorTypeListEXT & operator=( VkMutableDescriptorTypeListEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  44975. {
  44976. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT const *>( &rhs );
  44977. return *this;
  44978. }
  44979. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  44980. VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeListEXT & setDescriptorTypeCount( uint32_t descriptorTypeCount_ ) VULKAN_HPP_NOEXCEPT
  44981. {
  44982. descriptorTypeCount = descriptorTypeCount_;
  44983. return *this;
  44984. }
  44985. VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeListEXT &
  44986. setPDescriptorTypes( const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes_ ) VULKAN_HPP_NOEXCEPT
  44987. {
  44988. pDescriptorTypes = pDescriptorTypes_;
  44989. return *this;
  44990. }
  44991. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  44992. MutableDescriptorTypeListEXT & setDescriptorTypes(
  44993. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorType> const & descriptorTypes_ ) VULKAN_HPP_NOEXCEPT
  44994. {
  44995. descriptorTypeCount = static_cast<uint32_t>( descriptorTypes_.size() );
  44996. pDescriptorTypes = descriptorTypes_.data();
  44997. return *this;
  44998. }
  44999. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45000. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45001. operator VkMutableDescriptorTypeListEXT const &() const VULKAN_HPP_NOEXCEPT
  45002. {
  45003. return *reinterpret_cast<const VkMutableDescriptorTypeListEXT *>( this );
  45004. }
  45005. operator VkMutableDescriptorTypeListEXT &() VULKAN_HPP_NOEXCEPT
  45006. {
  45007. return *reinterpret_cast<VkMutableDescriptorTypeListEXT *>( this );
  45008. }
  45009. #if defined( VULKAN_HPP_USE_REFLECT )
  45010. # if 14 <= VULKAN_HPP_CPP_VERSION
  45011. auto
  45012. # else
  45013. std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorType * const &>
  45014. # endif
  45015. reflect() const VULKAN_HPP_NOEXCEPT
  45016. {
  45017. return std::tie( descriptorTypeCount, pDescriptorTypes );
  45018. }
  45019. #endif
  45020. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45021. auto operator<=>( MutableDescriptorTypeListEXT const & ) const = default;
  45022. #else
  45023. bool operator==( MutableDescriptorTypeListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45024. {
  45025. # if defined( VULKAN_HPP_USE_REFLECT )
  45026. return this->reflect() == rhs.reflect();
  45027. # else
  45028. return ( descriptorTypeCount == rhs.descriptorTypeCount ) && ( pDescriptorTypes == rhs.pDescriptorTypes );
  45029. # endif
  45030. }
  45031. bool operator!=( MutableDescriptorTypeListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45032. {
  45033. return !operator==( rhs );
  45034. }
  45035. #endif
  45036. public:
  45037. uint32_t descriptorTypeCount = {};
  45038. const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes = {};
  45039. };
  45040. using MutableDescriptorTypeListVALVE = MutableDescriptorTypeListEXT;
  45041. struct MutableDescriptorTypeCreateInfoEXT
  45042. {
  45043. using NativeType = VkMutableDescriptorTypeCreateInfoEXT;
  45044. static const bool allowDuplicate = false;
  45045. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMutableDescriptorTypeCreateInfoEXT;
  45046. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45047. VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoEXT( uint32_t mutableDescriptorTypeListCount_ = {},
  45048. const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT * pMutableDescriptorTypeLists_ = {},
  45049. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45050. : pNext( pNext_ )
  45051. , mutableDescriptorTypeListCount( mutableDescriptorTypeListCount_ )
  45052. , pMutableDescriptorTypeLists( pMutableDescriptorTypeLists_ )
  45053. {
  45054. }
  45055. VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoEXT( MutableDescriptorTypeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45056. MutableDescriptorTypeCreateInfoEXT( VkMutableDescriptorTypeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45057. : MutableDescriptorTypeCreateInfoEXT( *reinterpret_cast<MutableDescriptorTypeCreateInfoEXT const *>( &rhs ) )
  45058. {
  45059. }
  45060. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  45061. MutableDescriptorTypeCreateInfoEXT(
  45062. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT> const & mutableDescriptorTypeLists_,
  45063. const void * pNext_ = nullptr )
  45064. : pNext( pNext_ )
  45065. , mutableDescriptorTypeListCount( static_cast<uint32_t>( mutableDescriptorTypeLists_.size() ) )
  45066. , pMutableDescriptorTypeLists( mutableDescriptorTypeLists_.data() )
  45067. {
  45068. }
  45069. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45070. MutableDescriptorTypeCreateInfoEXT & operator=( MutableDescriptorTypeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45071. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45072. MutableDescriptorTypeCreateInfoEXT & operator=( VkMutableDescriptorTypeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45073. {
  45074. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT const *>( &rhs );
  45075. return *this;
  45076. }
  45077. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45078. VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45079. {
  45080. pNext = pNext_;
  45081. return *this;
  45082. }
  45083. VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoEXT &
  45084. setMutableDescriptorTypeListCount( uint32_t mutableDescriptorTypeListCount_ ) VULKAN_HPP_NOEXCEPT
  45085. {
  45086. mutableDescriptorTypeListCount = mutableDescriptorTypeListCount_;
  45087. return *this;
  45088. }
  45089. VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoEXT &
  45090. setPMutableDescriptorTypeLists( const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT * pMutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT
  45091. {
  45092. pMutableDescriptorTypeLists = pMutableDescriptorTypeLists_;
  45093. return *this;
  45094. }
  45095. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  45096. MutableDescriptorTypeCreateInfoEXT & setMutableDescriptorTypeLists(
  45097. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT> const & mutableDescriptorTypeLists_ )
  45098. VULKAN_HPP_NOEXCEPT
  45099. {
  45100. mutableDescriptorTypeListCount = static_cast<uint32_t>( mutableDescriptorTypeLists_.size() );
  45101. pMutableDescriptorTypeLists = mutableDescriptorTypeLists_.data();
  45102. return *this;
  45103. }
  45104. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45105. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45106. operator VkMutableDescriptorTypeCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  45107. {
  45108. return *reinterpret_cast<const VkMutableDescriptorTypeCreateInfoEXT *>( this );
  45109. }
  45110. operator VkMutableDescriptorTypeCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  45111. {
  45112. return *reinterpret_cast<VkMutableDescriptorTypeCreateInfoEXT *>( this );
  45113. }
  45114. #if defined( VULKAN_HPP_USE_REFLECT )
  45115. # if 14 <= VULKAN_HPP_CPP_VERSION
  45116. auto
  45117. # else
  45118. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  45119. const void * const &,
  45120. uint32_t const &,
  45121. const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT * const &>
  45122. # endif
  45123. reflect() const VULKAN_HPP_NOEXCEPT
  45124. {
  45125. return std::tie( sType, pNext, mutableDescriptorTypeListCount, pMutableDescriptorTypeLists );
  45126. }
  45127. #endif
  45128. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45129. auto operator<=>( MutableDescriptorTypeCreateInfoEXT const & ) const = default;
  45130. #else
  45131. bool operator==( MutableDescriptorTypeCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45132. {
  45133. # if defined( VULKAN_HPP_USE_REFLECT )
  45134. return this->reflect() == rhs.reflect();
  45135. # else
  45136. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mutableDescriptorTypeListCount == rhs.mutableDescriptorTypeListCount ) &&
  45137. ( pMutableDescriptorTypeLists == rhs.pMutableDescriptorTypeLists );
  45138. # endif
  45139. }
  45140. bool operator!=( MutableDescriptorTypeCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45141. {
  45142. return !operator==( rhs );
  45143. }
  45144. #endif
  45145. public:
  45146. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMutableDescriptorTypeCreateInfoEXT;
  45147. const void * pNext = {};
  45148. uint32_t mutableDescriptorTypeListCount = {};
  45149. const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT * pMutableDescriptorTypeLists = {};
  45150. };
  45151. template <>
  45152. struct CppType<StructureType, StructureType::eMutableDescriptorTypeCreateInfoEXT>
  45153. {
  45154. using Type = MutableDescriptorTypeCreateInfoEXT;
  45155. };
  45156. using MutableDescriptorTypeCreateInfoVALVE = MutableDescriptorTypeCreateInfoEXT;
  45157. struct OpaqueCaptureDescriptorDataCreateInfoEXT
  45158. {
  45159. using NativeType = VkOpaqueCaptureDescriptorDataCreateInfoEXT;
  45160. static const bool allowDuplicate = false;
  45161. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpaqueCaptureDescriptorDataCreateInfoEXT;
  45162. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45163. VULKAN_HPP_CONSTEXPR OpaqueCaptureDescriptorDataCreateInfoEXT( const void * opaqueCaptureDescriptorData_ = {},
  45164. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45165. : pNext( pNext_ )
  45166. , opaqueCaptureDescriptorData( opaqueCaptureDescriptorData_ )
  45167. {
  45168. }
  45169. VULKAN_HPP_CONSTEXPR OpaqueCaptureDescriptorDataCreateInfoEXT( OpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45170. OpaqueCaptureDescriptorDataCreateInfoEXT( VkOpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45171. : OpaqueCaptureDescriptorDataCreateInfoEXT( *reinterpret_cast<OpaqueCaptureDescriptorDataCreateInfoEXT const *>( &rhs ) )
  45172. {
  45173. }
  45174. OpaqueCaptureDescriptorDataCreateInfoEXT & operator=( OpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45175. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45176. OpaqueCaptureDescriptorDataCreateInfoEXT & operator=( VkOpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  45177. {
  45178. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT const *>( &rhs );
  45179. return *this;
  45180. }
  45181. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45182. VULKAN_HPP_CONSTEXPR_14 OpaqueCaptureDescriptorDataCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45183. {
  45184. pNext = pNext_;
  45185. return *this;
  45186. }
  45187. VULKAN_HPP_CONSTEXPR_14 OpaqueCaptureDescriptorDataCreateInfoEXT &
  45188. setOpaqueCaptureDescriptorData( const void * opaqueCaptureDescriptorData_ ) VULKAN_HPP_NOEXCEPT
  45189. {
  45190. opaqueCaptureDescriptorData = opaqueCaptureDescriptorData_;
  45191. return *this;
  45192. }
  45193. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45194. operator VkOpaqueCaptureDescriptorDataCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  45195. {
  45196. return *reinterpret_cast<const VkOpaqueCaptureDescriptorDataCreateInfoEXT *>( this );
  45197. }
  45198. operator VkOpaqueCaptureDescriptorDataCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  45199. {
  45200. return *reinterpret_cast<VkOpaqueCaptureDescriptorDataCreateInfoEXT *>( this );
  45201. }
  45202. #if defined( VULKAN_HPP_USE_REFLECT )
  45203. # if 14 <= VULKAN_HPP_CPP_VERSION
  45204. auto
  45205. # else
  45206. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const void * const &>
  45207. # endif
  45208. reflect() const VULKAN_HPP_NOEXCEPT
  45209. {
  45210. return std::tie( sType, pNext, opaqueCaptureDescriptorData );
  45211. }
  45212. #endif
  45213. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45214. auto operator<=>( OpaqueCaptureDescriptorDataCreateInfoEXT const & ) const = default;
  45215. #else
  45216. bool operator==( OpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45217. {
  45218. # if defined( VULKAN_HPP_USE_REFLECT )
  45219. return this->reflect() == rhs.reflect();
  45220. # else
  45221. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( opaqueCaptureDescriptorData == rhs.opaqueCaptureDescriptorData );
  45222. # endif
  45223. }
  45224. bool operator!=( OpaqueCaptureDescriptorDataCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  45225. {
  45226. return !operator==( rhs );
  45227. }
  45228. #endif
  45229. public:
  45230. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpaqueCaptureDescriptorDataCreateInfoEXT;
  45231. const void * pNext = {};
  45232. const void * opaqueCaptureDescriptorData = {};
  45233. };
  45234. template <>
  45235. struct CppType<StructureType, StructureType::eOpaqueCaptureDescriptorDataCreateInfoEXT>
  45236. {
  45237. using Type = OpaqueCaptureDescriptorDataCreateInfoEXT;
  45238. };
  45239. struct OpticalFlowExecuteInfoNV
  45240. {
  45241. using NativeType = VkOpticalFlowExecuteInfoNV;
  45242. static const bool allowDuplicate = false;
  45243. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpticalFlowExecuteInfoNV;
  45244. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45245. VULKAN_HPP_CONSTEXPR OpticalFlowExecuteInfoNV( VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV flags_ = {},
  45246. uint32_t regionCount_ = {},
  45247. const VULKAN_HPP_NAMESPACE::Rect2D * pRegions_ = {},
  45248. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45249. : pNext( pNext_ )
  45250. , flags( flags_ )
  45251. , regionCount( regionCount_ )
  45252. , pRegions( pRegions_ )
  45253. {
  45254. }
  45255. VULKAN_HPP_CONSTEXPR OpticalFlowExecuteInfoNV( OpticalFlowExecuteInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45256. OpticalFlowExecuteInfoNV( VkOpticalFlowExecuteInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45257. : OpticalFlowExecuteInfoNV( *reinterpret_cast<OpticalFlowExecuteInfoNV const *>( &rhs ) )
  45258. {
  45259. }
  45260. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  45261. OpticalFlowExecuteInfoNV( VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV flags_,
  45262. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & regions_,
  45263. void * pNext_ = nullptr )
  45264. : pNext( pNext_ ), flags( flags_ ), regionCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
  45265. {
  45266. }
  45267. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45268. OpticalFlowExecuteInfoNV & operator=( OpticalFlowExecuteInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45269. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45270. OpticalFlowExecuteInfoNV & operator=( VkOpticalFlowExecuteInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45271. {
  45272. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV const *>( &rhs );
  45273. return *this;
  45274. }
  45275. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45276. VULKAN_HPP_CONSTEXPR_14 OpticalFlowExecuteInfoNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45277. {
  45278. pNext = pNext_;
  45279. return *this;
  45280. }
  45281. VULKAN_HPP_CONSTEXPR_14 OpticalFlowExecuteInfoNV & setFlags( VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  45282. {
  45283. flags = flags_;
  45284. return *this;
  45285. }
  45286. VULKAN_HPP_CONSTEXPR_14 OpticalFlowExecuteInfoNV & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  45287. {
  45288. regionCount = regionCount_;
  45289. return *this;
  45290. }
  45291. VULKAN_HPP_CONSTEXPR_14 OpticalFlowExecuteInfoNV & setPRegions( const VULKAN_HPP_NAMESPACE::Rect2D * pRegions_ ) VULKAN_HPP_NOEXCEPT
  45292. {
  45293. pRegions = pRegions_;
  45294. return *this;
  45295. }
  45296. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  45297. OpticalFlowExecuteInfoNV &
  45298. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & regions_ ) VULKAN_HPP_NOEXCEPT
  45299. {
  45300. regionCount = static_cast<uint32_t>( regions_.size() );
  45301. pRegions = regions_.data();
  45302. return *this;
  45303. }
  45304. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45305. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45306. operator VkOpticalFlowExecuteInfoNV const &() const VULKAN_HPP_NOEXCEPT
  45307. {
  45308. return *reinterpret_cast<const VkOpticalFlowExecuteInfoNV *>( this );
  45309. }
  45310. operator VkOpticalFlowExecuteInfoNV &() VULKAN_HPP_NOEXCEPT
  45311. {
  45312. return *reinterpret_cast<VkOpticalFlowExecuteInfoNV *>( this );
  45313. }
  45314. #if defined( VULKAN_HPP_USE_REFLECT )
  45315. # if 14 <= VULKAN_HPP_CPP_VERSION
  45316. auto
  45317. # else
  45318. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  45319. void * const &,
  45320. VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV const &,
  45321. uint32_t const &,
  45322. const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  45323. # endif
  45324. reflect() const VULKAN_HPP_NOEXCEPT
  45325. {
  45326. return std::tie( sType, pNext, flags, regionCount, pRegions );
  45327. }
  45328. #endif
  45329. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45330. auto operator<=>( OpticalFlowExecuteInfoNV const & ) const = default;
  45331. #else
  45332. bool operator==( OpticalFlowExecuteInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45333. {
  45334. # if defined( VULKAN_HPP_USE_REFLECT )
  45335. return this->reflect() == rhs.reflect();
  45336. # else
  45337. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  45338. # endif
  45339. }
  45340. bool operator!=( OpticalFlowExecuteInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45341. {
  45342. return !operator==( rhs );
  45343. }
  45344. #endif
  45345. public:
  45346. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpticalFlowExecuteInfoNV;
  45347. void * pNext = {};
  45348. VULKAN_HPP_NAMESPACE::OpticalFlowExecuteFlagsNV flags = {};
  45349. uint32_t regionCount = {};
  45350. const VULKAN_HPP_NAMESPACE::Rect2D * pRegions = {};
  45351. };
  45352. template <>
  45353. struct CppType<StructureType, StructureType::eOpticalFlowExecuteInfoNV>
  45354. {
  45355. using Type = OpticalFlowExecuteInfoNV;
  45356. };
  45357. struct OpticalFlowImageFormatInfoNV
  45358. {
  45359. using NativeType = VkOpticalFlowImageFormatInfoNV;
  45360. static const bool allowDuplicate = false;
  45361. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpticalFlowImageFormatInfoNV;
  45362. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45363. VULKAN_HPP_CONSTEXPR OpticalFlowImageFormatInfoNV( VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagsNV usage_ = {},
  45364. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45365. : pNext( pNext_ )
  45366. , usage( usage_ )
  45367. {
  45368. }
  45369. VULKAN_HPP_CONSTEXPR OpticalFlowImageFormatInfoNV( OpticalFlowImageFormatInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45370. OpticalFlowImageFormatInfoNV( VkOpticalFlowImageFormatInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45371. : OpticalFlowImageFormatInfoNV( *reinterpret_cast<OpticalFlowImageFormatInfoNV const *>( &rhs ) )
  45372. {
  45373. }
  45374. OpticalFlowImageFormatInfoNV & operator=( OpticalFlowImageFormatInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45375. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45376. OpticalFlowImageFormatInfoNV & operator=( VkOpticalFlowImageFormatInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45377. {
  45378. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV const *>( &rhs );
  45379. return *this;
  45380. }
  45381. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45382. VULKAN_HPP_CONSTEXPR_14 OpticalFlowImageFormatInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45383. {
  45384. pNext = pNext_;
  45385. return *this;
  45386. }
  45387. VULKAN_HPP_CONSTEXPR_14 OpticalFlowImageFormatInfoNV & setUsage( VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagsNV usage_ ) VULKAN_HPP_NOEXCEPT
  45388. {
  45389. usage = usage_;
  45390. return *this;
  45391. }
  45392. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45393. operator VkOpticalFlowImageFormatInfoNV const &() const VULKAN_HPP_NOEXCEPT
  45394. {
  45395. return *reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( this );
  45396. }
  45397. operator VkOpticalFlowImageFormatInfoNV &() VULKAN_HPP_NOEXCEPT
  45398. {
  45399. return *reinterpret_cast<VkOpticalFlowImageFormatInfoNV *>( this );
  45400. }
  45401. #if defined( VULKAN_HPP_USE_REFLECT )
  45402. # if 14 <= VULKAN_HPP_CPP_VERSION
  45403. auto
  45404. # else
  45405. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagsNV const &>
  45406. # endif
  45407. reflect() const VULKAN_HPP_NOEXCEPT
  45408. {
  45409. return std::tie( sType, pNext, usage );
  45410. }
  45411. #endif
  45412. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45413. auto operator<=>( OpticalFlowImageFormatInfoNV const & ) const = default;
  45414. #else
  45415. bool operator==( OpticalFlowImageFormatInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45416. {
  45417. # if defined( VULKAN_HPP_USE_REFLECT )
  45418. return this->reflect() == rhs.reflect();
  45419. # else
  45420. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( usage == rhs.usage );
  45421. # endif
  45422. }
  45423. bool operator!=( OpticalFlowImageFormatInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45424. {
  45425. return !operator==( rhs );
  45426. }
  45427. #endif
  45428. public:
  45429. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpticalFlowImageFormatInfoNV;
  45430. const void * pNext = {};
  45431. VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagsNV usage = {};
  45432. };
  45433. template <>
  45434. struct CppType<StructureType, StructureType::eOpticalFlowImageFormatInfoNV>
  45435. {
  45436. using Type = OpticalFlowImageFormatInfoNV;
  45437. };
  45438. struct OpticalFlowImageFormatPropertiesNV
  45439. {
  45440. using NativeType = VkOpticalFlowImageFormatPropertiesNV;
  45441. static const bool allowDuplicate = false;
  45442. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpticalFlowImageFormatPropertiesNV;
  45443. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45444. VULKAN_HPP_CONSTEXPR OpticalFlowImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  45445. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45446. : pNext( pNext_ )
  45447. , format( format_ )
  45448. {
  45449. }
  45450. VULKAN_HPP_CONSTEXPR OpticalFlowImageFormatPropertiesNV( OpticalFlowImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45451. OpticalFlowImageFormatPropertiesNV( VkOpticalFlowImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45452. : OpticalFlowImageFormatPropertiesNV( *reinterpret_cast<OpticalFlowImageFormatPropertiesNV const *>( &rhs ) )
  45453. {
  45454. }
  45455. OpticalFlowImageFormatPropertiesNV & operator=( OpticalFlowImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45456. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45457. OpticalFlowImageFormatPropertiesNV & operator=( VkOpticalFlowImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45458. {
  45459. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV const *>( &rhs );
  45460. return *this;
  45461. }
  45462. operator VkOpticalFlowImageFormatPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  45463. {
  45464. return *reinterpret_cast<const VkOpticalFlowImageFormatPropertiesNV *>( this );
  45465. }
  45466. operator VkOpticalFlowImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT
  45467. {
  45468. return *reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV *>( this );
  45469. }
  45470. #if defined( VULKAN_HPP_USE_REFLECT )
  45471. # if 14 <= VULKAN_HPP_CPP_VERSION
  45472. auto
  45473. # else
  45474. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Format const &>
  45475. # endif
  45476. reflect() const VULKAN_HPP_NOEXCEPT
  45477. {
  45478. return std::tie( sType, pNext, format );
  45479. }
  45480. #endif
  45481. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45482. auto operator<=>( OpticalFlowImageFormatPropertiesNV const & ) const = default;
  45483. #else
  45484. bool operator==( OpticalFlowImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45485. {
  45486. # if defined( VULKAN_HPP_USE_REFLECT )
  45487. return this->reflect() == rhs.reflect();
  45488. # else
  45489. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format );
  45490. # endif
  45491. }
  45492. bool operator!=( OpticalFlowImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45493. {
  45494. return !operator==( rhs );
  45495. }
  45496. #endif
  45497. public:
  45498. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpticalFlowImageFormatPropertiesNV;
  45499. const void * pNext = {};
  45500. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  45501. };
  45502. template <>
  45503. struct CppType<StructureType, StructureType::eOpticalFlowImageFormatPropertiesNV>
  45504. {
  45505. using Type = OpticalFlowImageFormatPropertiesNV;
  45506. };
  45507. struct OpticalFlowSessionCreateInfoNV
  45508. {
  45509. using NativeType = VkOpticalFlowSessionCreateInfoNV;
  45510. static const bool allowDuplicate = false;
  45511. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpticalFlowSessionCreateInfoNV;
  45512. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45513. VULKAN_HPP_CONSTEXPR OpticalFlowSessionCreateInfoNV(
  45514. uint32_t width_ = {},
  45515. uint32_t height_ = {},
  45516. VULKAN_HPP_NAMESPACE::Format imageFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  45517. VULKAN_HPP_NAMESPACE::Format flowVectorFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  45518. VULKAN_HPP_NAMESPACE::Format costFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  45519. VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV outputGridSize_ = {},
  45520. VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV hintGridSize_ = {},
  45521. VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV performanceLevel_ = VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV::eUnknown,
  45522. VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateFlagsNV flags_ = {},
  45523. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45524. : pNext( pNext_ )
  45525. , width( width_ )
  45526. , height( height_ )
  45527. , imageFormat( imageFormat_ )
  45528. , flowVectorFormat( flowVectorFormat_ )
  45529. , costFormat( costFormat_ )
  45530. , outputGridSize( outputGridSize_ )
  45531. , hintGridSize( hintGridSize_ )
  45532. , performanceLevel( performanceLevel_ )
  45533. , flags( flags_ )
  45534. {
  45535. }
  45536. VULKAN_HPP_CONSTEXPR OpticalFlowSessionCreateInfoNV( OpticalFlowSessionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45537. OpticalFlowSessionCreateInfoNV( VkOpticalFlowSessionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45538. : OpticalFlowSessionCreateInfoNV( *reinterpret_cast<OpticalFlowSessionCreateInfoNV const *>( &rhs ) )
  45539. {
  45540. }
  45541. OpticalFlowSessionCreateInfoNV & operator=( OpticalFlowSessionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45542. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45543. OpticalFlowSessionCreateInfoNV & operator=( VkOpticalFlowSessionCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45544. {
  45545. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const *>( &rhs );
  45546. return *this;
  45547. }
  45548. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45549. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45550. {
  45551. pNext = pNext_;
  45552. return *this;
  45553. }
  45554. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  45555. {
  45556. width = width_;
  45557. return *this;
  45558. }
  45559. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  45560. {
  45561. height = height_;
  45562. return *this;
  45563. }
  45564. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT
  45565. {
  45566. imageFormat = imageFormat_;
  45567. return *this;
  45568. }
  45569. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setFlowVectorFormat( VULKAN_HPP_NAMESPACE::Format flowVectorFormat_ ) VULKAN_HPP_NOEXCEPT
  45570. {
  45571. flowVectorFormat = flowVectorFormat_;
  45572. return *this;
  45573. }
  45574. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setCostFormat( VULKAN_HPP_NAMESPACE::Format costFormat_ ) VULKAN_HPP_NOEXCEPT
  45575. {
  45576. costFormat = costFormat_;
  45577. return *this;
  45578. }
  45579. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV &
  45580. setOutputGridSize( VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV outputGridSize_ ) VULKAN_HPP_NOEXCEPT
  45581. {
  45582. outputGridSize = outputGridSize_;
  45583. return *this;
  45584. }
  45585. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV &
  45586. setHintGridSize( VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV hintGridSize_ ) VULKAN_HPP_NOEXCEPT
  45587. {
  45588. hintGridSize = hintGridSize_;
  45589. return *this;
  45590. }
  45591. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV &
  45592. setPerformanceLevel( VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV performanceLevel_ ) VULKAN_HPP_NOEXCEPT
  45593. {
  45594. performanceLevel = performanceLevel_;
  45595. return *this;
  45596. }
  45597. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  45598. {
  45599. flags = flags_;
  45600. return *this;
  45601. }
  45602. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45603. operator VkOpticalFlowSessionCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  45604. {
  45605. return *reinterpret_cast<const VkOpticalFlowSessionCreateInfoNV *>( this );
  45606. }
  45607. operator VkOpticalFlowSessionCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  45608. {
  45609. return *reinterpret_cast<VkOpticalFlowSessionCreateInfoNV *>( this );
  45610. }
  45611. #if defined( VULKAN_HPP_USE_REFLECT )
  45612. # if 14 <= VULKAN_HPP_CPP_VERSION
  45613. auto
  45614. # else
  45615. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  45616. void * const &,
  45617. uint32_t const &,
  45618. uint32_t const &,
  45619. VULKAN_HPP_NAMESPACE::Format const &,
  45620. VULKAN_HPP_NAMESPACE::Format const &,
  45621. VULKAN_HPP_NAMESPACE::Format const &,
  45622. VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV const &,
  45623. VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV const &,
  45624. VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV const &,
  45625. VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateFlagsNV const &>
  45626. # endif
  45627. reflect() const VULKAN_HPP_NOEXCEPT
  45628. {
  45629. return std::tie( sType, pNext, width, height, imageFormat, flowVectorFormat, costFormat, outputGridSize, hintGridSize, performanceLevel, flags );
  45630. }
  45631. #endif
  45632. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45633. auto operator<=>( OpticalFlowSessionCreateInfoNV const & ) const = default;
  45634. #else
  45635. bool operator==( OpticalFlowSessionCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45636. {
  45637. # if defined( VULKAN_HPP_USE_REFLECT )
  45638. return this->reflect() == rhs.reflect();
  45639. # else
  45640. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( width == rhs.width ) && ( height == rhs.height ) && ( imageFormat == rhs.imageFormat ) &&
  45641. ( flowVectorFormat == rhs.flowVectorFormat ) && ( costFormat == rhs.costFormat ) && ( outputGridSize == rhs.outputGridSize ) &&
  45642. ( hintGridSize == rhs.hintGridSize ) && ( performanceLevel == rhs.performanceLevel ) && ( flags == rhs.flags );
  45643. # endif
  45644. }
  45645. bool operator!=( OpticalFlowSessionCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45646. {
  45647. return !operator==( rhs );
  45648. }
  45649. #endif
  45650. public:
  45651. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpticalFlowSessionCreateInfoNV;
  45652. void * pNext = {};
  45653. uint32_t width = {};
  45654. uint32_t height = {};
  45655. VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  45656. VULKAN_HPP_NAMESPACE::Format flowVectorFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  45657. VULKAN_HPP_NAMESPACE::Format costFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  45658. VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV outputGridSize = {};
  45659. VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV hintGridSize = {};
  45660. VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV performanceLevel = VULKAN_HPP_NAMESPACE::OpticalFlowPerformanceLevelNV::eUnknown;
  45661. VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateFlagsNV flags = {};
  45662. };
  45663. template <>
  45664. struct CppType<StructureType, StructureType::eOpticalFlowSessionCreateInfoNV>
  45665. {
  45666. using Type = OpticalFlowSessionCreateInfoNV;
  45667. };
  45668. struct OpticalFlowSessionCreatePrivateDataInfoNV
  45669. {
  45670. using NativeType = VkOpticalFlowSessionCreatePrivateDataInfoNV;
  45671. static const bool allowDuplicate = false;
  45672. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOpticalFlowSessionCreatePrivateDataInfoNV;
  45673. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45674. VULKAN_HPP_CONSTEXPR OpticalFlowSessionCreatePrivateDataInfoNV( uint32_t id_ = {},
  45675. uint32_t size_ = {},
  45676. const void * pPrivateData_ = {},
  45677. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45678. : pNext( pNext_ )
  45679. , id( id_ )
  45680. , size( size_ )
  45681. , pPrivateData( pPrivateData_ )
  45682. {
  45683. }
  45684. VULKAN_HPP_CONSTEXPR OpticalFlowSessionCreatePrivateDataInfoNV( OpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45685. OpticalFlowSessionCreatePrivateDataInfoNV( VkOpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45686. : OpticalFlowSessionCreatePrivateDataInfoNV( *reinterpret_cast<OpticalFlowSessionCreatePrivateDataInfoNV const *>( &rhs ) )
  45687. {
  45688. }
  45689. OpticalFlowSessionCreatePrivateDataInfoNV & operator=( OpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45690. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45691. OpticalFlowSessionCreatePrivateDataInfoNV & operator=( VkOpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45692. {
  45693. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV const *>( &rhs );
  45694. return *this;
  45695. }
  45696. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45697. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreatePrivateDataInfoNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45698. {
  45699. pNext = pNext_;
  45700. return *this;
  45701. }
  45702. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreatePrivateDataInfoNV & setId( uint32_t id_ ) VULKAN_HPP_NOEXCEPT
  45703. {
  45704. id = id_;
  45705. return *this;
  45706. }
  45707. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreatePrivateDataInfoNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
  45708. {
  45709. size = size_;
  45710. return *this;
  45711. }
  45712. VULKAN_HPP_CONSTEXPR_14 OpticalFlowSessionCreatePrivateDataInfoNV & setPPrivateData( const void * pPrivateData_ ) VULKAN_HPP_NOEXCEPT
  45713. {
  45714. pPrivateData = pPrivateData_;
  45715. return *this;
  45716. }
  45717. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45718. operator VkOpticalFlowSessionCreatePrivateDataInfoNV const &() const VULKAN_HPP_NOEXCEPT
  45719. {
  45720. return *reinterpret_cast<const VkOpticalFlowSessionCreatePrivateDataInfoNV *>( this );
  45721. }
  45722. operator VkOpticalFlowSessionCreatePrivateDataInfoNV &() VULKAN_HPP_NOEXCEPT
  45723. {
  45724. return *reinterpret_cast<VkOpticalFlowSessionCreatePrivateDataInfoNV *>( this );
  45725. }
  45726. #if defined( VULKAN_HPP_USE_REFLECT )
  45727. # if 14 <= VULKAN_HPP_CPP_VERSION
  45728. auto
  45729. # else
  45730. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, const void * const &>
  45731. # endif
  45732. reflect() const VULKAN_HPP_NOEXCEPT
  45733. {
  45734. return std::tie( sType, pNext, id, size, pPrivateData );
  45735. }
  45736. #endif
  45737. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45738. auto operator<=>( OpticalFlowSessionCreatePrivateDataInfoNV const & ) const = default;
  45739. #else
  45740. bool operator==( OpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45741. {
  45742. # if defined( VULKAN_HPP_USE_REFLECT )
  45743. return this->reflect() == rhs.reflect();
  45744. # else
  45745. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( id == rhs.id ) && ( size == rhs.size ) && ( pPrivateData == rhs.pPrivateData );
  45746. # endif
  45747. }
  45748. bool operator!=( OpticalFlowSessionCreatePrivateDataInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45749. {
  45750. return !operator==( rhs );
  45751. }
  45752. #endif
  45753. public:
  45754. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOpticalFlowSessionCreatePrivateDataInfoNV;
  45755. void * pNext = {};
  45756. uint32_t id = {};
  45757. uint32_t size = {};
  45758. const void * pPrivateData = {};
  45759. };
  45760. template <>
  45761. struct CppType<StructureType, StructureType::eOpticalFlowSessionCreatePrivateDataInfoNV>
  45762. {
  45763. using Type = OpticalFlowSessionCreatePrivateDataInfoNV;
  45764. };
  45765. struct OutOfBandQueueTypeInfoNV
  45766. {
  45767. using NativeType = VkOutOfBandQueueTypeInfoNV;
  45768. static const bool allowDuplicate = false;
  45769. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eOutOfBandQueueTypeInfoNV;
  45770. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45771. VULKAN_HPP_CONSTEXPR OutOfBandQueueTypeInfoNV( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType_ = VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV::eRender,
  45772. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45773. : pNext( pNext_ )
  45774. , queueType( queueType_ )
  45775. {
  45776. }
  45777. VULKAN_HPP_CONSTEXPR OutOfBandQueueTypeInfoNV( OutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45778. OutOfBandQueueTypeInfoNV( VkOutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45779. : OutOfBandQueueTypeInfoNV( *reinterpret_cast<OutOfBandQueueTypeInfoNV const *>( &rhs ) )
  45780. {
  45781. }
  45782. OutOfBandQueueTypeInfoNV & operator=( OutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45783. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45784. OutOfBandQueueTypeInfoNV & operator=( VkOutOfBandQueueTypeInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  45785. {
  45786. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV const *>( &rhs );
  45787. return *this;
  45788. }
  45789. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45790. VULKAN_HPP_CONSTEXPR_14 OutOfBandQueueTypeInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45791. {
  45792. pNext = pNext_;
  45793. return *this;
  45794. }
  45795. VULKAN_HPP_CONSTEXPR_14 OutOfBandQueueTypeInfoNV & setQueueType( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType_ ) VULKAN_HPP_NOEXCEPT
  45796. {
  45797. queueType = queueType_;
  45798. return *this;
  45799. }
  45800. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45801. operator VkOutOfBandQueueTypeInfoNV const &() const VULKAN_HPP_NOEXCEPT
  45802. {
  45803. return *reinterpret_cast<const VkOutOfBandQueueTypeInfoNV *>( this );
  45804. }
  45805. operator VkOutOfBandQueueTypeInfoNV &() VULKAN_HPP_NOEXCEPT
  45806. {
  45807. return *reinterpret_cast<VkOutOfBandQueueTypeInfoNV *>( this );
  45808. }
  45809. #if defined( VULKAN_HPP_USE_REFLECT )
  45810. # if 14 <= VULKAN_HPP_CPP_VERSION
  45811. auto
  45812. # else
  45813. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV const &>
  45814. # endif
  45815. reflect() const VULKAN_HPP_NOEXCEPT
  45816. {
  45817. return std::tie( sType, pNext, queueType );
  45818. }
  45819. #endif
  45820. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45821. auto operator<=>( OutOfBandQueueTypeInfoNV const & ) const = default;
  45822. #else
  45823. bool operator==( OutOfBandQueueTypeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45824. {
  45825. # if defined( VULKAN_HPP_USE_REFLECT )
  45826. return this->reflect() == rhs.reflect();
  45827. # else
  45828. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueType == rhs.queueType );
  45829. # endif
  45830. }
  45831. bool operator!=( OutOfBandQueueTypeInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  45832. {
  45833. return !operator==( rhs );
  45834. }
  45835. #endif
  45836. public:
  45837. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eOutOfBandQueueTypeInfoNV;
  45838. const void * pNext = {};
  45839. VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV queueType = VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeNV::eRender;
  45840. };
  45841. template <>
  45842. struct CppType<StructureType, StructureType::eOutOfBandQueueTypeInfoNV>
  45843. {
  45844. using Type = OutOfBandQueueTypeInfoNV;
  45845. };
  45846. struct PastPresentationTimingGOOGLE
  45847. {
  45848. using NativeType = VkPastPresentationTimingGOOGLE;
  45849. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45850. VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( uint32_t presentID_ = {},
  45851. uint64_t desiredPresentTime_ = {},
  45852. uint64_t actualPresentTime_ = {},
  45853. uint64_t earliestPresentTime_ = {},
  45854. uint64_t presentMargin_ = {} ) VULKAN_HPP_NOEXCEPT
  45855. : presentID( presentID_ )
  45856. , desiredPresentTime( desiredPresentTime_ )
  45857. , actualPresentTime( actualPresentTime_ )
  45858. , earliestPresentTime( earliestPresentTime_ )
  45859. , presentMargin( presentMargin_ )
  45860. {
  45861. }
  45862. VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45863. PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  45864. : PastPresentationTimingGOOGLE( *reinterpret_cast<PastPresentationTimingGOOGLE const *>( &rhs ) )
  45865. {
  45866. }
  45867. PastPresentationTimingGOOGLE & operator=( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45868. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45869. PastPresentationTimingGOOGLE & operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  45870. {
  45871. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const *>( &rhs );
  45872. return *this;
  45873. }
  45874. operator VkPastPresentationTimingGOOGLE const &() const VULKAN_HPP_NOEXCEPT
  45875. {
  45876. return *reinterpret_cast<const VkPastPresentationTimingGOOGLE *>( this );
  45877. }
  45878. operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT
  45879. {
  45880. return *reinterpret_cast<VkPastPresentationTimingGOOGLE *>( this );
  45881. }
  45882. #if defined( VULKAN_HPP_USE_REFLECT )
  45883. # if 14 <= VULKAN_HPP_CPP_VERSION
  45884. auto
  45885. # else
  45886. std::tuple<uint32_t const &, uint64_t const &, uint64_t const &, uint64_t const &, uint64_t const &>
  45887. # endif
  45888. reflect() const VULKAN_HPP_NOEXCEPT
  45889. {
  45890. return std::tie( presentID, desiredPresentTime, actualPresentTime, earliestPresentTime, presentMargin );
  45891. }
  45892. #endif
  45893. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45894. auto operator<=>( PastPresentationTimingGOOGLE const & ) const = default;
  45895. #else
  45896. bool operator==( PastPresentationTimingGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  45897. {
  45898. # if defined( VULKAN_HPP_USE_REFLECT )
  45899. return this->reflect() == rhs.reflect();
  45900. # else
  45901. return ( presentID == rhs.presentID ) && ( desiredPresentTime == rhs.desiredPresentTime ) && ( actualPresentTime == rhs.actualPresentTime ) &&
  45902. ( earliestPresentTime == rhs.earliestPresentTime ) && ( presentMargin == rhs.presentMargin );
  45903. # endif
  45904. }
  45905. bool operator!=( PastPresentationTimingGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  45906. {
  45907. return !operator==( rhs );
  45908. }
  45909. #endif
  45910. public:
  45911. uint32_t presentID = {};
  45912. uint64_t desiredPresentTime = {};
  45913. uint64_t actualPresentTime = {};
  45914. uint64_t earliestPresentTime = {};
  45915. uint64_t presentMargin = {};
  45916. };
  45917. struct PerformanceConfigurationAcquireInfoINTEL
  45918. {
  45919. using NativeType = VkPerformanceConfigurationAcquireInfoINTEL;
  45920. static const bool allowDuplicate = false;
  45921. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
  45922. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  45923. VULKAN_HPP_CONSTEXPR
  45924. PerformanceConfigurationAcquireInfoINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ =
  45925. VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated,
  45926. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  45927. : pNext( pNext_ )
  45928. , type( type_ )
  45929. {
  45930. }
  45931. VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45932. PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  45933. : PerformanceConfigurationAcquireInfoINTEL( *reinterpret_cast<PerformanceConfigurationAcquireInfoINTEL const *>( &rhs ) )
  45934. {
  45935. }
  45936. PerformanceConfigurationAcquireInfoINTEL & operator=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  45937. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  45938. PerformanceConfigurationAcquireInfoINTEL & operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  45939. {
  45940. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const *>( &rhs );
  45941. return *this;
  45942. }
  45943. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  45944. VULKAN_HPP_CONSTEXPR_14 PerformanceConfigurationAcquireInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  45945. {
  45946. pNext = pNext_;
  45947. return *this;
  45948. }
  45949. VULKAN_HPP_CONSTEXPR_14 PerformanceConfigurationAcquireInfoINTEL &
  45950. setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
  45951. {
  45952. type = type_;
  45953. return *this;
  45954. }
  45955. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  45956. operator VkPerformanceConfigurationAcquireInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  45957. {
  45958. return *reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( this );
  45959. }
  45960. operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT
  45961. {
  45962. return *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL *>( this );
  45963. }
  45964. #if defined( VULKAN_HPP_USE_REFLECT )
  45965. # if 14 <= VULKAN_HPP_CPP_VERSION
  45966. auto
  45967. # else
  45968. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL const &>
  45969. # endif
  45970. reflect() const VULKAN_HPP_NOEXCEPT
  45971. {
  45972. return std::tie( sType, pNext, type );
  45973. }
  45974. #endif
  45975. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  45976. auto operator<=>( PerformanceConfigurationAcquireInfoINTEL const & ) const = default;
  45977. #else
  45978. bool operator==( PerformanceConfigurationAcquireInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  45979. {
  45980. # if defined( VULKAN_HPP_USE_REFLECT )
  45981. return this->reflect() == rhs.reflect();
  45982. # else
  45983. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type );
  45984. # endif
  45985. }
  45986. bool operator!=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  45987. {
  45988. return !operator==( rhs );
  45989. }
  45990. #endif
  45991. public:
  45992. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
  45993. const void * pNext = {};
  45994. VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type =
  45995. VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated;
  45996. };
  45997. template <>
  45998. struct CppType<StructureType, StructureType::ePerformanceConfigurationAcquireInfoINTEL>
  45999. {
  46000. using Type = PerformanceConfigurationAcquireInfoINTEL;
  46001. };
  46002. struct PerformanceCounterDescriptionKHR
  46003. {
  46004. using NativeType = VkPerformanceCounterDescriptionKHR;
  46005. static const bool allowDuplicate = false;
  46006. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterDescriptionKHR;
  46007. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46008. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags_ = {},
  46009. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & name_ = {},
  46010. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & category_ = {},
  46011. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  46012. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46013. : pNext( pNext_ )
  46014. , flags( flags_ )
  46015. , name( name_ )
  46016. , category( category_ )
  46017. , description( description_ )
  46018. {
  46019. }
  46020. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46021. PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  46022. : PerformanceCounterDescriptionKHR( *reinterpret_cast<PerformanceCounterDescriptionKHR const *>( &rhs ) )
  46023. {
  46024. }
  46025. PerformanceCounterDescriptionKHR & operator=( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46026. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46027. PerformanceCounterDescriptionKHR & operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  46028. {
  46029. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR const *>( &rhs );
  46030. return *this;
  46031. }
  46032. operator VkPerformanceCounterDescriptionKHR const &() const VULKAN_HPP_NOEXCEPT
  46033. {
  46034. return *reinterpret_cast<const VkPerformanceCounterDescriptionKHR *>( this );
  46035. }
  46036. operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT
  46037. {
  46038. return *reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( this );
  46039. }
  46040. #if defined( VULKAN_HPP_USE_REFLECT )
  46041. # if 14 <= VULKAN_HPP_CPP_VERSION
  46042. auto
  46043. # else
  46044. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  46045. void * const &,
  46046. VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR const &,
  46047. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  46048. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  46049. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &>
  46050. # endif
  46051. reflect() const VULKAN_HPP_NOEXCEPT
  46052. {
  46053. return std::tie( sType, pNext, flags, name, category, description );
  46054. }
  46055. #endif
  46056. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46057. auto operator<=>( PerformanceCounterDescriptionKHR const & ) const = default;
  46058. #else
  46059. bool operator==( PerformanceCounterDescriptionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  46060. {
  46061. # if defined( VULKAN_HPP_USE_REFLECT )
  46062. return this->reflect() == rhs.reflect();
  46063. # else
  46064. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( name == rhs.name ) && ( category == rhs.category ) &&
  46065. ( description == rhs.description );
  46066. # endif
  46067. }
  46068. bool operator!=( PerformanceCounterDescriptionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  46069. {
  46070. return !operator==( rhs );
  46071. }
  46072. #endif
  46073. public:
  46074. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR;
  46075. void * pNext = {};
  46076. VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {};
  46077. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
  46078. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> category = {};
  46079. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  46080. };
  46081. template <>
  46082. struct CppType<StructureType, StructureType::ePerformanceCounterDescriptionKHR>
  46083. {
  46084. using Type = PerformanceCounterDescriptionKHR;
  46085. };
  46086. struct PerformanceCounterKHR
  46087. {
  46088. using NativeType = VkPerformanceCounterKHR;
  46089. static const bool allowDuplicate = false;
  46090. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterKHR;
  46091. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46092. VULKAN_HPP_CONSTEXPR_14
  46093. PerformanceCounterKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit_ = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric,
  46094. VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope_ = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer,
  46095. VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage_ = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32,
  46096. std::array<uint8_t, VK_UUID_SIZE> const & uuid_ = {},
  46097. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46098. : pNext( pNext_ )
  46099. , unit( unit_ )
  46100. , scope( scope_ )
  46101. , storage( storage_ )
  46102. , uuid( uuid_ )
  46103. {
  46104. }
  46105. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46106. PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  46107. : PerformanceCounterKHR( *reinterpret_cast<PerformanceCounterKHR const *>( &rhs ) )
  46108. {
  46109. }
  46110. PerformanceCounterKHR & operator=( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46111. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46112. PerformanceCounterKHR & operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  46113. {
  46114. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR const *>( &rhs );
  46115. return *this;
  46116. }
  46117. operator VkPerformanceCounterKHR const &() const VULKAN_HPP_NOEXCEPT
  46118. {
  46119. return *reinterpret_cast<const VkPerformanceCounterKHR *>( this );
  46120. }
  46121. operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT
  46122. {
  46123. return *reinterpret_cast<VkPerformanceCounterKHR *>( this );
  46124. }
  46125. #if defined( VULKAN_HPP_USE_REFLECT )
  46126. # if 14 <= VULKAN_HPP_CPP_VERSION
  46127. auto
  46128. # else
  46129. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  46130. void * const &,
  46131. VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR const &,
  46132. VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR const &,
  46133. VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR const &,
  46134. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
  46135. # endif
  46136. reflect() const VULKAN_HPP_NOEXCEPT
  46137. {
  46138. return std::tie( sType, pNext, unit, scope, storage, uuid );
  46139. }
  46140. #endif
  46141. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46142. auto operator<=>( PerformanceCounterKHR const & ) const = default;
  46143. #else
  46144. bool operator==( PerformanceCounterKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  46145. {
  46146. # if defined( VULKAN_HPP_USE_REFLECT )
  46147. return this->reflect() == rhs.reflect();
  46148. # else
  46149. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( unit == rhs.unit ) && ( scope == rhs.scope ) && ( storage == rhs.storage ) &&
  46150. ( uuid == rhs.uuid );
  46151. # endif
  46152. }
  46153. bool operator!=( PerformanceCounterKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  46154. {
  46155. return !operator==( rhs );
  46156. }
  46157. #endif
  46158. public:
  46159. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR;
  46160. void * pNext = {};
  46161. VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric;
  46162. VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer;
  46163. VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32;
  46164. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> uuid = {};
  46165. };
  46166. template <>
  46167. struct CppType<StructureType, StructureType::ePerformanceCounterKHR>
  46168. {
  46169. using Type = PerformanceCounterKHR;
  46170. };
  46171. union PerformanceCounterResultKHR
  46172. {
  46173. using NativeType = VkPerformanceCounterResultKHR;
  46174. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  46175. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( int32_t int32_ = {} ) : int32( int32_ ) {}
  46176. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( int64_t int64_ ) : int64( int64_ ) {}
  46177. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( uint32_t uint32_ ) : uint32( uint32_ ) {}
  46178. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( uint64_t uint64_ ) : uint64( uint64_ ) {}
  46179. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( float float32_ ) : float32( float32_ ) {}
  46180. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR( double float64_ ) : float64( float64_ ) {}
  46181. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  46182. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  46183. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT
  46184. {
  46185. int32 = int32_;
  46186. return *this;
  46187. }
  46188. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT
  46189. {
  46190. int64 = int64_;
  46191. return *this;
  46192. }
  46193. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT
  46194. {
  46195. uint32 = uint32_;
  46196. return *this;
  46197. }
  46198. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT
  46199. {
  46200. uint64 = uint64_;
  46201. return *this;
  46202. }
  46203. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT
  46204. {
  46205. float32 = float32_;
  46206. return *this;
  46207. }
  46208. VULKAN_HPP_CONSTEXPR_14 PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT
  46209. {
  46210. float64 = float64_;
  46211. return *this;
  46212. }
  46213. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  46214. operator VkPerformanceCounterResultKHR const &() const
  46215. {
  46216. return *reinterpret_cast<const VkPerformanceCounterResultKHR *>( this );
  46217. }
  46218. operator VkPerformanceCounterResultKHR &()
  46219. {
  46220. return *reinterpret_cast<VkPerformanceCounterResultKHR *>( this );
  46221. }
  46222. int32_t int32;
  46223. int64_t int64;
  46224. uint32_t uint32;
  46225. uint64_t uint64;
  46226. float float32;
  46227. double float64;
  46228. };
  46229. struct PerformanceMarkerInfoINTEL
  46230. {
  46231. using NativeType = VkPerformanceMarkerInfoINTEL;
  46232. static const bool allowDuplicate = false;
  46233. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceMarkerInfoINTEL;
  46234. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46235. VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( uint64_t marker_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46236. : pNext( pNext_ )
  46237. , marker( marker_ )
  46238. {
  46239. }
  46240. VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46241. PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  46242. : PerformanceMarkerInfoINTEL( *reinterpret_cast<PerformanceMarkerInfoINTEL const *>( &rhs ) )
  46243. {
  46244. }
  46245. PerformanceMarkerInfoINTEL & operator=( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46246. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46247. PerformanceMarkerInfoINTEL & operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  46248. {
  46249. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL const *>( &rhs );
  46250. return *this;
  46251. }
  46252. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46253. VULKAN_HPP_CONSTEXPR_14 PerformanceMarkerInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46254. {
  46255. pNext = pNext_;
  46256. return *this;
  46257. }
  46258. VULKAN_HPP_CONSTEXPR_14 PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT
  46259. {
  46260. marker = marker_;
  46261. return *this;
  46262. }
  46263. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46264. operator VkPerformanceMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  46265. {
  46266. return *reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( this );
  46267. }
  46268. operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
  46269. {
  46270. return *reinterpret_cast<VkPerformanceMarkerInfoINTEL *>( this );
  46271. }
  46272. #if defined( VULKAN_HPP_USE_REFLECT )
  46273. # if 14 <= VULKAN_HPP_CPP_VERSION
  46274. auto
  46275. # else
  46276. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &>
  46277. # endif
  46278. reflect() const VULKAN_HPP_NOEXCEPT
  46279. {
  46280. return std::tie( sType, pNext, marker );
  46281. }
  46282. #endif
  46283. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46284. auto operator<=>( PerformanceMarkerInfoINTEL const & ) const = default;
  46285. #else
  46286. bool operator==( PerformanceMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  46287. {
  46288. # if defined( VULKAN_HPP_USE_REFLECT )
  46289. return this->reflect() == rhs.reflect();
  46290. # else
  46291. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( marker == rhs.marker );
  46292. # endif
  46293. }
  46294. bool operator!=( PerformanceMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  46295. {
  46296. return !operator==( rhs );
  46297. }
  46298. #endif
  46299. public:
  46300. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL;
  46301. const void * pNext = {};
  46302. uint64_t marker = {};
  46303. };
  46304. template <>
  46305. struct CppType<StructureType, StructureType::ePerformanceMarkerInfoINTEL>
  46306. {
  46307. using Type = PerformanceMarkerInfoINTEL;
  46308. };
  46309. struct PerformanceOverrideInfoINTEL
  46310. {
  46311. using NativeType = VkPerformanceOverrideInfoINTEL;
  46312. static const bool allowDuplicate = false;
  46313. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceOverrideInfoINTEL;
  46314. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46315. VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL(
  46316. VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware,
  46317. VULKAN_HPP_NAMESPACE::Bool32 enable_ = {},
  46318. uint64_t parameter_ = {},
  46319. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46320. : pNext( pNext_ )
  46321. , type( type_ )
  46322. , enable( enable_ )
  46323. , parameter( parameter_ )
  46324. {
  46325. }
  46326. VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46327. PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  46328. : PerformanceOverrideInfoINTEL( *reinterpret_cast<PerformanceOverrideInfoINTEL const *>( &rhs ) )
  46329. {
  46330. }
  46331. PerformanceOverrideInfoINTEL & operator=( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46332. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46333. PerformanceOverrideInfoINTEL & operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  46334. {
  46335. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL const *>( &rhs );
  46336. return *this;
  46337. }
  46338. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46339. VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46340. {
  46341. pNext = pNext_;
  46342. return *this;
  46343. }
  46344. VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
  46345. {
  46346. type = type_;
  46347. return *this;
  46348. }
  46349. VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT
  46350. {
  46351. enable = enable_;
  46352. return *this;
  46353. }
  46354. VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT
  46355. {
  46356. parameter = parameter_;
  46357. return *this;
  46358. }
  46359. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46360. operator VkPerformanceOverrideInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  46361. {
  46362. return *reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( this );
  46363. }
  46364. operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT
  46365. {
  46366. return *reinterpret_cast<VkPerformanceOverrideInfoINTEL *>( this );
  46367. }
  46368. #if defined( VULKAN_HPP_USE_REFLECT )
  46369. # if 14 <= VULKAN_HPP_CPP_VERSION
  46370. auto
  46371. # else
  46372. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  46373. const void * const &,
  46374. VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL const &,
  46375. VULKAN_HPP_NAMESPACE::Bool32 const &,
  46376. uint64_t const &>
  46377. # endif
  46378. reflect() const VULKAN_HPP_NOEXCEPT
  46379. {
  46380. return std::tie( sType, pNext, type, enable, parameter );
  46381. }
  46382. #endif
  46383. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46384. auto operator<=>( PerformanceOverrideInfoINTEL const & ) const = default;
  46385. #else
  46386. bool operator==( PerformanceOverrideInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  46387. {
  46388. # if defined( VULKAN_HPP_USE_REFLECT )
  46389. return this->reflect() == rhs.reflect();
  46390. # else
  46391. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( enable == rhs.enable ) && ( parameter == rhs.parameter );
  46392. # endif
  46393. }
  46394. bool operator!=( PerformanceOverrideInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  46395. {
  46396. return !operator==( rhs );
  46397. }
  46398. #endif
  46399. public:
  46400. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL;
  46401. const void * pNext = {};
  46402. VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware;
  46403. VULKAN_HPP_NAMESPACE::Bool32 enable = {};
  46404. uint64_t parameter = {};
  46405. };
  46406. template <>
  46407. struct CppType<StructureType, StructureType::ePerformanceOverrideInfoINTEL>
  46408. {
  46409. using Type = PerformanceOverrideInfoINTEL;
  46410. };
  46411. struct PerformanceQuerySubmitInfoKHR
  46412. {
  46413. using NativeType = VkPerformanceQuerySubmitInfoKHR;
  46414. static const bool allowDuplicate = false;
  46415. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceQuerySubmitInfoKHR;
  46416. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46417. VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( uint32_t counterPassIndex_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46418. : pNext( pNext_ )
  46419. , counterPassIndex( counterPassIndex_ )
  46420. {
  46421. }
  46422. VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46423. PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  46424. : PerformanceQuerySubmitInfoKHR( *reinterpret_cast<PerformanceQuerySubmitInfoKHR const *>( &rhs ) )
  46425. {
  46426. }
  46427. PerformanceQuerySubmitInfoKHR & operator=( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46428. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46429. PerformanceQuerySubmitInfoKHR & operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  46430. {
  46431. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR const *>( &rhs );
  46432. return *this;
  46433. }
  46434. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46435. VULKAN_HPP_CONSTEXPR_14 PerformanceQuerySubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46436. {
  46437. pNext = pNext_;
  46438. return *this;
  46439. }
  46440. VULKAN_HPP_CONSTEXPR_14 PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT
  46441. {
  46442. counterPassIndex = counterPassIndex_;
  46443. return *this;
  46444. }
  46445. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46446. operator VkPerformanceQuerySubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  46447. {
  46448. return *reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR *>( this );
  46449. }
  46450. operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT
  46451. {
  46452. return *reinterpret_cast<VkPerformanceQuerySubmitInfoKHR *>( this );
  46453. }
  46454. #if defined( VULKAN_HPP_USE_REFLECT )
  46455. # if 14 <= VULKAN_HPP_CPP_VERSION
  46456. auto
  46457. # else
  46458. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  46459. # endif
  46460. reflect() const VULKAN_HPP_NOEXCEPT
  46461. {
  46462. return std::tie( sType, pNext, counterPassIndex );
  46463. }
  46464. #endif
  46465. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46466. auto operator<=>( PerformanceQuerySubmitInfoKHR const & ) const = default;
  46467. #else
  46468. bool operator==( PerformanceQuerySubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  46469. {
  46470. # if defined( VULKAN_HPP_USE_REFLECT )
  46471. return this->reflect() == rhs.reflect();
  46472. # else
  46473. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( counterPassIndex == rhs.counterPassIndex );
  46474. # endif
  46475. }
  46476. bool operator!=( PerformanceQuerySubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  46477. {
  46478. return !operator==( rhs );
  46479. }
  46480. #endif
  46481. public:
  46482. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR;
  46483. const void * pNext = {};
  46484. uint32_t counterPassIndex = {};
  46485. };
  46486. template <>
  46487. struct CppType<StructureType, StructureType::ePerformanceQuerySubmitInfoKHR>
  46488. {
  46489. using Type = PerformanceQuerySubmitInfoKHR;
  46490. };
  46491. struct PerformanceStreamMarkerInfoINTEL
  46492. {
  46493. using NativeType = VkPerformanceStreamMarkerInfoINTEL;
  46494. static const bool allowDuplicate = false;
  46495. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceStreamMarkerInfoINTEL;
  46496. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46497. VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( uint32_t marker_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46498. : pNext( pNext_ )
  46499. , marker( marker_ )
  46500. {
  46501. }
  46502. VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46503. PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  46504. : PerformanceStreamMarkerInfoINTEL( *reinterpret_cast<PerformanceStreamMarkerInfoINTEL const *>( &rhs ) )
  46505. {
  46506. }
  46507. PerformanceStreamMarkerInfoINTEL & operator=( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46508. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46509. PerformanceStreamMarkerInfoINTEL & operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  46510. {
  46511. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL const *>( &rhs );
  46512. return *this;
  46513. }
  46514. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46515. VULKAN_HPP_CONSTEXPR_14 PerformanceStreamMarkerInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46516. {
  46517. pNext = pNext_;
  46518. return *this;
  46519. }
  46520. VULKAN_HPP_CONSTEXPR_14 PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT
  46521. {
  46522. marker = marker_;
  46523. return *this;
  46524. }
  46525. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46526. operator VkPerformanceStreamMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  46527. {
  46528. return *reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( this );
  46529. }
  46530. operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT
  46531. {
  46532. return *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL *>( this );
  46533. }
  46534. #if defined( VULKAN_HPP_USE_REFLECT )
  46535. # if 14 <= VULKAN_HPP_CPP_VERSION
  46536. auto
  46537. # else
  46538. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  46539. # endif
  46540. reflect() const VULKAN_HPP_NOEXCEPT
  46541. {
  46542. return std::tie( sType, pNext, marker );
  46543. }
  46544. #endif
  46545. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46546. auto operator<=>( PerformanceStreamMarkerInfoINTEL const & ) const = default;
  46547. #else
  46548. bool operator==( PerformanceStreamMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  46549. {
  46550. # if defined( VULKAN_HPP_USE_REFLECT )
  46551. return this->reflect() == rhs.reflect();
  46552. # else
  46553. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( marker == rhs.marker );
  46554. # endif
  46555. }
  46556. bool operator!=( PerformanceStreamMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  46557. {
  46558. return !operator==( rhs );
  46559. }
  46560. #endif
  46561. public:
  46562. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL;
  46563. const void * pNext = {};
  46564. uint32_t marker = {};
  46565. };
  46566. template <>
  46567. struct CppType<StructureType, StructureType::ePerformanceStreamMarkerInfoINTEL>
  46568. {
  46569. using Type = PerformanceStreamMarkerInfoINTEL;
  46570. };
  46571. union PerformanceValueDataINTEL
  46572. {
  46573. using NativeType = VkPerformanceValueDataINTEL;
  46574. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  46575. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( uint32_t value32_ = {} ) : value32( value32_ ) {}
  46576. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( uint64_t value64_ ) : value64( value64_ ) {}
  46577. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( float valueFloat_ ) : valueFloat( valueFloat_ ) {}
  46578. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL( const char * valueString_ ) : valueString( valueString_ ) {}
  46579. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  46580. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  46581. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT
  46582. {
  46583. value32 = value32_;
  46584. return *this;
  46585. }
  46586. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT
  46587. {
  46588. value64 = value64_;
  46589. return *this;
  46590. }
  46591. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT
  46592. {
  46593. valueFloat = valueFloat_;
  46594. return *this;
  46595. }
  46596. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT
  46597. {
  46598. valueBool = valueBool_;
  46599. return *this;
  46600. }
  46601. VULKAN_HPP_CONSTEXPR_14 PerformanceValueDataINTEL & setValueString( const char * valueString_ ) VULKAN_HPP_NOEXCEPT
  46602. {
  46603. valueString = valueString_;
  46604. return *this;
  46605. }
  46606. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  46607. operator VkPerformanceValueDataINTEL const &() const
  46608. {
  46609. return *reinterpret_cast<const VkPerformanceValueDataINTEL *>( this );
  46610. }
  46611. operator VkPerformanceValueDataINTEL &()
  46612. {
  46613. return *reinterpret_cast<VkPerformanceValueDataINTEL *>( this );
  46614. }
  46615. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  46616. uint32_t value32;
  46617. uint64_t value64;
  46618. float valueFloat;
  46619. VULKAN_HPP_NAMESPACE::Bool32 valueBool;
  46620. const char * valueString;
  46621. #else
  46622. uint32_t value32;
  46623. uint64_t value64;
  46624. float valueFloat;
  46625. VkBool32 valueBool;
  46626. const char * valueString;
  46627. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  46628. };
  46629. struct PerformanceValueINTEL
  46630. {
  46631. using NativeType = VkPerformanceValueINTEL;
  46632. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46633. VULKAN_HPP_CONSTEXPR_14
  46634. PerformanceValueINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32,
  46635. VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {} ) VULKAN_HPP_NOEXCEPT
  46636. : type( type_ )
  46637. , data( data_ )
  46638. {
  46639. }
  46640. VULKAN_HPP_CONSTEXPR_14 PerformanceValueINTEL( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46641. PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  46642. : PerformanceValueINTEL( *reinterpret_cast<PerformanceValueINTEL const *>( &rhs ) )
  46643. {
  46644. }
  46645. PerformanceValueINTEL & operator=( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46646. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46647. PerformanceValueINTEL & operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  46648. {
  46649. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL const *>( &rhs );
  46650. return *this;
  46651. }
  46652. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46653. VULKAN_HPP_CONSTEXPR_14 PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT
  46654. {
  46655. type = type_;
  46656. return *this;
  46657. }
  46658. VULKAN_HPP_CONSTEXPR_14 PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & data_ ) VULKAN_HPP_NOEXCEPT
  46659. {
  46660. data = data_;
  46661. return *this;
  46662. }
  46663. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46664. operator VkPerformanceValueINTEL const &() const VULKAN_HPP_NOEXCEPT
  46665. {
  46666. return *reinterpret_cast<const VkPerformanceValueINTEL *>( this );
  46667. }
  46668. operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT
  46669. {
  46670. return *reinterpret_cast<VkPerformanceValueINTEL *>( this );
  46671. }
  46672. #if defined( VULKAN_HPP_USE_REFLECT )
  46673. # if 14 <= VULKAN_HPP_CPP_VERSION
  46674. auto
  46675. # else
  46676. std::tuple<VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL const &, VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const &>
  46677. # endif
  46678. reflect() const VULKAN_HPP_NOEXCEPT
  46679. {
  46680. return std::tie( type, data );
  46681. }
  46682. #endif
  46683. public:
  46684. VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32;
  46685. VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {};
  46686. };
  46687. struct PhysicalDevice16BitStorageFeatures
  46688. {
  46689. using NativeType = VkPhysicalDevice16BitStorageFeatures;
  46690. static const bool allowDuplicate = false;
  46691. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice16BitStorageFeatures;
  46692. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46693. VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {},
  46694. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {},
  46695. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {},
  46696. VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {},
  46697. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46698. : pNext( pNext_ )
  46699. , storageBuffer16BitAccess( storageBuffer16BitAccess_ )
  46700. , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ )
  46701. , storagePushConstant16( storagePushConstant16_ )
  46702. , storageInputOutput16( storageInputOutput16_ )
  46703. {
  46704. }
  46705. VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46706. PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  46707. : PhysicalDevice16BitStorageFeatures( *reinterpret_cast<PhysicalDevice16BitStorageFeatures const *>( &rhs ) )
  46708. {
  46709. }
  46710. PhysicalDevice16BitStorageFeatures & operator=( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46711. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46712. PhysicalDevice16BitStorageFeatures & operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  46713. {
  46714. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures const *>( &rhs );
  46715. return *this;
  46716. }
  46717. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46718. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46719. {
  46720. pNext = pNext_;
  46721. return *this;
  46722. }
  46723. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
  46724. setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
  46725. {
  46726. storageBuffer16BitAccess = storageBuffer16BitAccess_;
  46727. return *this;
  46728. }
  46729. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
  46730. setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
  46731. {
  46732. uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
  46733. return *this;
  46734. }
  46735. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
  46736. setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
  46737. {
  46738. storagePushConstant16 = storagePushConstant16_;
  46739. return *this;
  46740. }
  46741. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures &
  46742. setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
  46743. {
  46744. storageInputOutput16 = storageInputOutput16_;
  46745. return *this;
  46746. }
  46747. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46748. operator VkPhysicalDevice16BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
  46749. {
  46750. return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures *>( this );
  46751. }
  46752. operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
  46753. {
  46754. return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures *>( this );
  46755. }
  46756. #if defined( VULKAN_HPP_USE_REFLECT )
  46757. # if 14 <= VULKAN_HPP_CPP_VERSION
  46758. auto
  46759. # else
  46760. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  46761. void * const &,
  46762. VULKAN_HPP_NAMESPACE::Bool32 const &,
  46763. VULKAN_HPP_NAMESPACE::Bool32 const &,
  46764. VULKAN_HPP_NAMESPACE::Bool32 const &,
  46765. VULKAN_HPP_NAMESPACE::Bool32 const &>
  46766. # endif
  46767. reflect() const VULKAN_HPP_NOEXCEPT
  46768. {
  46769. return std::tie( sType, pNext, storageBuffer16BitAccess, uniformAndStorageBuffer16BitAccess, storagePushConstant16, storageInputOutput16 );
  46770. }
  46771. #endif
  46772. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46773. auto operator<=>( PhysicalDevice16BitStorageFeatures const & ) const = default;
  46774. #else
  46775. bool operator==( PhysicalDevice16BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  46776. {
  46777. # if defined( VULKAN_HPP_USE_REFLECT )
  46778. return this->reflect() == rhs.reflect();
  46779. # else
  46780. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) &&
  46781. ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) && ( storagePushConstant16 == rhs.storagePushConstant16 ) &&
  46782. ( storageInputOutput16 == rhs.storageInputOutput16 );
  46783. # endif
  46784. }
  46785. bool operator!=( PhysicalDevice16BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  46786. {
  46787. return !operator==( rhs );
  46788. }
  46789. #endif
  46790. public:
  46791. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures;
  46792. void * pNext = {};
  46793. VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
  46794. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
  46795. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
  46796. VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
  46797. };
  46798. template <>
  46799. struct CppType<StructureType, StructureType::ePhysicalDevice16BitStorageFeatures>
  46800. {
  46801. using Type = PhysicalDevice16BitStorageFeatures;
  46802. };
  46803. using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
  46804. struct PhysicalDevice4444FormatsFeaturesEXT
  46805. {
  46806. using NativeType = VkPhysicalDevice4444FormatsFeaturesEXT;
  46807. static const bool allowDuplicate = false;
  46808. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
  46809. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46810. VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ = {},
  46811. VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ = {},
  46812. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46813. : pNext( pNext_ )
  46814. , formatA4R4G4B4( formatA4R4G4B4_ )
  46815. , formatA4B4G4R4( formatA4B4G4R4_ )
  46816. {
  46817. }
  46818. VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46819. PhysicalDevice4444FormatsFeaturesEXT( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  46820. : PhysicalDevice4444FormatsFeaturesEXT( *reinterpret_cast<PhysicalDevice4444FormatsFeaturesEXT const *>( &rhs ) )
  46821. {
  46822. }
  46823. PhysicalDevice4444FormatsFeaturesEXT & operator=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46824. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46825. PhysicalDevice4444FormatsFeaturesEXT & operator=( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  46826. {
  46827. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT const *>( &rhs );
  46828. return *this;
  46829. }
  46830. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46831. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46832. {
  46833. pNext = pNext_;
  46834. return *this;
  46835. }
  46836. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & setFormatA4R4G4B4( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ ) VULKAN_HPP_NOEXCEPT
  46837. {
  46838. formatA4R4G4B4 = formatA4R4G4B4_;
  46839. return *this;
  46840. }
  46841. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & setFormatA4B4G4R4( VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ ) VULKAN_HPP_NOEXCEPT
  46842. {
  46843. formatA4B4G4R4 = formatA4B4G4R4_;
  46844. return *this;
  46845. }
  46846. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46847. operator VkPhysicalDevice4444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  46848. {
  46849. return *reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT *>( this );
  46850. }
  46851. operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  46852. {
  46853. return *reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT *>( this );
  46854. }
  46855. #if defined( VULKAN_HPP_USE_REFLECT )
  46856. # if 14 <= VULKAN_HPP_CPP_VERSION
  46857. auto
  46858. # else
  46859. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  46860. # endif
  46861. reflect() const VULKAN_HPP_NOEXCEPT
  46862. {
  46863. return std::tie( sType, pNext, formatA4R4G4B4, formatA4B4G4R4 );
  46864. }
  46865. #endif
  46866. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46867. auto operator<=>( PhysicalDevice4444FormatsFeaturesEXT const & ) const = default;
  46868. #else
  46869. bool operator==( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  46870. {
  46871. # if defined( VULKAN_HPP_USE_REFLECT )
  46872. return this->reflect() == rhs.reflect();
  46873. # else
  46874. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( formatA4R4G4B4 == rhs.formatA4R4G4B4 ) && ( formatA4B4G4R4 == rhs.formatA4B4G4R4 );
  46875. # endif
  46876. }
  46877. bool operator!=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  46878. {
  46879. return !operator==( rhs );
  46880. }
  46881. #endif
  46882. public:
  46883. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT;
  46884. void * pNext = {};
  46885. VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4 = {};
  46886. VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4 = {};
  46887. };
  46888. template <>
  46889. struct CppType<StructureType, StructureType::ePhysicalDevice4444FormatsFeaturesEXT>
  46890. {
  46891. using Type = PhysicalDevice4444FormatsFeaturesEXT;
  46892. };
  46893. struct PhysicalDevice8BitStorageFeatures
  46894. {
  46895. using NativeType = VkPhysicalDevice8BitStorageFeatures;
  46896. static const bool allowDuplicate = false;
  46897. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice8BitStorageFeatures;
  46898. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46899. VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {},
  46900. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {},
  46901. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {},
  46902. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  46903. : pNext( pNext_ )
  46904. , storageBuffer8BitAccess( storageBuffer8BitAccess_ )
  46905. , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ )
  46906. , storagePushConstant8( storagePushConstant8_ )
  46907. {
  46908. }
  46909. VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46910. PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  46911. : PhysicalDevice8BitStorageFeatures( *reinterpret_cast<PhysicalDevice8BitStorageFeatures const *>( &rhs ) )
  46912. {
  46913. }
  46914. PhysicalDevice8BitStorageFeatures & operator=( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  46915. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  46916. PhysicalDevice8BitStorageFeatures & operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  46917. {
  46918. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures const *>( &rhs );
  46919. return *this;
  46920. }
  46921. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  46922. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  46923. {
  46924. pNext = pNext_;
  46925. return *this;
  46926. }
  46927. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures &
  46928. setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
  46929. {
  46930. storageBuffer8BitAccess = storageBuffer8BitAccess_;
  46931. return *this;
  46932. }
  46933. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures &
  46934. setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
  46935. {
  46936. uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
  46937. return *this;
  46938. }
  46939. VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures &
  46940. setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
  46941. {
  46942. storagePushConstant8 = storagePushConstant8_;
  46943. return *this;
  46944. }
  46945. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  46946. operator VkPhysicalDevice8BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT
  46947. {
  46948. return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures *>( this );
  46949. }
  46950. operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT
  46951. {
  46952. return *reinterpret_cast<VkPhysicalDevice8BitStorageFeatures *>( this );
  46953. }
  46954. #if defined( VULKAN_HPP_USE_REFLECT )
  46955. # if 14 <= VULKAN_HPP_CPP_VERSION
  46956. auto
  46957. # else
  46958. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  46959. void * const &,
  46960. VULKAN_HPP_NAMESPACE::Bool32 const &,
  46961. VULKAN_HPP_NAMESPACE::Bool32 const &,
  46962. VULKAN_HPP_NAMESPACE::Bool32 const &>
  46963. # endif
  46964. reflect() const VULKAN_HPP_NOEXCEPT
  46965. {
  46966. return std::tie( sType, pNext, storageBuffer8BitAccess, uniformAndStorageBuffer8BitAccess, storagePushConstant8 );
  46967. }
  46968. #endif
  46969. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  46970. auto operator<=>( PhysicalDevice8BitStorageFeatures const & ) const = default;
  46971. #else
  46972. bool operator==( PhysicalDevice8BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  46973. {
  46974. # if defined( VULKAN_HPP_USE_REFLECT )
  46975. return this->reflect() == rhs.reflect();
  46976. # else
  46977. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) &&
  46978. ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) && ( storagePushConstant8 == rhs.storagePushConstant8 );
  46979. # endif
  46980. }
  46981. bool operator!=( PhysicalDevice8BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  46982. {
  46983. return !operator==( rhs );
  46984. }
  46985. #endif
  46986. public:
  46987. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures;
  46988. void * pNext = {};
  46989. VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
  46990. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
  46991. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
  46992. };
  46993. template <>
  46994. struct CppType<StructureType, StructureType::ePhysicalDevice8BitStorageFeatures>
  46995. {
  46996. using Type = PhysicalDevice8BitStorageFeatures;
  46997. };
  46998. using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
  46999. struct PhysicalDeviceASTCDecodeFeaturesEXT
  47000. {
  47001. using NativeType = VkPhysicalDeviceASTCDecodeFeaturesEXT;
  47002. static const bool allowDuplicate = false;
  47003. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
  47004. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47005. VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {},
  47006. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47007. : pNext( pNext_ )
  47008. , decodeModeSharedExponent( decodeModeSharedExponent_ )
  47009. {
  47010. }
  47011. VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47012. PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47013. : PhysicalDeviceASTCDecodeFeaturesEXT( *reinterpret_cast<PhysicalDeviceASTCDecodeFeaturesEXT const *>( &rhs ) )
  47014. {
  47015. }
  47016. PhysicalDeviceASTCDecodeFeaturesEXT & operator=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47017. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47018. PhysicalDeviceASTCDecodeFeaturesEXT & operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47019. {
  47020. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT const *>( &rhs );
  47021. return *this;
  47022. }
  47023. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47024. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47025. {
  47026. pNext = pNext_;
  47027. return *this;
  47028. }
  47029. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceASTCDecodeFeaturesEXT &
  47030. setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT
  47031. {
  47032. decodeModeSharedExponent = decodeModeSharedExponent_;
  47033. return *this;
  47034. }
  47035. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47036. operator VkPhysicalDeviceASTCDecodeFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  47037. {
  47038. return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT *>( this );
  47039. }
  47040. operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  47041. {
  47042. return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT *>( this );
  47043. }
  47044. #if defined( VULKAN_HPP_USE_REFLECT )
  47045. # if 14 <= VULKAN_HPP_CPP_VERSION
  47046. auto
  47047. # else
  47048. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  47049. # endif
  47050. reflect() const VULKAN_HPP_NOEXCEPT
  47051. {
  47052. return std::tie( sType, pNext, decodeModeSharedExponent );
  47053. }
  47054. #endif
  47055. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47056. auto operator<=>( PhysicalDeviceASTCDecodeFeaturesEXT const & ) const = default;
  47057. #else
  47058. bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47059. {
  47060. # if defined( VULKAN_HPP_USE_REFLECT )
  47061. return this->reflect() == rhs.reflect();
  47062. # else
  47063. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent );
  47064. # endif
  47065. }
  47066. bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47067. {
  47068. return !operator==( rhs );
  47069. }
  47070. #endif
  47071. public:
  47072. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
  47073. void * pNext = {};
  47074. VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {};
  47075. };
  47076. template <>
  47077. struct CppType<StructureType, StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT>
  47078. {
  47079. using Type = PhysicalDeviceASTCDecodeFeaturesEXT;
  47080. };
  47081. struct PhysicalDeviceAccelerationStructureFeaturesKHR
  47082. {
  47083. using NativeType = VkPhysicalDeviceAccelerationStructureFeaturesKHR;
  47084. static const bool allowDuplicate = false;
  47085. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR;
  47086. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47087. VULKAN_HPP_CONSTEXPR
  47088. PhysicalDeviceAccelerationStructureFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ = {},
  47089. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ = {},
  47090. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ = {},
  47091. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ = {},
  47092. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ = {},
  47093. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47094. : pNext( pNext_ )
  47095. , accelerationStructure( accelerationStructure_ )
  47096. , accelerationStructureCaptureReplay( accelerationStructureCaptureReplay_ )
  47097. , accelerationStructureIndirectBuild( accelerationStructureIndirectBuild_ )
  47098. , accelerationStructureHostCommands( accelerationStructureHostCommands_ )
  47099. , descriptorBindingAccelerationStructureUpdateAfterBind( descriptorBindingAccelerationStructureUpdateAfterBind_ )
  47100. {
  47101. }
  47102. VULKAN_HPP_CONSTEXPR
  47103. PhysicalDeviceAccelerationStructureFeaturesKHR( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47104. PhysicalDeviceAccelerationStructureFeaturesKHR( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  47105. : PhysicalDeviceAccelerationStructureFeaturesKHR( *reinterpret_cast<PhysicalDeviceAccelerationStructureFeaturesKHR const *>( &rhs ) )
  47106. {
  47107. }
  47108. PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47109. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47110. PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  47111. {
  47112. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR const *>( &rhs );
  47113. return *this;
  47114. }
  47115. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47116. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47117. {
  47118. pNext = pNext_;
  47119. return *this;
  47120. }
  47121. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
  47122. setAccelerationStructure( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ ) VULKAN_HPP_NOEXCEPT
  47123. {
  47124. accelerationStructure = accelerationStructure_;
  47125. return *this;
  47126. }
  47127. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
  47128. setAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  47129. {
  47130. accelerationStructureCaptureReplay = accelerationStructureCaptureReplay_;
  47131. return *this;
  47132. }
  47133. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
  47134. setAccelerationStructureIndirectBuild( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ ) VULKAN_HPP_NOEXCEPT
  47135. {
  47136. accelerationStructureIndirectBuild = accelerationStructureIndirectBuild_;
  47137. return *this;
  47138. }
  47139. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR &
  47140. setAccelerationStructureHostCommands( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ ) VULKAN_HPP_NOEXCEPT
  47141. {
  47142. accelerationStructureHostCommands = accelerationStructureHostCommands_;
  47143. return *this;
  47144. }
  47145. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & setDescriptorBindingAccelerationStructureUpdateAfterBind(
  47146. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  47147. {
  47148. descriptorBindingAccelerationStructureUpdateAfterBind = descriptorBindingAccelerationStructureUpdateAfterBind_;
  47149. return *this;
  47150. }
  47151. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47152. operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  47153. {
  47154. return *reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR *>( this );
  47155. }
  47156. operator VkPhysicalDeviceAccelerationStructureFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  47157. {
  47158. return *reinterpret_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR *>( this );
  47159. }
  47160. #if defined( VULKAN_HPP_USE_REFLECT )
  47161. # if 14 <= VULKAN_HPP_CPP_VERSION
  47162. auto
  47163. # else
  47164. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  47165. void * const &,
  47166. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47167. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47168. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47169. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47170. VULKAN_HPP_NAMESPACE::Bool32 const &>
  47171. # endif
  47172. reflect() const VULKAN_HPP_NOEXCEPT
  47173. {
  47174. return std::tie( sType,
  47175. pNext,
  47176. accelerationStructure,
  47177. accelerationStructureCaptureReplay,
  47178. accelerationStructureIndirectBuild,
  47179. accelerationStructureHostCommands,
  47180. descriptorBindingAccelerationStructureUpdateAfterBind );
  47181. }
  47182. #endif
  47183. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47184. auto operator<=>( PhysicalDeviceAccelerationStructureFeaturesKHR const & ) const = default;
  47185. #else
  47186. bool operator==( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  47187. {
  47188. # if defined( VULKAN_HPP_USE_REFLECT )
  47189. return this->reflect() == rhs.reflect();
  47190. # else
  47191. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructure == rhs.accelerationStructure ) &&
  47192. ( accelerationStructureCaptureReplay == rhs.accelerationStructureCaptureReplay ) &&
  47193. ( accelerationStructureIndirectBuild == rhs.accelerationStructureIndirectBuild ) &&
  47194. ( accelerationStructureHostCommands == rhs.accelerationStructureHostCommands ) &&
  47195. ( descriptorBindingAccelerationStructureUpdateAfterBind == rhs.descriptorBindingAccelerationStructureUpdateAfterBind );
  47196. # endif
  47197. }
  47198. bool operator!=( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  47199. {
  47200. return !operator==( rhs );
  47201. }
  47202. #endif
  47203. public:
  47204. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR;
  47205. void * pNext = {};
  47206. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure = {};
  47207. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay = {};
  47208. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild = {};
  47209. VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands = {};
  47210. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind = {};
  47211. };
  47212. template <>
  47213. struct CppType<StructureType, StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR>
  47214. {
  47215. using Type = PhysicalDeviceAccelerationStructureFeaturesKHR;
  47216. };
  47217. struct PhysicalDeviceAccelerationStructurePropertiesKHR
  47218. {
  47219. using NativeType = VkPhysicalDeviceAccelerationStructurePropertiesKHR;
  47220. static const bool allowDuplicate = false;
  47221. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR;
  47222. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47223. VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR( uint64_t maxGeometryCount_ = {},
  47224. uint64_t maxInstanceCount_ = {},
  47225. uint64_t maxPrimitiveCount_ = {},
  47226. uint32_t maxPerStageDescriptorAccelerationStructures_ = {},
  47227. uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ = {},
  47228. uint32_t maxDescriptorSetAccelerationStructures_ = {},
  47229. uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures_ = {},
  47230. uint32_t minAccelerationStructureScratchOffsetAlignment_ = {},
  47231. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47232. : pNext( pNext_ )
  47233. , maxGeometryCount( maxGeometryCount_ )
  47234. , maxInstanceCount( maxInstanceCount_ )
  47235. , maxPrimitiveCount( maxPrimitiveCount_ )
  47236. , maxPerStageDescriptorAccelerationStructures( maxPerStageDescriptorAccelerationStructures_ )
  47237. , maxPerStageDescriptorUpdateAfterBindAccelerationStructures( maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ )
  47238. , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
  47239. , maxDescriptorSetUpdateAfterBindAccelerationStructures( maxDescriptorSetUpdateAfterBindAccelerationStructures_ )
  47240. , minAccelerationStructureScratchOffsetAlignment( minAccelerationStructureScratchOffsetAlignment_ )
  47241. {
  47242. }
  47243. VULKAN_HPP_CONSTEXPR
  47244. PhysicalDeviceAccelerationStructurePropertiesKHR( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47245. PhysicalDeviceAccelerationStructurePropertiesKHR( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  47246. : PhysicalDeviceAccelerationStructurePropertiesKHR( *reinterpret_cast<PhysicalDeviceAccelerationStructurePropertiesKHR const *>( &rhs ) )
  47247. {
  47248. }
  47249. PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47250. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47251. PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  47252. {
  47253. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR const *>( &rhs );
  47254. return *this;
  47255. }
  47256. operator VkPhysicalDeviceAccelerationStructurePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  47257. {
  47258. return *reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR *>( this );
  47259. }
  47260. operator VkPhysicalDeviceAccelerationStructurePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  47261. {
  47262. return *reinterpret_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR *>( this );
  47263. }
  47264. #if defined( VULKAN_HPP_USE_REFLECT )
  47265. # if 14 <= VULKAN_HPP_CPP_VERSION
  47266. auto
  47267. # else
  47268. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  47269. void * const &,
  47270. uint64_t const &,
  47271. uint64_t const &,
  47272. uint64_t const &,
  47273. uint32_t const &,
  47274. uint32_t const &,
  47275. uint32_t const &,
  47276. uint32_t const &,
  47277. uint32_t const &>
  47278. # endif
  47279. reflect() const VULKAN_HPP_NOEXCEPT
  47280. {
  47281. return std::tie( sType,
  47282. pNext,
  47283. maxGeometryCount,
  47284. maxInstanceCount,
  47285. maxPrimitiveCount,
  47286. maxPerStageDescriptorAccelerationStructures,
  47287. maxPerStageDescriptorUpdateAfterBindAccelerationStructures,
  47288. maxDescriptorSetAccelerationStructures,
  47289. maxDescriptorSetUpdateAfterBindAccelerationStructures,
  47290. minAccelerationStructureScratchOffsetAlignment );
  47291. }
  47292. #endif
  47293. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47294. auto operator<=>( PhysicalDeviceAccelerationStructurePropertiesKHR const & ) const = default;
  47295. #else
  47296. bool operator==( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  47297. {
  47298. # if defined( VULKAN_HPP_USE_REFLECT )
  47299. return this->reflect() == rhs.reflect();
  47300. # else
  47301. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxGeometryCount == rhs.maxGeometryCount ) && ( maxInstanceCount == rhs.maxInstanceCount ) &&
  47302. ( maxPrimitiveCount == rhs.maxPrimitiveCount ) &&
  47303. ( maxPerStageDescriptorAccelerationStructures == rhs.maxPerStageDescriptorAccelerationStructures ) &&
  47304. ( maxPerStageDescriptorUpdateAfterBindAccelerationStructures == rhs.maxPerStageDescriptorUpdateAfterBindAccelerationStructures ) &&
  47305. ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures ) &&
  47306. ( maxDescriptorSetUpdateAfterBindAccelerationStructures == rhs.maxDescriptorSetUpdateAfterBindAccelerationStructures ) &&
  47307. ( minAccelerationStructureScratchOffsetAlignment == rhs.minAccelerationStructureScratchOffsetAlignment );
  47308. # endif
  47309. }
  47310. bool operator!=( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  47311. {
  47312. return !operator==( rhs );
  47313. }
  47314. #endif
  47315. public:
  47316. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR;
  47317. void * pNext = {};
  47318. uint64_t maxGeometryCount = {};
  47319. uint64_t maxInstanceCount = {};
  47320. uint64_t maxPrimitiveCount = {};
  47321. uint32_t maxPerStageDescriptorAccelerationStructures = {};
  47322. uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures = {};
  47323. uint32_t maxDescriptorSetAccelerationStructures = {};
  47324. uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures = {};
  47325. uint32_t minAccelerationStructureScratchOffsetAlignment = {};
  47326. };
  47327. template <>
  47328. struct CppType<StructureType, StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR>
  47329. {
  47330. using Type = PhysicalDeviceAccelerationStructurePropertiesKHR;
  47331. };
  47332. struct PhysicalDeviceAddressBindingReportFeaturesEXT
  47333. {
  47334. using NativeType = VkPhysicalDeviceAddressBindingReportFeaturesEXT;
  47335. static const bool allowDuplicate = false;
  47336. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAddressBindingReportFeaturesEXT;
  47337. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47338. VULKAN_HPP_CONSTEXPR PhysicalDeviceAddressBindingReportFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 reportAddressBinding_ = {},
  47339. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47340. : pNext( pNext_ )
  47341. , reportAddressBinding( reportAddressBinding_ )
  47342. {
  47343. }
  47344. VULKAN_HPP_CONSTEXPR
  47345. PhysicalDeviceAddressBindingReportFeaturesEXT( PhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47346. PhysicalDeviceAddressBindingReportFeaturesEXT( VkPhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47347. : PhysicalDeviceAddressBindingReportFeaturesEXT( *reinterpret_cast<PhysicalDeviceAddressBindingReportFeaturesEXT const *>( &rhs ) )
  47348. {
  47349. }
  47350. PhysicalDeviceAddressBindingReportFeaturesEXT & operator=( PhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47351. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47352. PhysicalDeviceAddressBindingReportFeaturesEXT & operator=( VkPhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47353. {
  47354. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT const *>( &rhs );
  47355. return *this;
  47356. }
  47357. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47358. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAddressBindingReportFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47359. {
  47360. pNext = pNext_;
  47361. return *this;
  47362. }
  47363. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAddressBindingReportFeaturesEXT &
  47364. setReportAddressBinding( VULKAN_HPP_NAMESPACE::Bool32 reportAddressBinding_ ) VULKAN_HPP_NOEXCEPT
  47365. {
  47366. reportAddressBinding = reportAddressBinding_;
  47367. return *this;
  47368. }
  47369. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47370. operator VkPhysicalDeviceAddressBindingReportFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  47371. {
  47372. return *reinterpret_cast<const VkPhysicalDeviceAddressBindingReportFeaturesEXT *>( this );
  47373. }
  47374. operator VkPhysicalDeviceAddressBindingReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  47375. {
  47376. return *reinterpret_cast<VkPhysicalDeviceAddressBindingReportFeaturesEXT *>( this );
  47377. }
  47378. #if defined( VULKAN_HPP_USE_REFLECT )
  47379. # if 14 <= VULKAN_HPP_CPP_VERSION
  47380. auto
  47381. # else
  47382. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  47383. # endif
  47384. reflect() const VULKAN_HPP_NOEXCEPT
  47385. {
  47386. return std::tie( sType, pNext, reportAddressBinding );
  47387. }
  47388. #endif
  47389. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47390. auto operator<=>( PhysicalDeviceAddressBindingReportFeaturesEXT const & ) const = default;
  47391. #else
  47392. bool operator==( PhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47393. {
  47394. # if defined( VULKAN_HPP_USE_REFLECT )
  47395. return this->reflect() == rhs.reflect();
  47396. # else
  47397. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( reportAddressBinding == rhs.reportAddressBinding );
  47398. # endif
  47399. }
  47400. bool operator!=( PhysicalDeviceAddressBindingReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47401. {
  47402. return !operator==( rhs );
  47403. }
  47404. #endif
  47405. public:
  47406. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAddressBindingReportFeaturesEXT;
  47407. void * pNext = {};
  47408. VULKAN_HPP_NAMESPACE::Bool32 reportAddressBinding = {};
  47409. };
  47410. template <>
  47411. struct CppType<StructureType, StructureType::ePhysicalDeviceAddressBindingReportFeaturesEXT>
  47412. {
  47413. using Type = PhysicalDeviceAddressBindingReportFeaturesEXT;
  47414. };
  47415. struct PhysicalDeviceAmigoProfilingFeaturesSEC
  47416. {
  47417. using NativeType = VkPhysicalDeviceAmigoProfilingFeaturesSEC;
  47418. static const bool allowDuplicate = false;
  47419. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAmigoProfilingFeaturesSEC;
  47420. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47421. VULKAN_HPP_CONSTEXPR PhysicalDeviceAmigoProfilingFeaturesSEC( VULKAN_HPP_NAMESPACE::Bool32 amigoProfiling_ = {},
  47422. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47423. : pNext( pNext_ )
  47424. , amigoProfiling( amigoProfiling_ )
  47425. {
  47426. }
  47427. VULKAN_HPP_CONSTEXPR PhysicalDeviceAmigoProfilingFeaturesSEC( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47428. PhysicalDeviceAmigoProfilingFeaturesSEC( VkPhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT
  47429. : PhysicalDeviceAmigoProfilingFeaturesSEC( *reinterpret_cast<PhysicalDeviceAmigoProfilingFeaturesSEC const *>( &rhs ) )
  47430. {
  47431. }
  47432. PhysicalDeviceAmigoProfilingFeaturesSEC & operator=( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47433. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47434. PhysicalDeviceAmigoProfilingFeaturesSEC & operator=( VkPhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) VULKAN_HPP_NOEXCEPT
  47435. {
  47436. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC const *>( &rhs );
  47437. return *this;
  47438. }
  47439. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47440. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAmigoProfilingFeaturesSEC & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47441. {
  47442. pNext = pNext_;
  47443. return *this;
  47444. }
  47445. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAmigoProfilingFeaturesSEC & setAmigoProfiling( VULKAN_HPP_NAMESPACE::Bool32 amigoProfiling_ ) VULKAN_HPP_NOEXCEPT
  47446. {
  47447. amigoProfiling = amigoProfiling_;
  47448. return *this;
  47449. }
  47450. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47451. operator VkPhysicalDeviceAmigoProfilingFeaturesSEC const &() const VULKAN_HPP_NOEXCEPT
  47452. {
  47453. return *reinterpret_cast<const VkPhysicalDeviceAmigoProfilingFeaturesSEC *>( this );
  47454. }
  47455. operator VkPhysicalDeviceAmigoProfilingFeaturesSEC &() VULKAN_HPP_NOEXCEPT
  47456. {
  47457. return *reinterpret_cast<VkPhysicalDeviceAmigoProfilingFeaturesSEC *>( this );
  47458. }
  47459. #if defined( VULKAN_HPP_USE_REFLECT )
  47460. # if 14 <= VULKAN_HPP_CPP_VERSION
  47461. auto
  47462. # else
  47463. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  47464. # endif
  47465. reflect() const VULKAN_HPP_NOEXCEPT
  47466. {
  47467. return std::tie( sType, pNext, amigoProfiling );
  47468. }
  47469. #endif
  47470. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47471. auto operator<=>( PhysicalDeviceAmigoProfilingFeaturesSEC const & ) const = default;
  47472. #else
  47473. bool operator==( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
  47474. {
  47475. # if defined( VULKAN_HPP_USE_REFLECT )
  47476. return this->reflect() == rhs.reflect();
  47477. # else
  47478. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( amigoProfiling == rhs.amigoProfiling );
  47479. # endif
  47480. }
  47481. bool operator!=( PhysicalDeviceAmigoProfilingFeaturesSEC const & rhs ) const VULKAN_HPP_NOEXCEPT
  47482. {
  47483. return !operator==( rhs );
  47484. }
  47485. #endif
  47486. public:
  47487. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAmigoProfilingFeaturesSEC;
  47488. void * pNext = {};
  47489. VULKAN_HPP_NAMESPACE::Bool32 amigoProfiling = {};
  47490. };
  47491. template <>
  47492. struct CppType<StructureType, StructureType::ePhysicalDeviceAmigoProfilingFeaturesSEC>
  47493. {
  47494. using Type = PhysicalDeviceAmigoProfilingFeaturesSEC;
  47495. };
  47496. struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
  47497. {
  47498. using NativeType = VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
  47499. static const bool allowDuplicate = false;
  47500. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
  47501. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47502. VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState_ = {},
  47503. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47504. : pNext( pNext_ )
  47505. , attachmentFeedbackLoopDynamicState( attachmentFeedbackLoopDynamicState_ )
  47506. {
  47507. }
  47508. VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs )
  47509. VULKAN_HPP_NOEXCEPT = default;
  47510. PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT( VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47511. : PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(
  47512. *reinterpret_cast<PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const *>( &rhs ) )
  47513. {
  47514. }
  47515. PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &
  47516. operator=( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47517. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47518. PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &
  47519. operator=( VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47520. {
  47521. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const *>( &rhs );
  47522. return *this;
  47523. }
  47524. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47525. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47526. {
  47527. pNext = pNext_;
  47528. return *this;
  47529. }
  47530. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &
  47531. setAttachmentFeedbackLoopDynamicState( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState_ ) VULKAN_HPP_NOEXCEPT
  47532. {
  47533. attachmentFeedbackLoopDynamicState = attachmentFeedbackLoopDynamicState_;
  47534. return *this;
  47535. }
  47536. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47537. operator VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  47538. {
  47539. return *reinterpret_cast<const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *>( this );
  47540. }
  47541. operator VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  47542. {
  47543. return *reinterpret_cast<VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *>( this );
  47544. }
  47545. #if defined( VULKAN_HPP_USE_REFLECT )
  47546. # if 14 <= VULKAN_HPP_CPP_VERSION
  47547. auto
  47548. # else
  47549. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  47550. # endif
  47551. reflect() const VULKAN_HPP_NOEXCEPT
  47552. {
  47553. return std::tie( sType, pNext, attachmentFeedbackLoopDynamicState );
  47554. }
  47555. #endif
  47556. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47557. auto operator<=>( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & ) const = default;
  47558. #else
  47559. bool operator==( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47560. {
  47561. # if defined( VULKAN_HPP_USE_REFLECT )
  47562. return this->reflect() == rhs.reflect();
  47563. # else
  47564. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentFeedbackLoopDynamicState == rhs.attachmentFeedbackLoopDynamicState );
  47565. # endif
  47566. }
  47567. bool operator!=( PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47568. {
  47569. return !operator==( rhs );
  47570. }
  47571. #endif
  47572. public:
  47573. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
  47574. void * pNext = {};
  47575. VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopDynamicState = {};
  47576. };
  47577. template <>
  47578. struct CppType<StructureType, StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>
  47579. {
  47580. using Type = PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
  47581. };
  47582. struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
  47583. {
  47584. using NativeType = VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
  47585. static const bool allowDuplicate = false;
  47586. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
  47587. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47588. VULKAN_HPP_CONSTEXPR PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout_ = {},
  47589. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47590. : pNext( pNext_ )
  47591. , attachmentFeedbackLoopLayout( attachmentFeedbackLoopLayout_ )
  47592. {
  47593. }
  47594. VULKAN_HPP_CONSTEXPR
  47595. PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47596. PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47597. : PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT( *reinterpret_cast<PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const *>( &rhs ) )
  47598. {
  47599. }
  47600. PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT &
  47601. operator=( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47602. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47603. PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT & operator=( VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47604. {
  47605. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const *>( &rhs );
  47606. return *this;
  47607. }
  47608. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47609. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47610. {
  47611. pNext = pNext_;
  47612. return *this;
  47613. }
  47614. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT &
  47615. setAttachmentFeedbackLoopLayout( VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout_ ) VULKAN_HPP_NOEXCEPT
  47616. {
  47617. attachmentFeedbackLoopLayout = attachmentFeedbackLoopLayout_;
  47618. return *this;
  47619. }
  47620. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47621. operator VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  47622. {
  47623. return *reinterpret_cast<const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT *>( this );
  47624. }
  47625. operator VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  47626. {
  47627. return *reinterpret_cast<VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT *>( this );
  47628. }
  47629. #if defined( VULKAN_HPP_USE_REFLECT )
  47630. # if 14 <= VULKAN_HPP_CPP_VERSION
  47631. auto
  47632. # else
  47633. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  47634. # endif
  47635. reflect() const VULKAN_HPP_NOEXCEPT
  47636. {
  47637. return std::tie( sType, pNext, attachmentFeedbackLoopLayout );
  47638. }
  47639. #endif
  47640. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47641. auto operator<=>( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & ) const = default;
  47642. #else
  47643. bool operator==( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47644. {
  47645. # if defined( VULKAN_HPP_USE_REFLECT )
  47646. return this->reflect() == rhs.reflect();
  47647. # else
  47648. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentFeedbackLoopLayout == rhs.attachmentFeedbackLoopLayout );
  47649. # endif
  47650. }
  47651. bool operator!=( PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47652. {
  47653. return !operator==( rhs );
  47654. }
  47655. #endif
  47656. public:
  47657. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
  47658. void * pNext = {};
  47659. VULKAN_HPP_NAMESPACE::Bool32 attachmentFeedbackLoopLayout = {};
  47660. };
  47661. template <>
  47662. struct CppType<StructureType, StructureType::ePhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT>
  47663. {
  47664. using Type = PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
  47665. };
  47666. struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT
  47667. {
  47668. using NativeType = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  47669. static const bool allowDuplicate = false;
  47670. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  47671. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47672. VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {},
  47673. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47674. : pNext( pNext_ )
  47675. , advancedBlendCoherentOperations( advancedBlendCoherentOperations_ )
  47676. {
  47677. }
  47678. VULKAN_HPP_CONSTEXPR
  47679. PhysicalDeviceBlendOperationAdvancedFeaturesEXT( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47680. PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47681. : PhysicalDeviceBlendOperationAdvancedFeaturesEXT( *reinterpret_cast<PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>( &rhs ) )
  47682. {
  47683. }
  47684. PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47685. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47686. PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47687. {
  47688. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT const *>( &rhs );
  47689. return *this;
  47690. }
  47691. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47692. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47693. {
  47694. pNext = pNext_;
  47695. return *this;
  47696. }
  47697. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedFeaturesEXT &
  47698. setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT
  47699. {
  47700. advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
  47701. return *this;
  47702. }
  47703. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47704. operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  47705. {
  47706. return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT *>( this );
  47707. }
  47708. operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  47709. {
  47710. return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT *>( this );
  47711. }
  47712. #if defined( VULKAN_HPP_USE_REFLECT )
  47713. # if 14 <= VULKAN_HPP_CPP_VERSION
  47714. auto
  47715. # else
  47716. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  47717. # endif
  47718. reflect() const VULKAN_HPP_NOEXCEPT
  47719. {
  47720. return std::tie( sType, pNext, advancedBlendCoherentOperations );
  47721. }
  47722. #endif
  47723. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47724. auto operator<=>( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & ) const = default;
  47725. #else
  47726. bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47727. {
  47728. # if defined( VULKAN_HPP_USE_REFLECT )
  47729. return this->reflect() == rhs.reflect();
  47730. # else
  47731. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations );
  47732. # endif
  47733. }
  47734. bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47735. {
  47736. return !operator==( rhs );
  47737. }
  47738. #endif
  47739. public:
  47740. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  47741. void * pNext = {};
  47742. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {};
  47743. };
  47744. template <>
  47745. struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT>
  47746. {
  47747. using Type = PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  47748. };
  47749. struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT
  47750. {
  47751. using NativeType = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  47752. static const bool allowDuplicate = false;
  47753. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  47754. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47755. VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( uint32_t advancedBlendMaxColorAttachments_ = {},
  47756. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend_ = {},
  47757. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor_ = {},
  47758. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor_ = {},
  47759. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap_ = {},
  47760. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations_ = {},
  47761. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47762. : pNext( pNext_ )
  47763. , advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ )
  47764. , advancedBlendIndependentBlend( advancedBlendIndependentBlend_ )
  47765. , advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ )
  47766. , advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ )
  47767. , advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ )
  47768. , advancedBlendAllOperations( advancedBlendAllOperations_ )
  47769. {
  47770. }
  47771. VULKAN_HPP_CONSTEXPR
  47772. PhysicalDeviceBlendOperationAdvancedPropertiesEXT( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47773. PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47774. : PhysicalDeviceBlendOperationAdvancedPropertiesEXT( *reinterpret_cast<PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>( &rhs ) )
  47775. {
  47776. }
  47777. PhysicalDeviceBlendOperationAdvancedPropertiesEXT &
  47778. operator=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47779. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47780. PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47781. {
  47782. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT const *>( &rhs );
  47783. return *this;
  47784. }
  47785. operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  47786. {
  47787. return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT *>( this );
  47788. }
  47789. operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  47790. {
  47791. return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT *>( this );
  47792. }
  47793. #if defined( VULKAN_HPP_USE_REFLECT )
  47794. # if 14 <= VULKAN_HPP_CPP_VERSION
  47795. auto
  47796. # else
  47797. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  47798. void * const &,
  47799. uint32_t const &,
  47800. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47801. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47802. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47803. VULKAN_HPP_NAMESPACE::Bool32 const &,
  47804. VULKAN_HPP_NAMESPACE::Bool32 const &>
  47805. # endif
  47806. reflect() const VULKAN_HPP_NOEXCEPT
  47807. {
  47808. return std::tie( sType,
  47809. pNext,
  47810. advancedBlendMaxColorAttachments,
  47811. advancedBlendIndependentBlend,
  47812. advancedBlendNonPremultipliedSrcColor,
  47813. advancedBlendNonPremultipliedDstColor,
  47814. advancedBlendCorrelatedOverlap,
  47815. advancedBlendAllOperations );
  47816. }
  47817. #endif
  47818. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47819. auto operator<=>( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & ) const = default;
  47820. #else
  47821. bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47822. {
  47823. # if defined( VULKAN_HPP_USE_REFLECT )
  47824. return this->reflect() == rhs.reflect();
  47825. # else
  47826. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments ) &&
  47827. ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend ) &&
  47828. ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor ) &&
  47829. ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor ) &&
  47830. ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap ) && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations );
  47831. # endif
  47832. }
  47833. bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47834. {
  47835. return !operator==( rhs );
  47836. }
  47837. #endif
  47838. public:
  47839. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  47840. void * pNext = {};
  47841. uint32_t advancedBlendMaxColorAttachments = {};
  47842. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {};
  47843. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {};
  47844. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {};
  47845. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {};
  47846. VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {};
  47847. };
  47848. template <>
  47849. struct CppType<StructureType, StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT>
  47850. {
  47851. using Type = PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  47852. };
  47853. struct PhysicalDeviceBorderColorSwizzleFeaturesEXT
  47854. {
  47855. using NativeType = VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
  47856. static const bool allowDuplicate = false;
  47857. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT;
  47858. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47859. VULKAN_HPP_CONSTEXPR PhysicalDeviceBorderColorSwizzleFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle_ = {},
  47860. VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage_ = {},
  47861. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47862. : pNext( pNext_ )
  47863. , borderColorSwizzle( borderColorSwizzle_ )
  47864. , borderColorSwizzleFromImage( borderColorSwizzleFromImage_ )
  47865. {
  47866. }
  47867. VULKAN_HPP_CONSTEXPR PhysicalDeviceBorderColorSwizzleFeaturesEXT( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47868. PhysicalDeviceBorderColorSwizzleFeaturesEXT( VkPhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47869. : PhysicalDeviceBorderColorSwizzleFeaturesEXT( *reinterpret_cast<PhysicalDeviceBorderColorSwizzleFeaturesEXT const *>( &rhs ) )
  47870. {
  47871. }
  47872. PhysicalDeviceBorderColorSwizzleFeaturesEXT & operator=( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47873. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47874. PhysicalDeviceBorderColorSwizzleFeaturesEXT & operator=( VkPhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  47875. {
  47876. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT const *>( &rhs );
  47877. return *this;
  47878. }
  47879. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47880. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBorderColorSwizzleFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47881. {
  47882. pNext = pNext_;
  47883. return *this;
  47884. }
  47885. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBorderColorSwizzleFeaturesEXT &
  47886. setBorderColorSwizzle( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle_ ) VULKAN_HPP_NOEXCEPT
  47887. {
  47888. borderColorSwizzle = borderColorSwizzle_;
  47889. return *this;
  47890. }
  47891. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBorderColorSwizzleFeaturesEXT &
  47892. setBorderColorSwizzleFromImage( VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage_ ) VULKAN_HPP_NOEXCEPT
  47893. {
  47894. borderColorSwizzleFromImage = borderColorSwizzleFromImage_;
  47895. return *this;
  47896. }
  47897. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47898. operator VkPhysicalDeviceBorderColorSwizzleFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  47899. {
  47900. return *reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT *>( this );
  47901. }
  47902. operator VkPhysicalDeviceBorderColorSwizzleFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  47903. {
  47904. return *reinterpret_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT *>( this );
  47905. }
  47906. #if defined( VULKAN_HPP_USE_REFLECT )
  47907. # if 14 <= VULKAN_HPP_CPP_VERSION
  47908. auto
  47909. # else
  47910. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  47911. # endif
  47912. reflect() const VULKAN_HPP_NOEXCEPT
  47913. {
  47914. return std::tie( sType, pNext, borderColorSwizzle, borderColorSwizzleFromImage );
  47915. }
  47916. #endif
  47917. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  47918. auto operator<=>( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & ) const = default;
  47919. #else
  47920. bool operator==( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47921. {
  47922. # if defined( VULKAN_HPP_USE_REFLECT )
  47923. return this->reflect() == rhs.reflect();
  47924. # else
  47925. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( borderColorSwizzle == rhs.borderColorSwizzle ) &&
  47926. ( borderColorSwizzleFromImage == rhs.borderColorSwizzleFromImage );
  47927. # endif
  47928. }
  47929. bool operator!=( PhysicalDeviceBorderColorSwizzleFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  47930. {
  47931. return !operator==( rhs );
  47932. }
  47933. #endif
  47934. public:
  47935. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT;
  47936. void * pNext = {};
  47937. VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzle = {};
  47938. VULKAN_HPP_NAMESPACE::Bool32 borderColorSwizzleFromImage = {};
  47939. };
  47940. template <>
  47941. struct CppType<StructureType, StructureType::ePhysicalDeviceBorderColorSwizzleFeaturesEXT>
  47942. {
  47943. using Type = PhysicalDeviceBorderColorSwizzleFeaturesEXT;
  47944. };
  47945. struct PhysicalDeviceBufferDeviceAddressFeatures
  47946. {
  47947. using NativeType = VkPhysicalDeviceBufferDeviceAddressFeatures;
  47948. static const bool allowDuplicate = false;
  47949. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
  47950. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  47951. VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {},
  47952. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {},
  47953. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {},
  47954. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  47955. : pNext( pNext_ )
  47956. , bufferDeviceAddress( bufferDeviceAddress_ )
  47957. , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
  47958. , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
  47959. {
  47960. }
  47961. VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47962. PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  47963. : PhysicalDeviceBufferDeviceAddressFeatures( *reinterpret_cast<PhysicalDeviceBufferDeviceAddressFeatures const *>( &rhs ) )
  47964. {
  47965. }
  47966. PhysicalDeviceBufferDeviceAddressFeatures & operator=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  47967. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  47968. PhysicalDeviceBufferDeviceAddressFeatures & operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  47969. {
  47970. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures const *>( &rhs );
  47971. return *this;
  47972. }
  47973. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  47974. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  47975. {
  47976. pNext = pNext_;
  47977. return *this;
  47978. }
  47979. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures &
  47980. setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
  47981. {
  47982. bufferDeviceAddress = bufferDeviceAddress_;
  47983. return *this;
  47984. }
  47985. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures &
  47986. setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  47987. {
  47988. bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
  47989. return *this;
  47990. }
  47991. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures &
  47992. setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
  47993. {
  47994. bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
  47995. return *this;
  47996. }
  47997. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  47998. operator VkPhysicalDeviceBufferDeviceAddressFeatures const &() const VULKAN_HPP_NOEXCEPT
  47999. {
  48000. return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures *>( this );
  48001. }
  48002. operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT
  48003. {
  48004. return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures *>( this );
  48005. }
  48006. #if defined( VULKAN_HPP_USE_REFLECT )
  48007. # if 14 <= VULKAN_HPP_CPP_VERSION
  48008. auto
  48009. # else
  48010. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  48011. void * const &,
  48012. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48013. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48014. VULKAN_HPP_NAMESPACE::Bool32 const &>
  48015. # endif
  48016. reflect() const VULKAN_HPP_NOEXCEPT
  48017. {
  48018. return std::tie( sType, pNext, bufferDeviceAddress, bufferDeviceAddressCaptureReplay, bufferDeviceAddressMultiDevice );
  48019. }
  48020. #endif
  48021. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48022. auto operator<=>( PhysicalDeviceBufferDeviceAddressFeatures const & ) const = default;
  48023. #else
  48024. bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  48025. {
  48026. # if defined( VULKAN_HPP_USE_REFLECT )
  48027. return this->reflect() == rhs.reflect();
  48028. # else
  48029. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) &&
  48030. ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) &&
  48031. ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
  48032. # endif
  48033. }
  48034. bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  48035. {
  48036. return !operator==( rhs );
  48037. }
  48038. #endif
  48039. public:
  48040. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures;
  48041. void * pNext = {};
  48042. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
  48043. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
  48044. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
  48045. };
  48046. template <>
  48047. struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeatures>
  48048. {
  48049. using Type = PhysicalDeviceBufferDeviceAddressFeatures;
  48050. };
  48051. using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
  48052. struct PhysicalDeviceBufferDeviceAddressFeaturesEXT
  48053. {
  48054. using NativeType = VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
  48055. static const bool allowDuplicate = false;
  48056. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
  48057. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48058. VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {},
  48059. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {},
  48060. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {},
  48061. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48062. : pNext( pNext_ )
  48063. , bufferDeviceAddress( bufferDeviceAddress_ )
  48064. , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
  48065. , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
  48066. {
  48067. }
  48068. VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48069. PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48070. : PhysicalDeviceBufferDeviceAddressFeaturesEXT( *reinterpret_cast<PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>( &rhs ) )
  48071. {
  48072. }
  48073. PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48074. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48075. PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48076. {
  48077. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT const *>( &rhs );
  48078. return *this;
  48079. }
  48080. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48081. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48082. {
  48083. pNext = pNext_;
  48084. return *this;
  48085. }
  48086. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT &
  48087. setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
  48088. {
  48089. bufferDeviceAddress = bufferDeviceAddress_;
  48090. return *this;
  48091. }
  48092. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT &
  48093. setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  48094. {
  48095. bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
  48096. return *this;
  48097. }
  48098. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT &
  48099. setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
  48100. {
  48101. bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
  48102. return *this;
  48103. }
  48104. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48105. operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  48106. {
  48107. return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT *>( this );
  48108. }
  48109. operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  48110. {
  48111. return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT *>( this );
  48112. }
  48113. #if defined( VULKAN_HPP_USE_REFLECT )
  48114. # if 14 <= VULKAN_HPP_CPP_VERSION
  48115. auto
  48116. # else
  48117. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  48118. void * const &,
  48119. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48120. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48121. VULKAN_HPP_NAMESPACE::Bool32 const &>
  48122. # endif
  48123. reflect() const VULKAN_HPP_NOEXCEPT
  48124. {
  48125. return std::tie( sType, pNext, bufferDeviceAddress, bufferDeviceAddressCaptureReplay, bufferDeviceAddressMultiDevice );
  48126. }
  48127. #endif
  48128. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48129. auto operator<=>( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & ) const = default;
  48130. #else
  48131. bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48132. {
  48133. # if defined( VULKAN_HPP_USE_REFLECT )
  48134. return this->reflect() == rhs.reflect();
  48135. # else
  48136. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) &&
  48137. ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) &&
  48138. ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
  48139. # endif
  48140. }
  48141. bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48142. {
  48143. return !operator==( rhs );
  48144. }
  48145. #endif
  48146. public:
  48147. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
  48148. void * pNext = {};
  48149. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
  48150. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
  48151. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
  48152. };
  48153. template <>
  48154. struct CppType<StructureType, StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT>
  48155. {
  48156. using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
  48157. };
  48158. using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
  48159. struct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
  48160. {
  48161. using NativeType = VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
  48162. static const bool allowDuplicate = false;
  48163. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
  48164. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48165. VULKAN_HPP_CONSTEXPR PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 clustercullingShader_ = {},
  48166. VULKAN_HPP_NAMESPACE::Bool32 multiviewClusterCullingShader_ = {},
  48167. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48168. : pNext( pNext_ )
  48169. , clustercullingShader( clustercullingShader_ )
  48170. , multiviewClusterCullingShader( multiviewClusterCullingShader_ )
  48171. {
  48172. }
  48173. VULKAN_HPP_CONSTEXPR
  48174. PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48175. PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  48176. : PhysicalDeviceClusterCullingShaderFeaturesHUAWEI( *reinterpret_cast<PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const *>( &rhs ) )
  48177. {
  48178. }
  48179. PhysicalDeviceClusterCullingShaderFeaturesHUAWEI & operator=( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48180. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48181. PhysicalDeviceClusterCullingShaderFeaturesHUAWEI & operator=( VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  48182. {
  48183. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const *>( &rhs );
  48184. return *this;
  48185. }
  48186. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48187. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48188. {
  48189. pNext = pNext_;
  48190. return *this;
  48191. }
  48192. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI &
  48193. setClustercullingShader( VULKAN_HPP_NAMESPACE::Bool32 clustercullingShader_ ) VULKAN_HPP_NOEXCEPT
  48194. {
  48195. clustercullingShader = clustercullingShader_;
  48196. return *this;
  48197. }
  48198. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI &
  48199. setMultiviewClusterCullingShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewClusterCullingShader_ ) VULKAN_HPP_NOEXCEPT
  48200. {
  48201. multiviewClusterCullingShader = multiviewClusterCullingShader_;
  48202. return *this;
  48203. }
  48204. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48205. operator VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
  48206. {
  48207. return *reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI *>( this );
  48208. }
  48209. operator VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
  48210. {
  48211. return *reinterpret_cast<VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI *>( this );
  48212. }
  48213. #if defined( VULKAN_HPP_USE_REFLECT )
  48214. # if 14 <= VULKAN_HPP_CPP_VERSION
  48215. auto
  48216. # else
  48217. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  48218. # endif
  48219. reflect() const VULKAN_HPP_NOEXCEPT
  48220. {
  48221. return std::tie( sType, pNext, clustercullingShader, multiviewClusterCullingShader );
  48222. }
  48223. #endif
  48224. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48225. auto operator<=>( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & ) const = default;
  48226. #else
  48227. bool operator==( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  48228. {
  48229. # if defined( VULKAN_HPP_USE_REFLECT )
  48230. return this->reflect() == rhs.reflect();
  48231. # else
  48232. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( clustercullingShader == rhs.clustercullingShader ) &&
  48233. ( multiviewClusterCullingShader == rhs.multiviewClusterCullingShader );
  48234. # endif
  48235. }
  48236. bool operator!=( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  48237. {
  48238. return !operator==( rhs );
  48239. }
  48240. #endif
  48241. public:
  48242. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
  48243. void * pNext = {};
  48244. VULKAN_HPP_NAMESPACE::Bool32 clustercullingShader = {};
  48245. VULKAN_HPP_NAMESPACE::Bool32 multiviewClusterCullingShader = {};
  48246. };
  48247. template <>
  48248. struct CppType<StructureType, StructureType::ePhysicalDeviceClusterCullingShaderFeaturesHUAWEI>
  48249. {
  48250. using Type = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
  48251. };
  48252. struct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
  48253. {
  48254. using NativeType = VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
  48255. static const bool allowDuplicate = false;
  48256. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
  48257. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48258. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceClusterCullingShaderPropertiesHUAWEI( std::array<uint32_t, 3> const & maxWorkGroupCount_ = {},
  48259. std::array<uint32_t, 3> const & maxWorkGroupSize_ = {},
  48260. uint32_t maxOutputClusterCount_ = {},
  48261. VULKAN_HPP_NAMESPACE::DeviceSize indirectBufferOffsetAlignment_ = {},
  48262. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48263. : pNext( pNext_ )
  48264. , maxWorkGroupCount( maxWorkGroupCount_ )
  48265. , maxWorkGroupSize( maxWorkGroupSize_ )
  48266. , maxOutputClusterCount( maxOutputClusterCount_ )
  48267. , indirectBufferOffsetAlignment( indirectBufferOffsetAlignment_ )
  48268. {
  48269. }
  48270. VULKAN_HPP_CONSTEXPR_14
  48271. PhysicalDeviceClusterCullingShaderPropertiesHUAWEI( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48272. PhysicalDeviceClusterCullingShaderPropertiesHUAWEI( VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  48273. : PhysicalDeviceClusterCullingShaderPropertiesHUAWEI( *reinterpret_cast<PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const *>( &rhs ) )
  48274. {
  48275. }
  48276. PhysicalDeviceClusterCullingShaderPropertiesHUAWEI &
  48277. operator=( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48278. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48279. PhysicalDeviceClusterCullingShaderPropertiesHUAWEI & operator=( VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  48280. {
  48281. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const *>( &rhs );
  48282. return *this;
  48283. }
  48284. operator VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
  48285. {
  48286. return *reinterpret_cast<const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI *>( this );
  48287. }
  48288. operator VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI &() VULKAN_HPP_NOEXCEPT
  48289. {
  48290. return *reinterpret_cast<VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI *>( this );
  48291. }
  48292. #if defined( VULKAN_HPP_USE_REFLECT )
  48293. # if 14 <= VULKAN_HPP_CPP_VERSION
  48294. auto
  48295. # else
  48296. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  48297. void * const &,
  48298. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  48299. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  48300. uint32_t const &,
  48301. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  48302. # endif
  48303. reflect() const VULKAN_HPP_NOEXCEPT
  48304. {
  48305. return std::tie( sType, pNext, maxWorkGroupCount, maxWorkGroupSize, maxOutputClusterCount, indirectBufferOffsetAlignment );
  48306. }
  48307. #endif
  48308. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48309. auto operator<=>( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & ) const = default;
  48310. #else
  48311. bool operator==( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  48312. {
  48313. # if defined( VULKAN_HPP_USE_REFLECT )
  48314. return this->reflect() == rhs.reflect();
  48315. # else
  48316. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxWorkGroupCount == rhs.maxWorkGroupCount ) &&
  48317. ( maxWorkGroupSize == rhs.maxWorkGroupSize ) && ( maxOutputClusterCount == rhs.maxOutputClusterCount ) &&
  48318. ( indirectBufferOffsetAlignment == rhs.indirectBufferOffsetAlignment );
  48319. # endif
  48320. }
  48321. bool operator!=( PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  48322. {
  48323. return !operator==( rhs );
  48324. }
  48325. #endif
  48326. public:
  48327. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
  48328. void * pNext = {};
  48329. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxWorkGroupCount = {};
  48330. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxWorkGroupSize = {};
  48331. uint32_t maxOutputClusterCount = {};
  48332. VULKAN_HPP_NAMESPACE::DeviceSize indirectBufferOffsetAlignment = {};
  48333. };
  48334. template <>
  48335. struct CppType<StructureType, StructureType::ePhysicalDeviceClusterCullingShaderPropertiesHUAWEI>
  48336. {
  48337. using Type = PhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
  48338. };
  48339. struct PhysicalDeviceCoherentMemoryFeaturesAMD
  48340. {
  48341. using NativeType = VkPhysicalDeviceCoherentMemoryFeaturesAMD;
  48342. static const bool allowDuplicate = false;
  48343. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
  48344. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48345. VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {},
  48346. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48347. : pNext( pNext_ )
  48348. , deviceCoherentMemory( deviceCoherentMemory_ )
  48349. {
  48350. }
  48351. VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48352. PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  48353. : PhysicalDeviceCoherentMemoryFeaturesAMD( *reinterpret_cast<PhysicalDeviceCoherentMemoryFeaturesAMD const *>( &rhs ) )
  48354. {
  48355. }
  48356. PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48357. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48358. PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  48359. {
  48360. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD const *>( &rhs );
  48361. return *this;
  48362. }
  48363. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48364. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48365. {
  48366. pNext = pNext_;
  48367. return *this;
  48368. }
  48369. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoherentMemoryFeaturesAMD &
  48370. setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT
  48371. {
  48372. deviceCoherentMemory = deviceCoherentMemory_;
  48373. return *this;
  48374. }
  48375. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48376. operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const &() const VULKAN_HPP_NOEXCEPT
  48377. {
  48378. return *reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD *>( this );
  48379. }
  48380. operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT
  48381. {
  48382. return *reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD *>( this );
  48383. }
  48384. #if defined( VULKAN_HPP_USE_REFLECT )
  48385. # if 14 <= VULKAN_HPP_CPP_VERSION
  48386. auto
  48387. # else
  48388. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  48389. # endif
  48390. reflect() const VULKAN_HPP_NOEXCEPT
  48391. {
  48392. return std::tie( sType, pNext, deviceCoherentMemory );
  48393. }
  48394. #endif
  48395. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48396. auto operator<=>( PhysicalDeviceCoherentMemoryFeaturesAMD const & ) const = default;
  48397. #else
  48398. bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  48399. {
  48400. # if defined( VULKAN_HPP_USE_REFLECT )
  48401. return this->reflect() == rhs.reflect();
  48402. # else
  48403. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceCoherentMemory == rhs.deviceCoherentMemory );
  48404. # endif
  48405. }
  48406. bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  48407. {
  48408. return !operator==( rhs );
  48409. }
  48410. #endif
  48411. public:
  48412. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD;
  48413. void * pNext = {};
  48414. VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {};
  48415. };
  48416. template <>
  48417. struct CppType<StructureType, StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD>
  48418. {
  48419. using Type = PhysicalDeviceCoherentMemoryFeaturesAMD;
  48420. };
  48421. struct PhysicalDeviceColorWriteEnableFeaturesEXT
  48422. {
  48423. using NativeType = VkPhysicalDeviceColorWriteEnableFeaturesEXT;
  48424. static const bool allowDuplicate = false;
  48425. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT;
  48426. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48427. VULKAN_HPP_CONSTEXPR PhysicalDeviceColorWriteEnableFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable_ = {},
  48428. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48429. : pNext( pNext_ )
  48430. , colorWriteEnable( colorWriteEnable_ )
  48431. {
  48432. }
  48433. VULKAN_HPP_CONSTEXPR PhysicalDeviceColorWriteEnableFeaturesEXT( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48434. PhysicalDeviceColorWriteEnableFeaturesEXT( VkPhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48435. : PhysicalDeviceColorWriteEnableFeaturesEXT( *reinterpret_cast<PhysicalDeviceColorWriteEnableFeaturesEXT const *>( &rhs ) )
  48436. {
  48437. }
  48438. PhysicalDeviceColorWriteEnableFeaturesEXT & operator=( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48439. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48440. PhysicalDeviceColorWriteEnableFeaturesEXT & operator=( VkPhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48441. {
  48442. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT const *>( &rhs );
  48443. return *this;
  48444. }
  48445. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48446. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceColorWriteEnableFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48447. {
  48448. pNext = pNext_;
  48449. return *this;
  48450. }
  48451. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceColorWriteEnableFeaturesEXT &
  48452. setColorWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable_ ) VULKAN_HPP_NOEXCEPT
  48453. {
  48454. colorWriteEnable = colorWriteEnable_;
  48455. return *this;
  48456. }
  48457. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48458. operator VkPhysicalDeviceColorWriteEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  48459. {
  48460. return *reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT *>( this );
  48461. }
  48462. operator VkPhysicalDeviceColorWriteEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  48463. {
  48464. return *reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT *>( this );
  48465. }
  48466. #if defined( VULKAN_HPP_USE_REFLECT )
  48467. # if 14 <= VULKAN_HPP_CPP_VERSION
  48468. auto
  48469. # else
  48470. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  48471. # endif
  48472. reflect() const VULKAN_HPP_NOEXCEPT
  48473. {
  48474. return std::tie( sType, pNext, colorWriteEnable );
  48475. }
  48476. #endif
  48477. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48478. auto operator<=>( PhysicalDeviceColorWriteEnableFeaturesEXT const & ) const = default;
  48479. #else
  48480. bool operator==( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48481. {
  48482. # if defined( VULKAN_HPP_USE_REFLECT )
  48483. return this->reflect() == rhs.reflect();
  48484. # else
  48485. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( colorWriteEnable == rhs.colorWriteEnable );
  48486. # endif
  48487. }
  48488. bool operator!=( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48489. {
  48490. return !operator==( rhs );
  48491. }
  48492. #endif
  48493. public:
  48494. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT;
  48495. void * pNext = {};
  48496. VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable = {};
  48497. };
  48498. template <>
  48499. struct CppType<StructureType, StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT>
  48500. {
  48501. using Type = PhysicalDeviceColorWriteEnableFeaturesEXT;
  48502. };
  48503. struct PhysicalDeviceComputeShaderDerivativesFeaturesNV
  48504. {
  48505. using NativeType = VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
  48506. static const bool allowDuplicate = false;
  48507. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
  48508. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48509. VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {},
  48510. VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {},
  48511. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48512. : pNext( pNext_ )
  48513. , computeDerivativeGroupQuads( computeDerivativeGroupQuads_ )
  48514. , computeDerivativeGroupLinear( computeDerivativeGroupLinear_ )
  48515. {
  48516. }
  48517. VULKAN_HPP_CONSTEXPR
  48518. PhysicalDeviceComputeShaderDerivativesFeaturesNV( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48519. PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  48520. : PhysicalDeviceComputeShaderDerivativesFeaturesNV( *reinterpret_cast<PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>( &rhs ) )
  48521. {
  48522. }
  48523. PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48524. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48525. PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  48526. {
  48527. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV const *>( &rhs );
  48528. return *this;
  48529. }
  48530. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48531. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48532. {
  48533. pNext = pNext_;
  48534. return *this;
  48535. }
  48536. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV &
  48537. setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT
  48538. {
  48539. computeDerivativeGroupQuads = computeDerivativeGroupQuads_;
  48540. return *this;
  48541. }
  48542. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV &
  48543. setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT
  48544. {
  48545. computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
  48546. return *this;
  48547. }
  48548. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48549. operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  48550. {
  48551. return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>( this );
  48552. }
  48553. operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT
  48554. {
  48555. return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>( this );
  48556. }
  48557. #if defined( VULKAN_HPP_USE_REFLECT )
  48558. # if 14 <= VULKAN_HPP_CPP_VERSION
  48559. auto
  48560. # else
  48561. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  48562. # endif
  48563. reflect() const VULKAN_HPP_NOEXCEPT
  48564. {
  48565. return std::tie( sType, pNext, computeDerivativeGroupQuads, computeDerivativeGroupLinear );
  48566. }
  48567. #endif
  48568. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48569. auto operator<=>( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & ) const = default;
  48570. #else
  48571. bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  48572. {
  48573. # if defined( VULKAN_HPP_USE_REFLECT )
  48574. return this->reflect() == rhs.reflect();
  48575. # else
  48576. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads ) &&
  48577. ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear );
  48578. # endif
  48579. }
  48580. bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  48581. {
  48582. return !operator==( rhs );
  48583. }
  48584. #endif
  48585. public:
  48586. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
  48587. void * pNext = {};
  48588. VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {};
  48589. VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {};
  48590. };
  48591. template <>
  48592. struct CppType<StructureType, StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV>
  48593. {
  48594. using Type = PhysicalDeviceComputeShaderDerivativesFeaturesNV;
  48595. };
  48596. struct PhysicalDeviceConditionalRenderingFeaturesEXT
  48597. {
  48598. using NativeType = VkPhysicalDeviceConditionalRenderingFeaturesEXT;
  48599. static const bool allowDuplicate = false;
  48600. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
  48601. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48602. VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {},
  48603. VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {},
  48604. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48605. : pNext( pNext_ )
  48606. , conditionalRendering( conditionalRendering_ )
  48607. , inheritedConditionalRendering( inheritedConditionalRendering_ )
  48608. {
  48609. }
  48610. VULKAN_HPP_CONSTEXPR
  48611. PhysicalDeviceConditionalRenderingFeaturesEXT( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48612. PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48613. : PhysicalDeviceConditionalRenderingFeaturesEXT( *reinterpret_cast<PhysicalDeviceConditionalRenderingFeaturesEXT const *>( &rhs ) )
  48614. {
  48615. }
  48616. PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48617. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48618. PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48619. {
  48620. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT const *>( &rhs );
  48621. return *this;
  48622. }
  48623. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48624. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48625. {
  48626. pNext = pNext_;
  48627. return *this;
  48628. }
  48629. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT &
  48630. setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT
  48631. {
  48632. conditionalRendering = conditionalRendering_;
  48633. return *this;
  48634. }
  48635. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT &
  48636. setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT
  48637. {
  48638. inheritedConditionalRendering = inheritedConditionalRendering_;
  48639. return *this;
  48640. }
  48641. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48642. operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  48643. {
  48644. return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT *>( this );
  48645. }
  48646. operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  48647. {
  48648. return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT *>( this );
  48649. }
  48650. #if defined( VULKAN_HPP_USE_REFLECT )
  48651. # if 14 <= VULKAN_HPP_CPP_VERSION
  48652. auto
  48653. # else
  48654. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  48655. # endif
  48656. reflect() const VULKAN_HPP_NOEXCEPT
  48657. {
  48658. return std::tie( sType, pNext, conditionalRendering, inheritedConditionalRendering );
  48659. }
  48660. #endif
  48661. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48662. auto operator<=>( PhysicalDeviceConditionalRenderingFeaturesEXT const & ) const = default;
  48663. #else
  48664. bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48665. {
  48666. # if defined( VULKAN_HPP_USE_REFLECT )
  48667. return this->reflect() == rhs.reflect();
  48668. # else
  48669. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( conditionalRendering == rhs.conditionalRendering ) &&
  48670. ( inheritedConditionalRendering == rhs.inheritedConditionalRendering );
  48671. # endif
  48672. }
  48673. bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48674. {
  48675. return !operator==( rhs );
  48676. }
  48677. #endif
  48678. public:
  48679. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
  48680. void * pNext = {};
  48681. VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {};
  48682. VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {};
  48683. };
  48684. template <>
  48685. struct CppType<StructureType, StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT>
  48686. {
  48687. using Type = PhysicalDeviceConditionalRenderingFeaturesEXT;
  48688. };
  48689. struct PhysicalDeviceConservativeRasterizationPropertiesEXT
  48690. {
  48691. using NativeType = VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
  48692. static const bool allowDuplicate = false;
  48693. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
  48694. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48695. VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( float primitiveOverestimationSize_ = {},
  48696. float maxExtraPrimitiveOverestimationSize_ = {},
  48697. float extraPrimitiveOverestimationSizeGranularity_ = {},
  48698. VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation_ = {},
  48699. VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization_ = {},
  48700. VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized_ = {},
  48701. VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized_ = {},
  48702. VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable_ = {},
  48703. VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage_ = {},
  48704. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48705. : pNext( pNext_ )
  48706. , primitiveOverestimationSize( primitiveOverestimationSize_ )
  48707. , maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ )
  48708. , extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ )
  48709. , primitiveUnderestimation( primitiveUnderestimation_ )
  48710. , conservativePointAndLineRasterization( conservativePointAndLineRasterization_ )
  48711. , degenerateTrianglesRasterized( degenerateTrianglesRasterized_ )
  48712. , degenerateLinesRasterized( degenerateLinesRasterized_ )
  48713. , fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ )
  48714. , conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ )
  48715. {
  48716. }
  48717. VULKAN_HPP_CONSTEXPR
  48718. PhysicalDeviceConservativeRasterizationPropertiesEXT( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48719. PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48720. : PhysicalDeviceConservativeRasterizationPropertiesEXT( *reinterpret_cast<PhysicalDeviceConservativeRasterizationPropertiesEXT const *>( &rhs ) )
  48721. {
  48722. }
  48723. PhysicalDeviceConservativeRasterizationPropertiesEXT &
  48724. operator=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48725. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48726. PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  48727. {
  48728. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT const *>( &rhs );
  48729. return *this;
  48730. }
  48731. operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  48732. {
  48733. return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT *>( this );
  48734. }
  48735. operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  48736. {
  48737. return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT *>( this );
  48738. }
  48739. #if defined( VULKAN_HPP_USE_REFLECT )
  48740. # if 14 <= VULKAN_HPP_CPP_VERSION
  48741. auto
  48742. # else
  48743. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  48744. void * const &,
  48745. float const &,
  48746. float const &,
  48747. float const &,
  48748. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48749. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48750. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48751. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48752. VULKAN_HPP_NAMESPACE::Bool32 const &,
  48753. VULKAN_HPP_NAMESPACE::Bool32 const &>
  48754. # endif
  48755. reflect() const VULKAN_HPP_NOEXCEPT
  48756. {
  48757. return std::tie( sType,
  48758. pNext,
  48759. primitiveOverestimationSize,
  48760. maxExtraPrimitiveOverestimationSize,
  48761. extraPrimitiveOverestimationSizeGranularity,
  48762. primitiveUnderestimation,
  48763. conservativePointAndLineRasterization,
  48764. degenerateTrianglesRasterized,
  48765. degenerateLinesRasterized,
  48766. fullyCoveredFragmentShaderInputVariable,
  48767. conservativeRasterizationPostDepthCoverage );
  48768. }
  48769. #endif
  48770. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48771. auto operator<=>( PhysicalDeviceConservativeRasterizationPropertiesEXT const & ) const = default;
  48772. #else
  48773. bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48774. {
  48775. # if defined( VULKAN_HPP_USE_REFLECT )
  48776. return this->reflect() == rhs.reflect();
  48777. # else
  48778. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize ) &&
  48779. ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize ) &&
  48780. ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity ) &&
  48781. ( primitiveUnderestimation == rhs.primitiveUnderestimation ) &&
  48782. ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization ) &&
  48783. ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized ) && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized ) &&
  48784. ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable ) &&
  48785. ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage );
  48786. # endif
  48787. }
  48788. bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  48789. {
  48790. return !operator==( rhs );
  48791. }
  48792. #endif
  48793. public:
  48794. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
  48795. void * pNext = {};
  48796. float primitiveOverestimationSize = {};
  48797. float maxExtraPrimitiveOverestimationSize = {};
  48798. float extraPrimitiveOverestimationSizeGranularity = {};
  48799. VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {};
  48800. VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {};
  48801. VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {};
  48802. VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {};
  48803. VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {};
  48804. VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {};
  48805. };
  48806. template <>
  48807. struct CppType<StructureType, StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT>
  48808. {
  48809. using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT;
  48810. };
  48811. struct PhysicalDeviceCooperativeMatrixFeaturesKHR
  48812. {
  48813. using NativeType = VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
  48814. static const bool allowDuplicate = false;
  48815. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR;
  48816. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48817. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {},
  48818. VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {},
  48819. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48820. : pNext( pNext_ )
  48821. , cooperativeMatrix( cooperativeMatrix_ )
  48822. , cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
  48823. {
  48824. }
  48825. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesKHR( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48826. PhysicalDeviceCooperativeMatrixFeaturesKHR( VkPhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  48827. : PhysicalDeviceCooperativeMatrixFeaturesKHR( *reinterpret_cast<PhysicalDeviceCooperativeMatrixFeaturesKHR const *>( &rhs ) )
  48828. {
  48829. }
  48830. PhysicalDeviceCooperativeMatrixFeaturesKHR & operator=( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48831. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48832. PhysicalDeviceCooperativeMatrixFeaturesKHR & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  48833. {
  48834. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR const *>( &rhs );
  48835. return *this;
  48836. }
  48837. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48838. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48839. {
  48840. pNext = pNext_;
  48841. return *this;
  48842. }
  48843. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesKHR &
  48844. setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
  48845. {
  48846. cooperativeMatrix = cooperativeMatrix_;
  48847. return *this;
  48848. }
  48849. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesKHR &
  48850. setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
  48851. {
  48852. cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
  48853. return *this;
  48854. }
  48855. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48856. operator VkPhysicalDeviceCooperativeMatrixFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  48857. {
  48858. return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesKHR *>( this );
  48859. }
  48860. operator VkPhysicalDeviceCooperativeMatrixFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  48861. {
  48862. return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesKHR *>( this );
  48863. }
  48864. #if defined( VULKAN_HPP_USE_REFLECT )
  48865. # if 14 <= VULKAN_HPP_CPP_VERSION
  48866. auto
  48867. # else
  48868. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  48869. # endif
  48870. reflect() const VULKAN_HPP_NOEXCEPT
  48871. {
  48872. return std::tie( sType, pNext, cooperativeMatrix, cooperativeMatrixRobustBufferAccess );
  48873. }
  48874. #endif
  48875. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48876. auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesKHR const & ) const = default;
  48877. #else
  48878. bool operator==( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  48879. {
  48880. # if defined( VULKAN_HPP_USE_REFLECT )
  48881. return this->reflect() == rhs.reflect();
  48882. # else
  48883. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cooperativeMatrix == rhs.cooperativeMatrix ) &&
  48884. ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
  48885. # endif
  48886. }
  48887. bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  48888. {
  48889. return !operator==( rhs );
  48890. }
  48891. #endif
  48892. public:
  48893. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR;
  48894. void * pNext = {};
  48895. VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {};
  48896. VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {};
  48897. };
  48898. template <>
  48899. struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixFeaturesKHR>
  48900. {
  48901. using Type = PhysicalDeviceCooperativeMatrixFeaturesKHR;
  48902. };
  48903. struct PhysicalDeviceCooperativeMatrixFeaturesNV
  48904. {
  48905. using NativeType = VkPhysicalDeviceCooperativeMatrixFeaturesNV;
  48906. static const bool allowDuplicate = false;
  48907. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
  48908. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  48909. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {},
  48910. VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {},
  48911. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  48912. : pNext( pNext_ )
  48913. , cooperativeMatrix( cooperativeMatrix_ )
  48914. , cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
  48915. {
  48916. }
  48917. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48918. PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  48919. : PhysicalDeviceCooperativeMatrixFeaturesNV( *reinterpret_cast<PhysicalDeviceCooperativeMatrixFeaturesNV const *>( &rhs ) )
  48920. {
  48921. }
  48922. PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  48923. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  48924. PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  48925. {
  48926. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV const *>( &rhs );
  48927. return *this;
  48928. }
  48929. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  48930. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  48931. {
  48932. pNext = pNext_;
  48933. return *this;
  48934. }
  48935. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV &
  48936. setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT
  48937. {
  48938. cooperativeMatrix = cooperativeMatrix_;
  48939. return *this;
  48940. }
  48941. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV &
  48942. setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT
  48943. {
  48944. cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
  48945. return *this;
  48946. }
  48947. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  48948. operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  48949. {
  48950. return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV *>( this );
  48951. }
  48952. operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT
  48953. {
  48954. return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV *>( this );
  48955. }
  48956. #if defined( VULKAN_HPP_USE_REFLECT )
  48957. # if 14 <= VULKAN_HPP_CPP_VERSION
  48958. auto
  48959. # else
  48960. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  48961. # endif
  48962. reflect() const VULKAN_HPP_NOEXCEPT
  48963. {
  48964. return std::tie( sType, pNext, cooperativeMatrix, cooperativeMatrixRobustBufferAccess );
  48965. }
  48966. #endif
  48967. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  48968. auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesNV const & ) const = default;
  48969. #else
  48970. bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  48971. {
  48972. # if defined( VULKAN_HPP_USE_REFLECT )
  48973. return this->reflect() == rhs.reflect();
  48974. # else
  48975. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cooperativeMatrix == rhs.cooperativeMatrix ) &&
  48976. ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
  48977. # endif
  48978. }
  48979. bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  48980. {
  48981. return !operator==( rhs );
  48982. }
  48983. #endif
  48984. public:
  48985. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
  48986. void * pNext = {};
  48987. VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {};
  48988. VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {};
  48989. };
  48990. template <>
  48991. struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV>
  48992. {
  48993. using Type = PhysicalDeviceCooperativeMatrixFeaturesNV;
  48994. };
  48995. struct PhysicalDeviceCooperativeMatrixPropertiesKHR
  48996. {
  48997. using NativeType = VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
  48998. static const bool allowDuplicate = false;
  48999. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR;
  49000. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49001. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {},
  49002. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49003. : pNext( pNext_ )
  49004. , cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
  49005. {
  49006. }
  49007. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesKHR( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49008. PhysicalDeviceCooperativeMatrixPropertiesKHR( VkPhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  49009. : PhysicalDeviceCooperativeMatrixPropertiesKHR( *reinterpret_cast<PhysicalDeviceCooperativeMatrixPropertiesKHR const *>( &rhs ) )
  49010. {
  49011. }
  49012. PhysicalDeviceCooperativeMatrixPropertiesKHR & operator=( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49013. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49014. PhysicalDeviceCooperativeMatrixPropertiesKHR & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  49015. {
  49016. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR const *>( &rhs );
  49017. return *this;
  49018. }
  49019. operator VkPhysicalDeviceCooperativeMatrixPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  49020. {
  49021. return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesKHR *>( this );
  49022. }
  49023. operator VkPhysicalDeviceCooperativeMatrixPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  49024. {
  49025. return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesKHR *>( this );
  49026. }
  49027. #if defined( VULKAN_HPP_USE_REFLECT )
  49028. # if 14 <= VULKAN_HPP_CPP_VERSION
  49029. auto
  49030. # else
  49031. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &>
  49032. # endif
  49033. reflect() const VULKAN_HPP_NOEXCEPT
  49034. {
  49035. return std::tie( sType, pNext, cooperativeMatrixSupportedStages );
  49036. }
  49037. #endif
  49038. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49039. auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesKHR const & ) const = default;
  49040. #else
  49041. bool operator==( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  49042. {
  49043. # if defined( VULKAN_HPP_USE_REFLECT )
  49044. return this->reflect() == rhs.reflect();
  49045. # else
  49046. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
  49047. # endif
  49048. }
  49049. bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  49050. {
  49051. return !operator==( rhs );
  49052. }
  49053. #endif
  49054. public:
  49055. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR;
  49056. void * pNext = {};
  49057. VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {};
  49058. };
  49059. template <>
  49060. struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixPropertiesKHR>
  49061. {
  49062. using Type = PhysicalDeviceCooperativeMatrixPropertiesKHR;
  49063. };
  49064. struct PhysicalDeviceCooperativeMatrixPropertiesNV
  49065. {
  49066. using NativeType = VkPhysicalDeviceCooperativeMatrixPropertiesNV;
  49067. static const bool allowDuplicate = false;
  49068. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
  49069. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49070. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {},
  49071. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49072. : pNext( pNext_ )
  49073. , cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ )
  49074. {
  49075. }
  49076. VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49077. PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49078. : PhysicalDeviceCooperativeMatrixPropertiesNV( *reinterpret_cast<PhysicalDeviceCooperativeMatrixPropertiesNV const *>( &rhs ) )
  49079. {
  49080. }
  49081. PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49082. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49083. PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49084. {
  49085. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const *>( &rhs );
  49086. return *this;
  49087. }
  49088. operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  49089. {
  49090. return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV *>( this );
  49091. }
  49092. operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT
  49093. {
  49094. return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV *>( this );
  49095. }
  49096. #if defined( VULKAN_HPP_USE_REFLECT )
  49097. # if 14 <= VULKAN_HPP_CPP_VERSION
  49098. auto
  49099. # else
  49100. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &>
  49101. # endif
  49102. reflect() const VULKAN_HPP_NOEXCEPT
  49103. {
  49104. return std::tie( sType, pNext, cooperativeMatrixSupportedStages );
  49105. }
  49106. #endif
  49107. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49108. auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesNV const & ) const = default;
  49109. #else
  49110. bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49111. {
  49112. # if defined( VULKAN_HPP_USE_REFLECT )
  49113. return this->reflect() == rhs.reflect();
  49114. # else
  49115. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
  49116. # endif
  49117. }
  49118. bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49119. {
  49120. return !operator==( rhs );
  49121. }
  49122. #endif
  49123. public:
  49124. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
  49125. void * pNext = {};
  49126. VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {};
  49127. };
  49128. template <>
  49129. struct CppType<StructureType, StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV>
  49130. {
  49131. using Type = PhysicalDeviceCooperativeMatrixPropertiesNV;
  49132. };
  49133. struct PhysicalDeviceCopyMemoryIndirectFeaturesNV
  49134. {
  49135. using NativeType = VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
  49136. static const bool allowDuplicate = false;
  49137. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCopyMemoryIndirectFeaturesNV;
  49138. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49139. VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 indirectCopy_ = {},
  49140. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49141. : pNext( pNext_ )
  49142. , indirectCopy( indirectCopy_ )
  49143. {
  49144. }
  49145. VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectFeaturesNV( PhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49146. PhysicalDeviceCopyMemoryIndirectFeaturesNV( VkPhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49147. : PhysicalDeviceCopyMemoryIndirectFeaturesNV( *reinterpret_cast<PhysicalDeviceCopyMemoryIndirectFeaturesNV const *>( &rhs ) )
  49148. {
  49149. }
  49150. PhysicalDeviceCopyMemoryIndirectFeaturesNV & operator=( PhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49151. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49152. PhysicalDeviceCopyMemoryIndirectFeaturesNV & operator=( VkPhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49153. {
  49154. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV const *>( &rhs );
  49155. return *this;
  49156. }
  49157. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49158. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCopyMemoryIndirectFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49159. {
  49160. pNext = pNext_;
  49161. return *this;
  49162. }
  49163. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCopyMemoryIndirectFeaturesNV & setIndirectCopy( VULKAN_HPP_NAMESPACE::Bool32 indirectCopy_ ) VULKAN_HPP_NOEXCEPT
  49164. {
  49165. indirectCopy = indirectCopy_;
  49166. return *this;
  49167. }
  49168. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49169. operator VkPhysicalDeviceCopyMemoryIndirectFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  49170. {
  49171. return *reinterpret_cast<const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV *>( this );
  49172. }
  49173. operator VkPhysicalDeviceCopyMemoryIndirectFeaturesNV &() VULKAN_HPP_NOEXCEPT
  49174. {
  49175. return *reinterpret_cast<VkPhysicalDeviceCopyMemoryIndirectFeaturesNV *>( this );
  49176. }
  49177. #if defined( VULKAN_HPP_USE_REFLECT )
  49178. # if 14 <= VULKAN_HPP_CPP_VERSION
  49179. auto
  49180. # else
  49181. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49182. # endif
  49183. reflect() const VULKAN_HPP_NOEXCEPT
  49184. {
  49185. return std::tie( sType, pNext, indirectCopy );
  49186. }
  49187. #endif
  49188. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49189. auto operator<=>( PhysicalDeviceCopyMemoryIndirectFeaturesNV const & ) const = default;
  49190. #else
  49191. bool operator==( PhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49192. {
  49193. # if defined( VULKAN_HPP_USE_REFLECT )
  49194. return this->reflect() == rhs.reflect();
  49195. # else
  49196. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( indirectCopy == rhs.indirectCopy );
  49197. # endif
  49198. }
  49199. bool operator!=( PhysicalDeviceCopyMemoryIndirectFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49200. {
  49201. return !operator==( rhs );
  49202. }
  49203. #endif
  49204. public:
  49205. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCopyMemoryIndirectFeaturesNV;
  49206. void * pNext = {};
  49207. VULKAN_HPP_NAMESPACE::Bool32 indirectCopy = {};
  49208. };
  49209. template <>
  49210. struct CppType<StructureType, StructureType::ePhysicalDeviceCopyMemoryIndirectFeaturesNV>
  49211. {
  49212. using Type = PhysicalDeviceCopyMemoryIndirectFeaturesNV;
  49213. };
  49214. struct PhysicalDeviceCopyMemoryIndirectPropertiesNV
  49215. {
  49216. using NativeType = VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
  49217. static const bool allowDuplicate = false;
  49218. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesNV;
  49219. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49220. VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectPropertiesNV( VULKAN_HPP_NAMESPACE::QueueFlags supportedQueues_ = {},
  49221. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49222. : pNext( pNext_ )
  49223. , supportedQueues( supportedQueues_ )
  49224. {
  49225. }
  49226. VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectPropertiesNV( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49227. PhysicalDeviceCopyMemoryIndirectPropertiesNV( VkPhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49228. : PhysicalDeviceCopyMemoryIndirectPropertiesNV( *reinterpret_cast<PhysicalDeviceCopyMemoryIndirectPropertiesNV const *>( &rhs ) )
  49229. {
  49230. }
  49231. PhysicalDeviceCopyMemoryIndirectPropertiesNV & operator=( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49232. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49233. PhysicalDeviceCopyMemoryIndirectPropertiesNV & operator=( VkPhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49234. {
  49235. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV const *>( &rhs );
  49236. return *this;
  49237. }
  49238. operator VkPhysicalDeviceCopyMemoryIndirectPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  49239. {
  49240. return *reinterpret_cast<const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV *>( this );
  49241. }
  49242. operator VkPhysicalDeviceCopyMemoryIndirectPropertiesNV &() VULKAN_HPP_NOEXCEPT
  49243. {
  49244. return *reinterpret_cast<VkPhysicalDeviceCopyMemoryIndirectPropertiesNV *>( this );
  49245. }
  49246. #if defined( VULKAN_HPP_USE_REFLECT )
  49247. # if 14 <= VULKAN_HPP_CPP_VERSION
  49248. auto
  49249. # else
  49250. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::QueueFlags const &>
  49251. # endif
  49252. reflect() const VULKAN_HPP_NOEXCEPT
  49253. {
  49254. return std::tie( sType, pNext, supportedQueues );
  49255. }
  49256. #endif
  49257. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49258. auto operator<=>( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & ) const = default;
  49259. #else
  49260. bool operator==( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49261. {
  49262. # if defined( VULKAN_HPP_USE_REFLECT )
  49263. return this->reflect() == rhs.reflect();
  49264. # else
  49265. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supportedQueues == rhs.supportedQueues );
  49266. # endif
  49267. }
  49268. bool operator!=( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49269. {
  49270. return !operator==( rhs );
  49271. }
  49272. #endif
  49273. public:
  49274. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesNV;
  49275. void * pNext = {};
  49276. VULKAN_HPP_NAMESPACE::QueueFlags supportedQueues = {};
  49277. };
  49278. template <>
  49279. struct CppType<StructureType, StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesNV>
  49280. {
  49281. using Type = PhysicalDeviceCopyMemoryIndirectPropertiesNV;
  49282. };
  49283. struct PhysicalDeviceCornerSampledImageFeaturesNV
  49284. {
  49285. using NativeType = VkPhysicalDeviceCornerSampledImageFeaturesNV;
  49286. static const bool allowDuplicate = false;
  49287. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
  49288. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49289. VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {},
  49290. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49291. : pNext( pNext_ )
  49292. , cornerSampledImage( cornerSampledImage_ )
  49293. {
  49294. }
  49295. VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49296. PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49297. : PhysicalDeviceCornerSampledImageFeaturesNV( *reinterpret_cast<PhysicalDeviceCornerSampledImageFeaturesNV const *>( &rhs ) )
  49298. {
  49299. }
  49300. PhysicalDeviceCornerSampledImageFeaturesNV & operator=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49301. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49302. PhysicalDeviceCornerSampledImageFeaturesNV & operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49303. {
  49304. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV const *>( &rhs );
  49305. return *this;
  49306. }
  49307. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49308. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49309. {
  49310. pNext = pNext_;
  49311. return *this;
  49312. }
  49313. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCornerSampledImageFeaturesNV &
  49314. setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT
  49315. {
  49316. cornerSampledImage = cornerSampledImage_;
  49317. return *this;
  49318. }
  49319. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49320. operator VkPhysicalDeviceCornerSampledImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  49321. {
  49322. return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV *>( this );
  49323. }
  49324. operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
  49325. {
  49326. return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV *>( this );
  49327. }
  49328. #if defined( VULKAN_HPP_USE_REFLECT )
  49329. # if 14 <= VULKAN_HPP_CPP_VERSION
  49330. auto
  49331. # else
  49332. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49333. # endif
  49334. reflect() const VULKAN_HPP_NOEXCEPT
  49335. {
  49336. return std::tie( sType, pNext, cornerSampledImage );
  49337. }
  49338. #endif
  49339. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49340. auto operator<=>( PhysicalDeviceCornerSampledImageFeaturesNV const & ) const = default;
  49341. #else
  49342. bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49343. {
  49344. # if defined( VULKAN_HPP_USE_REFLECT )
  49345. return this->reflect() == rhs.reflect();
  49346. # else
  49347. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cornerSampledImage == rhs.cornerSampledImage );
  49348. # endif
  49349. }
  49350. bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49351. {
  49352. return !operator==( rhs );
  49353. }
  49354. #endif
  49355. public:
  49356. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
  49357. void * pNext = {};
  49358. VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {};
  49359. };
  49360. template <>
  49361. struct CppType<StructureType, StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV>
  49362. {
  49363. using Type = PhysicalDeviceCornerSampledImageFeaturesNV;
  49364. };
  49365. struct PhysicalDeviceCoverageReductionModeFeaturesNV
  49366. {
  49367. using NativeType = VkPhysicalDeviceCoverageReductionModeFeaturesNV;
  49368. static const bool allowDuplicate = false;
  49369. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
  49370. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49371. VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {},
  49372. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49373. : pNext( pNext_ )
  49374. , coverageReductionMode( coverageReductionMode_ )
  49375. {
  49376. }
  49377. VULKAN_HPP_CONSTEXPR
  49378. PhysicalDeviceCoverageReductionModeFeaturesNV( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49379. PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49380. : PhysicalDeviceCoverageReductionModeFeaturesNV( *reinterpret_cast<PhysicalDeviceCoverageReductionModeFeaturesNV const *>( &rhs ) )
  49381. {
  49382. }
  49383. PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49384. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49385. PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49386. {
  49387. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV const *>( &rhs );
  49388. return *this;
  49389. }
  49390. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49391. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49392. {
  49393. pNext = pNext_;
  49394. return *this;
  49395. }
  49396. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoverageReductionModeFeaturesNV &
  49397. setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
  49398. {
  49399. coverageReductionMode = coverageReductionMode_;
  49400. return *this;
  49401. }
  49402. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49403. operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  49404. {
  49405. return *reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV *>( this );
  49406. }
  49407. operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT
  49408. {
  49409. return *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV *>( this );
  49410. }
  49411. #if defined( VULKAN_HPP_USE_REFLECT )
  49412. # if 14 <= VULKAN_HPP_CPP_VERSION
  49413. auto
  49414. # else
  49415. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49416. # endif
  49417. reflect() const VULKAN_HPP_NOEXCEPT
  49418. {
  49419. return std::tie( sType, pNext, coverageReductionMode );
  49420. }
  49421. #endif
  49422. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49423. auto operator<=>( PhysicalDeviceCoverageReductionModeFeaturesNV const & ) const = default;
  49424. #else
  49425. bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49426. {
  49427. # if defined( VULKAN_HPP_USE_REFLECT )
  49428. return this->reflect() == rhs.reflect();
  49429. # else
  49430. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( coverageReductionMode == rhs.coverageReductionMode );
  49431. # endif
  49432. }
  49433. bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49434. {
  49435. return !operator==( rhs );
  49436. }
  49437. #endif
  49438. public:
  49439. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
  49440. void * pNext = {};
  49441. VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {};
  49442. };
  49443. template <>
  49444. struct CppType<StructureType, StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV>
  49445. {
  49446. using Type = PhysicalDeviceCoverageReductionModeFeaturesNV;
  49447. };
  49448. struct PhysicalDeviceCubicClampFeaturesQCOM
  49449. {
  49450. using NativeType = VkPhysicalDeviceCubicClampFeaturesQCOM;
  49451. static const bool allowDuplicate = false;
  49452. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCubicClampFeaturesQCOM;
  49453. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49454. VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicClampFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49455. : pNext( pNext_ )
  49456. , cubicRangeClamp( cubicRangeClamp_ )
  49457. {
  49458. }
  49459. VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicClampFeaturesQCOM( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49460. PhysicalDeviceCubicClampFeaturesQCOM( VkPhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  49461. : PhysicalDeviceCubicClampFeaturesQCOM( *reinterpret_cast<PhysicalDeviceCubicClampFeaturesQCOM const *>( &rhs ) )
  49462. {
  49463. }
  49464. PhysicalDeviceCubicClampFeaturesQCOM & operator=( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49465. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49466. PhysicalDeviceCubicClampFeaturesQCOM & operator=( VkPhysicalDeviceCubicClampFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  49467. {
  49468. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM const *>( &rhs );
  49469. return *this;
  49470. }
  49471. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49472. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicClampFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49473. {
  49474. pNext = pNext_;
  49475. return *this;
  49476. }
  49477. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicClampFeaturesQCOM & setCubicRangeClamp( VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp_ ) VULKAN_HPP_NOEXCEPT
  49478. {
  49479. cubicRangeClamp = cubicRangeClamp_;
  49480. return *this;
  49481. }
  49482. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49483. operator VkPhysicalDeviceCubicClampFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  49484. {
  49485. return *reinterpret_cast<const VkPhysicalDeviceCubicClampFeaturesQCOM *>( this );
  49486. }
  49487. operator VkPhysicalDeviceCubicClampFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  49488. {
  49489. return *reinterpret_cast<VkPhysicalDeviceCubicClampFeaturesQCOM *>( this );
  49490. }
  49491. #if defined( VULKAN_HPP_USE_REFLECT )
  49492. # if 14 <= VULKAN_HPP_CPP_VERSION
  49493. auto
  49494. # else
  49495. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49496. # endif
  49497. reflect() const VULKAN_HPP_NOEXCEPT
  49498. {
  49499. return std::tie( sType, pNext, cubicRangeClamp );
  49500. }
  49501. #endif
  49502. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49503. auto operator<=>( PhysicalDeviceCubicClampFeaturesQCOM const & ) const = default;
  49504. #else
  49505. bool operator==( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  49506. {
  49507. # if defined( VULKAN_HPP_USE_REFLECT )
  49508. return this->reflect() == rhs.reflect();
  49509. # else
  49510. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cubicRangeClamp == rhs.cubicRangeClamp );
  49511. # endif
  49512. }
  49513. bool operator!=( PhysicalDeviceCubicClampFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  49514. {
  49515. return !operator==( rhs );
  49516. }
  49517. #endif
  49518. public:
  49519. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCubicClampFeaturesQCOM;
  49520. void * pNext = {};
  49521. VULKAN_HPP_NAMESPACE::Bool32 cubicRangeClamp = {};
  49522. };
  49523. template <>
  49524. struct CppType<StructureType, StructureType::ePhysicalDeviceCubicClampFeaturesQCOM>
  49525. {
  49526. using Type = PhysicalDeviceCubicClampFeaturesQCOM;
  49527. };
  49528. struct PhysicalDeviceCubicWeightsFeaturesQCOM
  49529. {
  49530. using NativeType = VkPhysicalDeviceCubicWeightsFeaturesQCOM;
  49531. static const bool allowDuplicate = false;
  49532. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM;
  49533. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49534. VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicWeightsFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights_ = {},
  49535. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49536. : pNext( pNext_ )
  49537. , selectableCubicWeights( selectableCubicWeights_ )
  49538. {
  49539. }
  49540. VULKAN_HPP_CONSTEXPR PhysicalDeviceCubicWeightsFeaturesQCOM( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49541. PhysicalDeviceCubicWeightsFeaturesQCOM( VkPhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  49542. : PhysicalDeviceCubicWeightsFeaturesQCOM( *reinterpret_cast<PhysicalDeviceCubicWeightsFeaturesQCOM const *>( &rhs ) )
  49543. {
  49544. }
  49545. PhysicalDeviceCubicWeightsFeaturesQCOM & operator=( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49546. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49547. PhysicalDeviceCubicWeightsFeaturesQCOM & operator=( VkPhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  49548. {
  49549. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM const *>( &rhs );
  49550. return *this;
  49551. }
  49552. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49553. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicWeightsFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49554. {
  49555. pNext = pNext_;
  49556. return *this;
  49557. }
  49558. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCubicWeightsFeaturesQCOM &
  49559. setSelectableCubicWeights( VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights_ ) VULKAN_HPP_NOEXCEPT
  49560. {
  49561. selectableCubicWeights = selectableCubicWeights_;
  49562. return *this;
  49563. }
  49564. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49565. operator VkPhysicalDeviceCubicWeightsFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  49566. {
  49567. return *reinterpret_cast<const VkPhysicalDeviceCubicWeightsFeaturesQCOM *>( this );
  49568. }
  49569. operator VkPhysicalDeviceCubicWeightsFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  49570. {
  49571. return *reinterpret_cast<VkPhysicalDeviceCubicWeightsFeaturesQCOM *>( this );
  49572. }
  49573. #if defined( VULKAN_HPP_USE_REFLECT )
  49574. # if 14 <= VULKAN_HPP_CPP_VERSION
  49575. auto
  49576. # else
  49577. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49578. # endif
  49579. reflect() const VULKAN_HPP_NOEXCEPT
  49580. {
  49581. return std::tie( sType, pNext, selectableCubicWeights );
  49582. }
  49583. #endif
  49584. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49585. auto operator<=>( PhysicalDeviceCubicWeightsFeaturesQCOM const & ) const = default;
  49586. #else
  49587. bool operator==( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  49588. {
  49589. # if defined( VULKAN_HPP_USE_REFLECT )
  49590. return this->reflect() == rhs.reflect();
  49591. # else
  49592. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( selectableCubicWeights == rhs.selectableCubicWeights );
  49593. # endif
  49594. }
  49595. bool operator!=( PhysicalDeviceCubicWeightsFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  49596. {
  49597. return !operator==( rhs );
  49598. }
  49599. #endif
  49600. public:
  49601. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM;
  49602. void * pNext = {};
  49603. VULKAN_HPP_NAMESPACE::Bool32 selectableCubicWeights = {};
  49604. };
  49605. template <>
  49606. struct CppType<StructureType, StructureType::ePhysicalDeviceCubicWeightsFeaturesQCOM>
  49607. {
  49608. using Type = PhysicalDeviceCubicWeightsFeaturesQCOM;
  49609. };
  49610. struct PhysicalDeviceCustomBorderColorFeaturesEXT
  49611. {
  49612. using NativeType = VkPhysicalDeviceCustomBorderColorFeaturesEXT;
  49613. static const bool allowDuplicate = false;
  49614. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
  49615. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49616. VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {},
  49617. VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {},
  49618. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49619. : pNext( pNext_ )
  49620. , customBorderColors( customBorderColors_ )
  49621. , customBorderColorWithoutFormat( customBorderColorWithoutFormat_ )
  49622. {
  49623. }
  49624. VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49625. PhysicalDeviceCustomBorderColorFeaturesEXT( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49626. : PhysicalDeviceCustomBorderColorFeaturesEXT( *reinterpret_cast<PhysicalDeviceCustomBorderColorFeaturesEXT const *>( &rhs ) )
  49627. {
  49628. }
  49629. PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49630. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49631. PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49632. {
  49633. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT const *>( &rhs );
  49634. return *this;
  49635. }
  49636. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49637. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49638. {
  49639. pNext = pNext_;
  49640. return *this;
  49641. }
  49642. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT &
  49643. setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT
  49644. {
  49645. customBorderColors = customBorderColors_;
  49646. return *this;
  49647. }
  49648. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT &
  49649. setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT
  49650. {
  49651. customBorderColorWithoutFormat = customBorderColorWithoutFormat_;
  49652. return *this;
  49653. }
  49654. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49655. operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  49656. {
  49657. return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT *>( this );
  49658. }
  49659. operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  49660. {
  49661. return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT *>( this );
  49662. }
  49663. #if defined( VULKAN_HPP_USE_REFLECT )
  49664. # if 14 <= VULKAN_HPP_CPP_VERSION
  49665. auto
  49666. # else
  49667. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49668. # endif
  49669. reflect() const VULKAN_HPP_NOEXCEPT
  49670. {
  49671. return std::tie( sType, pNext, customBorderColors, customBorderColorWithoutFormat );
  49672. }
  49673. #endif
  49674. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49675. auto operator<=>( PhysicalDeviceCustomBorderColorFeaturesEXT const & ) const = default;
  49676. #else
  49677. bool operator==( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49678. {
  49679. # if defined( VULKAN_HPP_USE_REFLECT )
  49680. return this->reflect() == rhs.reflect();
  49681. # else
  49682. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( customBorderColors == rhs.customBorderColors ) &&
  49683. ( customBorderColorWithoutFormat == rhs.customBorderColorWithoutFormat );
  49684. # endif
  49685. }
  49686. bool operator!=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49687. {
  49688. return !operator==( rhs );
  49689. }
  49690. #endif
  49691. public:
  49692. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT;
  49693. void * pNext = {};
  49694. VULKAN_HPP_NAMESPACE::Bool32 customBorderColors = {};
  49695. VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat = {};
  49696. };
  49697. template <>
  49698. struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT>
  49699. {
  49700. using Type = PhysicalDeviceCustomBorderColorFeaturesEXT;
  49701. };
  49702. struct PhysicalDeviceCustomBorderColorPropertiesEXT
  49703. {
  49704. using NativeType = VkPhysicalDeviceCustomBorderColorPropertiesEXT;
  49705. static const bool allowDuplicate = false;
  49706. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
  49707. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49708. VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( uint32_t maxCustomBorderColorSamplers_ = {},
  49709. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49710. : pNext( pNext_ )
  49711. , maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ )
  49712. {
  49713. }
  49714. VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49715. PhysicalDeviceCustomBorderColorPropertiesEXT( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49716. : PhysicalDeviceCustomBorderColorPropertiesEXT( *reinterpret_cast<PhysicalDeviceCustomBorderColorPropertiesEXT const *>( &rhs ) )
  49717. {
  49718. }
  49719. PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49720. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49721. PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49722. {
  49723. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT const *>( &rhs );
  49724. return *this;
  49725. }
  49726. operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  49727. {
  49728. return *reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT *>( this );
  49729. }
  49730. operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  49731. {
  49732. return *reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT *>( this );
  49733. }
  49734. #if defined( VULKAN_HPP_USE_REFLECT )
  49735. # if 14 <= VULKAN_HPP_CPP_VERSION
  49736. auto
  49737. # else
  49738. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  49739. # endif
  49740. reflect() const VULKAN_HPP_NOEXCEPT
  49741. {
  49742. return std::tie( sType, pNext, maxCustomBorderColorSamplers );
  49743. }
  49744. #endif
  49745. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49746. auto operator<=>( PhysicalDeviceCustomBorderColorPropertiesEXT const & ) const = default;
  49747. #else
  49748. bool operator==( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49749. {
  49750. # if defined( VULKAN_HPP_USE_REFLECT )
  49751. return this->reflect() == rhs.reflect();
  49752. # else
  49753. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxCustomBorderColorSamplers == rhs.maxCustomBorderColorSamplers );
  49754. # endif
  49755. }
  49756. bool operator!=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49757. {
  49758. return !operator==( rhs );
  49759. }
  49760. #endif
  49761. public:
  49762. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT;
  49763. void * pNext = {};
  49764. uint32_t maxCustomBorderColorSamplers = {};
  49765. };
  49766. template <>
  49767. struct CppType<StructureType, StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT>
  49768. {
  49769. using Type = PhysicalDeviceCustomBorderColorPropertiesEXT;
  49770. };
  49771. struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
  49772. {
  49773. using NativeType = VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  49774. static const bool allowDuplicate = false;
  49775. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  49776. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49777. VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {},
  49778. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49779. : pNext( pNext_ )
  49780. , dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ )
  49781. {
  49782. }
  49783. VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs )
  49784. VULKAN_HPP_NOEXCEPT = default;
  49785. PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49786. : PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( *reinterpret_cast<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>( &rhs ) )
  49787. {
  49788. }
  49789. PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &
  49790. operator=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49791. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49792. PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &
  49793. operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  49794. {
  49795. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const *>( &rhs );
  49796. return *this;
  49797. }
  49798. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49799. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49800. {
  49801. pNext = pNext_;
  49802. return *this;
  49803. }
  49804. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &
  49805. setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT
  49806. {
  49807. dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
  49808. return *this;
  49809. }
  49810. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49811. operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  49812. {
  49813. return *reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV *>( this );
  49814. }
  49815. operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT
  49816. {
  49817. return *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV *>( this );
  49818. }
  49819. #if defined( VULKAN_HPP_USE_REFLECT )
  49820. # if 14 <= VULKAN_HPP_CPP_VERSION
  49821. auto
  49822. # else
  49823. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  49824. # endif
  49825. reflect() const VULKAN_HPP_NOEXCEPT
  49826. {
  49827. return std::tie( sType, pNext, dedicatedAllocationImageAliasing );
  49828. }
  49829. #endif
  49830. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49831. auto operator<=>( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & ) const = default;
  49832. #else
  49833. bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49834. {
  49835. # if defined( VULKAN_HPP_USE_REFLECT )
  49836. return this->reflect() == rhs.reflect();
  49837. # else
  49838. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing );
  49839. # endif
  49840. }
  49841. bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  49842. {
  49843. return !operator==( rhs );
  49844. }
  49845. #endif
  49846. public:
  49847. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  49848. void * pNext = {};
  49849. VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {};
  49850. };
  49851. template <>
  49852. struct CppType<StructureType, StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>
  49853. {
  49854. using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  49855. };
  49856. struct PhysicalDeviceDepthBiasControlFeaturesEXT
  49857. {
  49858. using NativeType = VkPhysicalDeviceDepthBiasControlFeaturesEXT;
  49859. static const bool allowDuplicate = false;
  49860. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthBiasControlFeaturesEXT;
  49861. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49862. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthBiasControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBiasControl_ = {},
  49863. VULKAN_HPP_NAMESPACE::Bool32 leastRepresentableValueForceUnormRepresentation_ = {},
  49864. VULKAN_HPP_NAMESPACE::Bool32 floatRepresentation_ = {},
  49865. VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ = {},
  49866. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49867. : pNext( pNext_ )
  49868. , depthBiasControl( depthBiasControl_ )
  49869. , leastRepresentableValueForceUnormRepresentation( leastRepresentableValueForceUnormRepresentation_ )
  49870. , floatRepresentation( floatRepresentation_ )
  49871. , depthBiasExact( depthBiasExact_ )
  49872. {
  49873. }
  49874. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthBiasControlFeaturesEXT( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49875. PhysicalDeviceDepthBiasControlFeaturesEXT( VkPhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49876. : PhysicalDeviceDepthBiasControlFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthBiasControlFeaturesEXT const *>( &rhs ) )
  49877. {
  49878. }
  49879. PhysicalDeviceDepthBiasControlFeaturesEXT & operator=( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49880. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49881. PhysicalDeviceDepthBiasControlFeaturesEXT & operator=( VkPhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49882. {
  49883. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT const *>( &rhs );
  49884. return *this;
  49885. }
  49886. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49887. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49888. {
  49889. pNext = pNext_;
  49890. return *this;
  49891. }
  49892. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT &
  49893. setDepthBiasControl( VULKAN_HPP_NAMESPACE::Bool32 depthBiasControl_ ) VULKAN_HPP_NOEXCEPT
  49894. {
  49895. depthBiasControl = depthBiasControl_;
  49896. return *this;
  49897. }
  49898. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT &
  49899. setLeastRepresentableValueForceUnormRepresentation( VULKAN_HPP_NAMESPACE::Bool32 leastRepresentableValueForceUnormRepresentation_ ) VULKAN_HPP_NOEXCEPT
  49900. {
  49901. leastRepresentableValueForceUnormRepresentation = leastRepresentableValueForceUnormRepresentation_;
  49902. return *this;
  49903. }
  49904. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT &
  49905. setFloatRepresentation( VULKAN_HPP_NAMESPACE::Bool32 floatRepresentation_ ) VULKAN_HPP_NOEXCEPT
  49906. {
  49907. floatRepresentation = floatRepresentation_;
  49908. return *this;
  49909. }
  49910. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthBiasControlFeaturesEXT & setDepthBiasExact( VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact_ ) VULKAN_HPP_NOEXCEPT
  49911. {
  49912. depthBiasExact = depthBiasExact_;
  49913. return *this;
  49914. }
  49915. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  49916. operator VkPhysicalDeviceDepthBiasControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  49917. {
  49918. return *reinterpret_cast<const VkPhysicalDeviceDepthBiasControlFeaturesEXT *>( this );
  49919. }
  49920. operator VkPhysicalDeviceDepthBiasControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  49921. {
  49922. return *reinterpret_cast<VkPhysicalDeviceDepthBiasControlFeaturesEXT *>( this );
  49923. }
  49924. #if defined( VULKAN_HPP_USE_REFLECT )
  49925. # if 14 <= VULKAN_HPP_CPP_VERSION
  49926. auto
  49927. # else
  49928. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  49929. void * const &,
  49930. VULKAN_HPP_NAMESPACE::Bool32 const &,
  49931. VULKAN_HPP_NAMESPACE::Bool32 const &,
  49932. VULKAN_HPP_NAMESPACE::Bool32 const &,
  49933. VULKAN_HPP_NAMESPACE::Bool32 const &>
  49934. # endif
  49935. reflect() const VULKAN_HPP_NOEXCEPT
  49936. {
  49937. return std::tie( sType, pNext, depthBiasControl, leastRepresentableValueForceUnormRepresentation, floatRepresentation, depthBiasExact );
  49938. }
  49939. #endif
  49940. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  49941. auto operator<=>( PhysicalDeviceDepthBiasControlFeaturesEXT const & ) const = default;
  49942. #else
  49943. bool operator==( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49944. {
  49945. # if defined( VULKAN_HPP_USE_REFLECT )
  49946. return this->reflect() == rhs.reflect();
  49947. # else
  49948. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthBiasControl == rhs.depthBiasControl ) &&
  49949. ( leastRepresentableValueForceUnormRepresentation == rhs.leastRepresentableValueForceUnormRepresentation ) &&
  49950. ( floatRepresentation == rhs.floatRepresentation ) && ( depthBiasExact == rhs.depthBiasExact );
  49951. # endif
  49952. }
  49953. bool operator!=( PhysicalDeviceDepthBiasControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  49954. {
  49955. return !operator==( rhs );
  49956. }
  49957. #endif
  49958. public:
  49959. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthBiasControlFeaturesEXT;
  49960. void * pNext = {};
  49961. VULKAN_HPP_NAMESPACE::Bool32 depthBiasControl = {};
  49962. VULKAN_HPP_NAMESPACE::Bool32 leastRepresentableValueForceUnormRepresentation = {};
  49963. VULKAN_HPP_NAMESPACE::Bool32 floatRepresentation = {};
  49964. VULKAN_HPP_NAMESPACE::Bool32 depthBiasExact = {};
  49965. };
  49966. template <>
  49967. struct CppType<StructureType, StructureType::ePhysicalDeviceDepthBiasControlFeaturesEXT>
  49968. {
  49969. using Type = PhysicalDeviceDepthBiasControlFeaturesEXT;
  49970. };
  49971. struct PhysicalDeviceDepthClampZeroOneFeaturesEXT
  49972. {
  49973. using NativeType = VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
  49974. static const bool allowDuplicate = false;
  49975. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClampZeroOneFeaturesEXT;
  49976. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  49977. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClampZeroOneFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne_ = {},
  49978. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  49979. : pNext( pNext_ )
  49980. , depthClampZeroOne( depthClampZeroOne_ )
  49981. {
  49982. }
  49983. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClampZeroOneFeaturesEXT( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49984. PhysicalDeviceDepthClampZeroOneFeaturesEXT( VkPhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49985. : PhysicalDeviceDepthClampZeroOneFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthClampZeroOneFeaturesEXT const *>( &rhs ) )
  49986. {
  49987. }
  49988. PhysicalDeviceDepthClampZeroOneFeaturesEXT & operator=( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  49989. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  49990. PhysicalDeviceDepthClampZeroOneFeaturesEXT & operator=( VkPhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  49991. {
  49992. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT const *>( &rhs );
  49993. return *this;
  49994. }
  49995. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  49996. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClampZeroOneFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  49997. {
  49998. pNext = pNext_;
  49999. return *this;
  50000. }
  50001. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClampZeroOneFeaturesEXT &
  50002. setDepthClampZeroOne( VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne_ ) VULKAN_HPP_NOEXCEPT
  50003. {
  50004. depthClampZeroOne = depthClampZeroOne_;
  50005. return *this;
  50006. }
  50007. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50008. operator VkPhysicalDeviceDepthClampZeroOneFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  50009. {
  50010. return *reinterpret_cast<const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT *>( this );
  50011. }
  50012. operator VkPhysicalDeviceDepthClampZeroOneFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  50013. {
  50014. return *reinterpret_cast<VkPhysicalDeviceDepthClampZeroOneFeaturesEXT *>( this );
  50015. }
  50016. #if defined( VULKAN_HPP_USE_REFLECT )
  50017. # if 14 <= VULKAN_HPP_CPP_VERSION
  50018. auto
  50019. # else
  50020. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  50021. # endif
  50022. reflect() const VULKAN_HPP_NOEXCEPT
  50023. {
  50024. return std::tie( sType, pNext, depthClampZeroOne );
  50025. }
  50026. #endif
  50027. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50028. auto operator<=>( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & ) const = default;
  50029. #else
  50030. bool operator==( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50031. {
  50032. # if defined( VULKAN_HPP_USE_REFLECT )
  50033. return this->reflect() == rhs.reflect();
  50034. # else
  50035. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthClampZeroOne == rhs.depthClampZeroOne );
  50036. # endif
  50037. }
  50038. bool operator!=( PhysicalDeviceDepthClampZeroOneFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50039. {
  50040. return !operator==( rhs );
  50041. }
  50042. #endif
  50043. public:
  50044. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClampZeroOneFeaturesEXT;
  50045. void * pNext = {};
  50046. VULKAN_HPP_NAMESPACE::Bool32 depthClampZeroOne = {};
  50047. };
  50048. template <>
  50049. struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClampZeroOneFeaturesEXT>
  50050. {
  50051. using Type = PhysicalDeviceDepthClampZeroOneFeaturesEXT;
  50052. };
  50053. struct PhysicalDeviceDepthClipControlFeaturesEXT
  50054. {
  50055. using NativeType = VkPhysicalDeviceDepthClipControlFeaturesEXT;
  50056. static const bool allowDuplicate = false;
  50057. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipControlFeaturesEXT;
  50058. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50059. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipControl_ = {},
  50060. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50061. : pNext( pNext_ )
  50062. , depthClipControl( depthClipControl_ )
  50063. {
  50064. }
  50065. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipControlFeaturesEXT( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50066. PhysicalDeviceDepthClipControlFeaturesEXT( VkPhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50067. : PhysicalDeviceDepthClipControlFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthClipControlFeaturesEXT const *>( &rhs ) )
  50068. {
  50069. }
  50070. PhysicalDeviceDepthClipControlFeaturesEXT & operator=( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50071. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50072. PhysicalDeviceDepthClipControlFeaturesEXT & operator=( VkPhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50073. {
  50074. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT const *>( &rhs );
  50075. return *this;
  50076. }
  50077. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50078. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50079. {
  50080. pNext = pNext_;
  50081. return *this;
  50082. }
  50083. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipControlFeaturesEXT &
  50084. setDepthClipControl( VULKAN_HPP_NAMESPACE::Bool32 depthClipControl_ ) VULKAN_HPP_NOEXCEPT
  50085. {
  50086. depthClipControl = depthClipControl_;
  50087. return *this;
  50088. }
  50089. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50090. operator VkPhysicalDeviceDepthClipControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  50091. {
  50092. return *reinterpret_cast<const VkPhysicalDeviceDepthClipControlFeaturesEXT *>( this );
  50093. }
  50094. operator VkPhysicalDeviceDepthClipControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  50095. {
  50096. return *reinterpret_cast<VkPhysicalDeviceDepthClipControlFeaturesEXT *>( this );
  50097. }
  50098. #if defined( VULKAN_HPP_USE_REFLECT )
  50099. # if 14 <= VULKAN_HPP_CPP_VERSION
  50100. auto
  50101. # else
  50102. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  50103. # endif
  50104. reflect() const VULKAN_HPP_NOEXCEPT
  50105. {
  50106. return std::tie( sType, pNext, depthClipControl );
  50107. }
  50108. #endif
  50109. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50110. auto operator<=>( PhysicalDeviceDepthClipControlFeaturesEXT const & ) const = default;
  50111. #else
  50112. bool operator==( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50113. {
  50114. # if defined( VULKAN_HPP_USE_REFLECT )
  50115. return this->reflect() == rhs.reflect();
  50116. # else
  50117. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthClipControl == rhs.depthClipControl );
  50118. # endif
  50119. }
  50120. bool operator!=( PhysicalDeviceDepthClipControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50121. {
  50122. return !operator==( rhs );
  50123. }
  50124. #endif
  50125. public:
  50126. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipControlFeaturesEXT;
  50127. void * pNext = {};
  50128. VULKAN_HPP_NAMESPACE::Bool32 depthClipControl = {};
  50129. };
  50130. template <>
  50131. struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClipControlFeaturesEXT>
  50132. {
  50133. using Type = PhysicalDeviceDepthClipControlFeaturesEXT;
  50134. };
  50135. struct PhysicalDeviceDepthClipEnableFeaturesEXT
  50136. {
  50137. using NativeType = VkPhysicalDeviceDepthClipEnableFeaturesEXT;
  50138. static const bool allowDuplicate = false;
  50139. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
  50140. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50141. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {},
  50142. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50143. : pNext( pNext_ )
  50144. , depthClipEnable( depthClipEnable_ )
  50145. {
  50146. }
  50147. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50148. PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50149. : PhysicalDeviceDepthClipEnableFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthClipEnableFeaturesEXT const *>( &rhs ) )
  50150. {
  50151. }
  50152. PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50153. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50154. PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50155. {
  50156. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT const *>( &rhs );
  50157. return *this;
  50158. }
  50159. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50160. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50161. {
  50162. pNext = pNext_;
  50163. return *this;
  50164. }
  50165. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
  50166. {
  50167. depthClipEnable = depthClipEnable_;
  50168. return *this;
  50169. }
  50170. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50171. operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  50172. {
  50173. return *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT *>( this );
  50174. }
  50175. operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  50176. {
  50177. return *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT *>( this );
  50178. }
  50179. #if defined( VULKAN_HPP_USE_REFLECT )
  50180. # if 14 <= VULKAN_HPP_CPP_VERSION
  50181. auto
  50182. # else
  50183. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  50184. # endif
  50185. reflect() const VULKAN_HPP_NOEXCEPT
  50186. {
  50187. return std::tie( sType, pNext, depthClipEnable );
  50188. }
  50189. #endif
  50190. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50191. auto operator<=>( PhysicalDeviceDepthClipEnableFeaturesEXT const & ) const = default;
  50192. #else
  50193. bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50194. {
  50195. # if defined( VULKAN_HPP_USE_REFLECT )
  50196. return this->reflect() == rhs.reflect();
  50197. # else
  50198. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthClipEnable == rhs.depthClipEnable );
  50199. # endif
  50200. }
  50201. bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50202. {
  50203. return !operator==( rhs );
  50204. }
  50205. #endif
  50206. public:
  50207. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
  50208. void * pNext = {};
  50209. VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
  50210. };
  50211. template <>
  50212. struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT>
  50213. {
  50214. using Type = PhysicalDeviceDepthClipEnableFeaturesEXT;
  50215. };
  50216. struct PhysicalDeviceDepthStencilResolveProperties
  50217. {
  50218. using NativeType = VkPhysicalDeviceDepthStencilResolveProperties;
  50219. static const bool allowDuplicate = false;
  50220. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
  50221. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50222. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {},
  50223. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {},
  50224. VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {},
  50225. VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {},
  50226. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50227. : pNext( pNext_ )
  50228. , supportedDepthResolveModes( supportedDepthResolveModes_ )
  50229. , supportedStencilResolveModes( supportedStencilResolveModes_ )
  50230. , independentResolveNone( independentResolveNone_ )
  50231. , independentResolve( independentResolve_ )
  50232. {
  50233. }
  50234. VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50235. PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  50236. : PhysicalDeviceDepthStencilResolveProperties( *reinterpret_cast<PhysicalDeviceDepthStencilResolveProperties const *>( &rhs ) )
  50237. {
  50238. }
  50239. PhysicalDeviceDepthStencilResolveProperties & operator=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50240. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50241. PhysicalDeviceDepthStencilResolveProperties & operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  50242. {
  50243. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties const *>( &rhs );
  50244. return *this;
  50245. }
  50246. operator VkPhysicalDeviceDepthStencilResolveProperties const &() const VULKAN_HPP_NOEXCEPT
  50247. {
  50248. return *reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties *>( this );
  50249. }
  50250. operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT
  50251. {
  50252. return *reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties *>( this );
  50253. }
  50254. #if defined( VULKAN_HPP_USE_REFLECT )
  50255. # if 14 <= VULKAN_HPP_CPP_VERSION
  50256. auto
  50257. # else
  50258. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  50259. void * const &,
  50260. VULKAN_HPP_NAMESPACE::ResolveModeFlags const &,
  50261. VULKAN_HPP_NAMESPACE::ResolveModeFlags const &,
  50262. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50263. VULKAN_HPP_NAMESPACE::Bool32 const &>
  50264. # endif
  50265. reflect() const VULKAN_HPP_NOEXCEPT
  50266. {
  50267. return std::tie( sType, pNext, supportedDepthResolveModes, supportedStencilResolveModes, independentResolveNone, independentResolve );
  50268. }
  50269. #endif
  50270. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50271. auto operator<=>( PhysicalDeviceDepthStencilResolveProperties const & ) const = default;
  50272. #else
  50273. bool operator==( PhysicalDeviceDepthStencilResolveProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  50274. {
  50275. # if defined( VULKAN_HPP_USE_REFLECT )
  50276. return this->reflect() == rhs.reflect();
  50277. # else
  50278. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) &&
  50279. ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) && ( independentResolveNone == rhs.independentResolveNone ) &&
  50280. ( independentResolve == rhs.independentResolve );
  50281. # endif
  50282. }
  50283. bool operator!=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  50284. {
  50285. return !operator==( rhs );
  50286. }
  50287. #endif
  50288. public:
  50289. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties;
  50290. void * pNext = {};
  50291. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
  50292. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
  50293. VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
  50294. VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
  50295. };
  50296. template <>
  50297. struct CppType<StructureType, StructureType::ePhysicalDeviceDepthStencilResolveProperties>
  50298. {
  50299. using Type = PhysicalDeviceDepthStencilResolveProperties;
  50300. };
  50301. using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
  50302. struct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
  50303. {
  50304. using NativeType = VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
  50305. static const bool allowDuplicate = false;
  50306. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
  50307. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50308. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT( size_t combinedImageSamplerDensityMapDescriptorSize_ = {},
  50309. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50310. : pNext( pNext_ )
  50311. , combinedImageSamplerDensityMapDescriptorSize( combinedImageSamplerDensityMapDescriptorSize_ )
  50312. {
  50313. }
  50314. VULKAN_HPP_CONSTEXPR
  50315. PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT( PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50316. PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT( VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50317. : PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT( *reinterpret_cast<PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const *>( &rhs ) )
  50318. {
  50319. }
  50320. PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT &
  50321. operator=( PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50322. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50323. PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT & operator=( VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50324. {
  50325. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const *>( &rhs );
  50326. return *this;
  50327. }
  50328. operator VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  50329. {
  50330. return *reinterpret_cast<const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT *>( this );
  50331. }
  50332. operator VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  50333. {
  50334. return *reinterpret_cast<VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT *>( this );
  50335. }
  50336. #if defined( VULKAN_HPP_USE_REFLECT )
  50337. # if 14 <= VULKAN_HPP_CPP_VERSION
  50338. auto
  50339. # else
  50340. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, size_t const &>
  50341. # endif
  50342. reflect() const VULKAN_HPP_NOEXCEPT
  50343. {
  50344. return std::tie( sType, pNext, combinedImageSamplerDensityMapDescriptorSize );
  50345. }
  50346. #endif
  50347. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50348. auto operator<=>( PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & ) const = default;
  50349. #else
  50350. bool operator==( PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50351. {
  50352. # if defined( VULKAN_HPP_USE_REFLECT )
  50353. return this->reflect() == rhs.reflect();
  50354. # else
  50355. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  50356. ( combinedImageSamplerDensityMapDescriptorSize == rhs.combinedImageSamplerDensityMapDescriptorSize );
  50357. # endif
  50358. }
  50359. bool operator!=( PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50360. {
  50361. return !operator==( rhs );
  50362. }
  50363. #endif
  50364. public:
  50365. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
  50366. void * pNext = {};
  50367. size_t combinedImageSamplerDensityMapDescriptorSize = {};
  50368. };
  50369. template <>
  50370. struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorBufferDensityMapPropertiesEXT>
  50371. {
  50372. using Type = PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
  50373. };
  50374. struct PhysicalDeviceDescriptorBufferFeaturesEXT
  50375. {
  50376. using NativeType = VkPhysicalDeviceDescriptorBufferFeaturesEXT;
  50377. static const bool allowDuplicate = false;
  50378. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorBufferFeaturesEXT;
  50379. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50380. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 descriptorBuffer_ = {},
  50381. VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferCaptureReplay_ = {},
  50382. VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferImageLayoutIgnored_ = {},
  50383. VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferPushDescriptors_ = {},
  50384. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50385. : pNext( pNext_ )
  50386. , descriptorBuffer( descriptorBuffer_ )
  50387. , descriptorBufferCaptureReplay( descriptorBufferCaptureReplay_ )
  50388. , descriptorBufferImageLayoutIgnored( descriptorBufferImageLayoutIgnored_ )
  50389. , descriptorBufferPushDescriptors( descriptorBufferPushDescriptors_ )
  50390. {
  50391. }
  50392. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferFeaturesEXT( PhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50393. PhysicalDeviceDescriptorBufferFeaturesEXT( VkPhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50394. : PhysicalDeviceDescriptorBufferFeaturesEXT( *reinterpret_cast<PhysicalDeviceDescriptorBufferFeaturesEXT const *>( &rhs ) )
  50395. {
  50396. }
  50397. PhysicalDeviceDescriptorBufferFeaturesEXT & operator=( PhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50398. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50399. PhysicalDeviceDescriptorBufferFeaturesEXT & operator=( VkPhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50400. {
  50401. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT const *>( &rhs );
  50402. return *this;
  50403. }
  50404. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50405. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50406. {
  50407. pNext = pNext_;
  50408. return *this;
  50409. }
  50410. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT &
  50411. setDescriptorBuffer( VULKAN_HPP_NAMESPACE::Bool32 descriptorBuffer_ ) VULKAN_HPP_NOEXCEPT
  50412. {
  50413. descriptorBuffer = descriptorBuffer_;
  50414. return *this;
  50415. }
  50416. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT &
  50417. setDescriptorBufferCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  50418. {
  50419. descriptorBufferCaptureReplay = descriptorBufferCaptureReplay_;
  50420. return *this;
  50421. }
  50422. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT &
  50423. setDescriptorBufferImageLayoutIgnored( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferImageLayoutIgnored_ ) VULKAN_HPP_NOEXCEPT
  50424. {
  50425. descriptorBufferImageLayoutIgnored = descriptorBufferImageLayoutIgnored_;
  50426. return *this;
  50427. }
  50428. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferFeaturesEXT &
  50429. setDescriptorBufferPushDescriptors( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferPushDescriptors_ ) VULKAN_HPP_NOEXCEPT
  50430. {
  50431. descriptorBufferPushDescriptors = descriptorBufferPushDescriptors_;
  50432. return *this;
  50433. }
  50434. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50435. operator VkPhysicalDeviceDescriptorBufferFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  50436. {
  50437. return *reinterpret_cast<const VkPhysicalDeviceDescriptorBufferFeaturesEXT *>( this );
  50438. }
  50439. operator VkPhysicalDeviceDescriptorBufferFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  50440. {
  50441. return *reinterpret_cast<VkPhysicalDeviceDescriptorBufferFeaturesEXT *>( this );
  50442. }
  50443. #if defined( VULKAN_HPP_USE_REFLECT )
  50444. # if 14 <= VULKAN_HPP_CPP_VERSION
  50445. auto
  50446. # else
  50447. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  50448. void * const &,
  50449. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50450. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50451. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50452. VULKAN_HPP_NAMESPACE::Bool32 const &>
  50453. # endif
  50454. reflect() const VULKAN_HPP_NOEXCEPT
  50455. {
  50456. return std::tie( sType, pNext, descriptorBuffer, descriptorBufferCaptureReplay, descriptorBufferImageLayoutIgnored, descriptorBufferPushDescriptors );
  50457. }
  50458. #endif
  50459. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50460. auto operator<=>( PhysicalDeviceDescriptorBufferFeaturesEXT const & ) const = default;
  50461. #else
  50462. bool operator==( PhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50463. {
  50464. # if defined( VULKAN_HPP_USE_REFLECT )
  50465. return this->reflect() == rhs.reflect();
  50466. # else
  50467. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorBuffer == rhs.descriptorBuffer ) &&
  50468. ( descriptorBufferCaptureReplay == rhs.descriptorBufferCaptureReplay ) &&
  50469. ( descriptorBufferImageLayoutIgnored == rhs.descriptorBufferImageLayoutIgnored ) &&
  50470. ( descriptorBufferPushDescriptors == rhs.descriptorBufferPushDescriptors );
  50471. # endif
  50472. }
  50473. bool operator!=( PhysicalDeviceDescriptorBufferFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50474. {
  50475. return !operator==( rhs );
  50476. }
  50477. #endif
  50478. public:
  50479. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorBufferFeaturesEXT;
  50480. void * pNext = {};
  50481. VULKAN_HPP_NAMESPACE::Bool32 descriptorBuffer = {};
  50482. VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferCaptureReplay = {};
  50483. VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferImageLayoutIgnored = {};
  50484. VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferPushDescriptors = {};
  50485. };
  50486. template <>
  50487. struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorBufferFeaturesEXT>
  50488. {
  50489. using Type = PhysicalDeviceDescriptorBufferFeaturesEXT;
  50490. };
  50491. struct PhysicalDeviceDescriptorBufferPropertiesEXT
  50492. {
  50493. using NativeType = VkPhysicalDeviceDescriptorBufferPropertiesEXT;
  50494. static const bool allowDuplicate = false;
  50495. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorBufferPropertiesEXT;
  50496. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50497. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 combinedImageSamplerDescriptorSingleArray_ = {},
  50498. VULKAN_HPP_NAMESPACE::Bool32 bufferlessPushDescriptors_ = {},
  50499. VULKAN_HPP_NAMESPACE::Bool32 allowSamplerImageViewPostSubmitCreation_ = {},
  50500. VULKAN_HPP_NAMESPACE::DeviceSize descriptorBufferOffsetAlignment_ = {},
  50501. uint32_t maxDescriptorBufferBindings_ = {},
  50502. uint32_t maxResourceDescriptorBufferBindings_ = {},
  50503. uint32_t maxSamplerDescriptorBufferBindings_ = {},
  50504. uint32_t maxEmbeddedImmutableSamplerBindings_ = {},
  50505. uint32_t maxEmbeddedImmutableSamplers_ = {},
  50506. size_t bufferCaptureReplayDescriptorDataSize_ = {},
  50507. size_t imageCaptureReplayDescriptorDataSize_ = {},
  50508. size_t imageViewCaptureReplayDescriptorDataSize_ = {},
  50509. size_t samplerCaptureReplayDescriptorDataSize_ = {},
  50510. size_t accelerationStructureCaptureReplayDescriptorDataSize_ = {},
  50511. size_t samplerDescriptorSize_ = {},
  50512. size_t combinedImageSamplerDescriptorSize_ = {},
  50513. size_t sampledImageDescriptorSize_ = {},
  50514. size_t storageImageDescriptorSize_ = {},
  50515. size_t uniformTexelBufferDescriptorSize_ = {},
  50516. size_t robustUniformTexelBufferDescriptorSize_ = {},
  50517. size_t storageTexelBufferDescriptorSize_ = {},
  50518. size_t robustStorageTexelBufferDescriptorSize_ = {},
  50519. size_t uniformBufferDescriptorSize_ = {},
  50520. size_t robustUniformBufferDescriptorSize_ = {},
  50521. size_t storageBufferDescriptorSize_ = {},
  50522. size_t robustStorageBufferDescriptorSize_ = {},
  50523. size_t inputAttachmentDescriptorSize_ = {},
  50524. size_t accelerationStructureDescriptorSize_ = {},
  50525. VULKAN_HPP_NAMESPACE::DeviceSize maxSamplerDescriptorBufferRange_ = {},
  50526. VULKAN_HPP_NAMESPACE::DeviceSize maxResourceDescriptorBufferRange_ = {},
  50527. VULKAN_HPP_NAMESPACE::DeviceSize samplerDescriptorBufferAddressSpaceSize_ = {},
  50528. VULKAN_HPP_NAMESPACE::DeviceSize resourceDescriptorBufferAddressSpaceSize_ = {},
  50529. VULKAN_HPP_NAMESPACE::DeviceSize descriptorBufferAddressSpaceSize_ = {},
  50530. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50531. : pNext( pNext_ )
  50532. , combinedImageSamplerDescriptorSingleArray( combinedImageSamplerDescriptorSingleArray_ )
  50533. , bufferlessPushDescriptors( bufferlessPushDescriptors_ )
  50534. , allowSamplerImageViewPostSubmitCreation( allowSamplerImageViewPostSubmitCreation_ )
  50535. , descriptorBufferOffsetAlignment( descriptorBufferOffsetAlignment_ )
  50536. , maxDescriptorBufferBindings( maxDescriptorBufferBindings_ )
  50537. , maxResourceDescriptorBufferBindings( maxResourceDescriptorBufferBindings_ )
  50538. , maxSamplerDescriptorBufferBindings( maxSamplerDescriptorBufferBindings_ )
  50539. , maxEmbeddedImmutableSamplerBindings( maxEmbeddedImmutableSamplerBindings_ )
  50540. , maxEmbeddedImmutableSamplers( maxEmbeddedImmutableSamplers_ )
  50541. , bufferCaptureReplayDescriptorDataSize( bufferCaptureReplayDescriptorDataSize_ )
  50542. , imageCaptureReplayDescriptorDataSize( imageCaptureReplayDescriptorDataSize_ )
  50543. , imageViewCaptureReplayDescriptorDataSize( imageViewCaptureReplayDescriptorDataSize_ )
  50544. , samplerCaptureReplayDescriptorDataSize( samplerCaptureReplayDescriptorDataSize_ )
  50545. , accelerationStructureCaptureReplayDescriptorDataSize( accelerationStructureCaptureReplayDescriptorDataSize_ )
  50546. , samplerDescriptorSize( samplerDescriptorSize_ )
  50547. , combinedImageSamplerDescriptorSize( combinedImageSamplerDescriptorSize_ )
  50548. , sampledImageDescriptorSize( sampledImageDescriptorSize_ )
  50549. , storageImageDescriptorSize( storageImageDescriptorSize_ )
  50550. , uniformTexelBufferDescriptorSize( uniformTexelBufferDescriptorSize_ )
  50551. , robustUniformTexelBufferDescriptorSize( robustUniformTexelBufferDescriptorSize_ )
  50552. , storageTexelBufferDescriptorSize( storageTexelBufferDescriptorSize_ )
  50553. , robustStorageTexelBufferDescriptorSize( robustStorageTexelBufferDescriptorSize_ )
  50554. , uniformBufferDescriptorSize( uniformBufferDescriptorSize_ )
  50555. , robustUniformBufferDescriptorSize( robustUniformBufferDescriptorSize_ )
  50556. , storageBufferDescriptorSize( storageBufferDescriptorSize_ )
  50557. , robustStorageBufferDescriptorSize( robustStorageBufferDescriptorSize_ )
  50558. , inputAttachmentDescriptorSize( inputAttachmentDescriptorSize_ )
  50559. , accelerationStructureDescriptorSize( accelerationStructureDescriptorSize_ )
  50560. , maxSamplerDescriptorBufferRange( maxSamplerDescriptorBufferRange_ )
  50561. , maxResourceDescriptorBufferRange( maxResourceDescriptorBufferRange_ )
  50562. , samplerDescriptorBufferAddressSpaceSize( samplerDescriptorBufferAddressSpaceSize_ )
  50563. , resourceDescriptorBufferAddressSpaceSize( resourceDescriptorBufferAddressSpaceSize_ )
  50564. , descriptorBufferAddressSpaceSize( descriptorBufferAddressSpaceSize_ )
  50565. {
  50566. }
  50567. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferPropertiesEXT( PhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50568. PhysicalDeviceDescriptorBufferPropertiesEXT( VkPhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50569. : PhysicalDeviceDescriptorBufferPropertiesEXT( *reinterpret_cast<PhysicalDeviceDescriptorBufferPropertiesEXT const *>( &rhs ) )
  50570. {
  50571. }
  50572. PhysicalDeviceDescriptorBufferPropertiesEXT & operator=( PhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50573. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50574. PhysicalDeviceDescriptorBufferPropertiesEXT & operator=( VkPhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  50575. {
  50576. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT const *>( &rhs );
  50577. return *this;
  50578. }
  50579. operator VkPhysicalDeviceDescriptorBufferPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  50580. {
  50581. return *reinterpret_cast<const VkPhysicalDeviceDescriptorBufferPropertiesEXT *>( this );
  50582. }
  50583. operator VkPhysicalDeviceDescriptorBufferPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  50584. {
  50585. return *reinterpret_cast<VkPhysicalDeviceDescriptorBufferPropertiesEXT *>( this );
  50586. }
  50587. #if defined( VULKAN_HPP_USE_REFLECT )
  50588. # if 14 <= VULKAN_HPP_CPP_VERSION
  50589. auto
  50590. # else
  50591. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  50592. void * const &,
  50593. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50594. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50595. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50596. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  50597. uint32_t const &,
  50598. uint32_t const &,
  50599. uint32_t const &,
  50600. uint32_t const &,
  50601. uint32_t const &,
  50602. size_t const &,
  50603. size_t const &,
  50604. size_t const &,
  50605. size_t const &,
  50606. size_t const &,
  50607. size_t const &,
  50608. size_t const &,
  50609. size_t const &,
  50610. size_t const &,
  50611. size_t const &,
  50612. size_t const &,
  50613. size_t const &,
  50614. size_t const &,
  50615. size_t const &,
  50616. size_t const &,
  50617. size_t const &,
  50618. size_t const &,
  50619. size_t const &,
  50620. size_t const &,
  50621. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  50622. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  50623. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  50624. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  50625. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  50626. # endif
  50627. reflect() const VULKAN_HPP_NOEXCEPT
  50628. {
  50629. return std::tie( sType,
  50630. pNext,
  50631. combinedImageSamplerDescriptorSingleArray,
  50632. bufferlessPushDescriptors,
  50633. allowSamplerImageViewPostSubmitCreation,
  50634. descriptorBufferOffsetAlignment,
  50635. maxDescriptorBufferBindings,
  50636. maxResourceDescriptorBufferBindings,
  50637. maxSamplerDescriptorBufferBindings,
  50638. maxEmbeddedImmutableSamplerBindings,
  50639. maxEmbeddedImmutableSamplers,
  50640. bufferCaptureReplayDescriptorDataSize,
  50641. imageCaptureReplayDescriptorDataSize,
  50642. imageViewCaptureReplayDescriptorDataSize,
  50643. samplerCaptureReplayDescriptorDataSize,
  50644. accelerationStructureCaptureReplayDescriptorDataSize,
  50645. samplerDescriptorSize,
  50646. combinedImageSamplerDescriptorSize,
  50647. sampledImageDescriptorSize,
  50648. storageImageDescriptorSize,
  50649. uniformTexelBufferDescriptorSize,
  50650. robustUniformTexelBufferDescriptorSize,
  50651. storageTexelBufferDescriptorSize,
  50652. robustStorageTexelBufferDescriptorSize,
  50653. uniformBufferDescriptorSize,
  50654. robustUniformBufferDescriptorSize,
  50655. storageBufferDescriptorSize,
  50656. robustStorageBufferDescriptorSize,
  50657. inputAttachmentDescriptorSize,
  50658. accelerationStructureDescriptorSize,
  50659. maxSamplerDescriptorBufferRange,
  50660. maxResourceDescriptorBufferRange,
  50661. samplerDescriptorBufferAddressSpaceSize,
  50662. resourceDescriptorBufferAddressSpaceSize,
  50663. descriptorBufferAddressSpaceSize );
  50664. }
  50665. #endif
  50666. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  50667. auto operator<=>( PhysicalDeviceDescriptorBufferPropertiesEXT const & ) const = default;
  50668. #else
  50669. bool operator==( PhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50670. {
  50671. # if defined( VULKAN_HPP_USE_REFLECT )
  50672. return this->reflect() == rhs.reflect();
  50673. # else
  50674. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  50675. ( combinedImageSamplerDescriptorSingleArray == rhs.combinedImageSamplerDescriptorSingleArray ) &&
  50676. ( bufferlessPushDescriptors == rhs.bufferlessPushDescriptors ) &&
  50677. ( allowSamplerImageViewPostSubmitCreation == rhs.allowSamplerImageViewPostSubmitCreation ) &&
  50678. ( descriptorBufferOffsetAlignment == rhs.descriptorBufferOffsetAlignment ) && ( maxDescriptorBufferBindings == rhs.maxDescriptorBufferBindings ) &&
  50679. ( maxResourceDescriptorBufferBindings == rhs.maxResourceDescriptorBufferBindings ) &&
  50680. ( maxSamplerDescriptorBufferBindings == rhs.maxSamplerDescriptorBufferBindings ) &&
  50681. ( maxEmbeddedImmutableSamplerBindings == rhs.maxEmbeddedImmutableSamplerBindings ) &&
  50682. ( maxEmbeddedImmutableSamplers == rhs.maxEmbeddedImmutableSamplers ) &&
  50683. ( bufferCaptureReplayDescriptorDataSize == rhs.bufferCaptureReplayDescriptorDataSize ) &&
  50684. ( imageCaptureReplayDescriptorDataSize == rhs.imageCaptureReplayDescriptorDataSize ) &&
  50685. ( imageViewCaptureReplayDescriptorDataSize == rhs.imageViewCaptureReplayDescriptorDataSize ) &&
  50686. ( samplerCaptureReplayDescriptorDataSize == rhs.samplerCaptureReplayDescriptorDataSize ) &&
  50687. ( accelerationStructureCaptureReplayDescriptorDataSize == rhs.accelerationStructureCaptureReplayDescriptorDataSize ) &&
  50688. ( samplerDescriptorSize == rhs.samplerDescriptorSize ) && ( combinedImageSamplerDescriptorSize == rhs.combinedImageSamplerDescriptorSize ) &&
  50689. ( sampledImageDescriptorSize == rhs.sampledImageDescriptorSize ) && ( storageImageDescriptorSize == rhs.storageImageDescriptorSize ) &&
  50690. ( uniformTexelBufferDescriptorSize == rhs.uniformTexelBufferDescriptorSize ) &&
  50691. ( robustUniformTexelBufferDescriptorSize == rhs.robustUniformTexelBufferDescriptorSize ) &&
  50692. ( storageTexelBufferDescriptorSize == rhs.storageTexelBufferDescriptorSize ) &&
  50693. ( robustStorageTexelBufferDescriptorSize == rhs.robustStorageTexelBufferDescriptorSize ) &&
  50694. ( uniformBufferDescriptorSize == rhs.uniformBufferDescriptorSize ) &&
  50695. ( robustUniformBufferDescriptorSize == rhs.robustUniformBufferDescriptorSize ) &&
  50696. ( storageBufferDescriptorSize == rhs.storageBufferDescriptorSize ) &&
  50697. ( robustStorageBufferDescriptorSize == rhs.robustStorageBufferDescriptorSize ) &&
  50698. ( inputAttachmentDescriptorSize == rhs.inputAttachmentDescriptorSize ) &&
  50699. ( accelerationStructureDescriptorSize == rhs.accelerationStructureDescriptorSize ) &&
  50700. ( maxSamplerDescriptorBufferRange == rhs.maxSamplerDescriptorBufferRange ) &&
  50701. ( maxResourceDescriptorBufferRange == rhs.maxResourceDescriptorBufferRange ) &&
  50702. ( samplerDescriptorBufferAddressSpaceSize == rhs.samplerDescriptorBufferAddressSpaceSize ) &&
  50703. ( resourceDescriptorBufferAddressSpaceSize == rhs.resourceDescriptorBufferAddressSpaceSize ) &&
  50704. ( descriptorBufferAddressSpaceSize == rhs.descriptorBufferAddressSpaceSize );
  50705. # endif
  50706. }
  50707. bool operator!=( PhysicalDeviceDescriptorBufferPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  50708. {
  50709. return !operator==( rhs );
  50710. }
  50711. #endif
  50712. public:
  50713. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorBufferPropertiesEXT;
  50714. void * pNext = {};
  50715. VULKAN_HPP_NAMESPACE::Bool32 combinedImageSamplerDescriptorSingleArray = {};
  50716. VULKAN_HPP_NAMESPACE::Bool32 bufferlessPushDescriptors = {};
  50717. VULKAN_HPP_NAMESPACE::Bool32 allowSamplerImageViewPostSubmitCreation = {};
  50718. VULKAN_HPP_NAMESPACE::DeviceSize descriptorBufferOffsetAlignment = {};
  50719. uint32_t maxDescriptorBufferBindings = {};
  50720. uint32_t maxResourceDescriptorBufferBindings = {};
  50721. uint32_t maxSamplerDescriptorBufferBindings = {};
  50722. uint32_t maxEmbeddedImmutableSamplerBindings = {};
  50723. uint32_t maxEmbeddedImmutableSamplers = {};
  50724. size_t bufferCaptureReplayDescriptorDataSize = {};
  50725. size_t imageCaptureReplayDescriptorDataSize = {};
  50726. size_t imageViewCaptureReplayDescriptorDataSize = {};
  50727. size_t samplerCaptureReplayDescriptorDataSize = {};
  50728. size_t accelerationStructureCaptureReplayDescriptorDataSize = {};
  50729. size_t samplerDescriptorSize = {};
  50730. size_t combinedImageSamplerDescriptorSize = {};
  50731. size_t sampledImageDescriptorSize = {};
  50732. size_t storageImageDescriptorSize = {};
  50733. size_t uniformTexelBufferDescriptorSize = {};
  50734. size_t robustUniformTexelBufferDescriptorSize = {};
  50735. size_t storageTexelBufferDescriptorSize = {};
  50736. size_t robustStorageTexelBufferDescriptorSize = {};
  50737. size_t uniformBufferDescriptorSize = {};
  50738. size_t robustUniformBufferDescriptorSize = {};
  50739. size_t storageBufferDescriptorSize = {};
  50740. size_t robustStorageBufferDescriptorSize = {};
  50741. size_t inputAttachmentDescriptorSize = {};
  50742. size_t accelerationStructureDescriptorSize = {};
  50743. VULKAN_HPP_NAMESPACE::DeviceSize maxSamplerDescriptorBufferRange = {};
  50744. VULKAN_HPP_NAMESPACE::DeviceSize maxResourceDescriptorBufferRange = {};
  50745. VULKAN_HPP_NAMESPACE::DeviceSize samplerDescriptorBufferAddressSpaceSize = {};
  50746. VULKAN_HPP_NAMESPACE::DeviceSize resourceDescriptorBufferAddressSpaceSize = {};
  50747. VULKAN_HPP_NAMESPACE::DeviceSize descriptorBufferAddressSpaceSize = {};
  50748. };
  50749. template <>
  50750. struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorBufferPropertiesEXT>
  50751. {
  50752. using Type = PhysicalDeviceDescriptorBufferPropertiesEXT;
  50753. };
  50754. struct PhysicalDeviceDescriptorIndexingFeatures
  50755. {
  50756. using NativeType = VkPhysicalDeviceDescriptorIndexingFeatures;
  50757. static const bool allowDuplicate = false;
  50758. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
  50759. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  50760. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {},
  50761. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {},
  50762. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {},
  50763. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {},
  50764. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {},
  50765. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {},
  50766. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {},
  50767. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {},
  50768. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {},
  50769. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {},
  50770. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {},
  50771. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {},
  50772. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {},
  50773. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {},
  50774. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {},
  50775. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {},
  50776. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {},
  50777. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {},
  50778. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {},
  50779. VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {},
  50780. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  50781. : pNext( pNext_ )
  50782. , shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ )
  50783. , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ )
  50784. , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ )
  50785. , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ )
  50786. , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ )
  50787. , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ )
  50788. , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ )
  50789. , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ )
  50790. , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ )
  50791. , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ )
  50792. , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ )
  50793. , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ )
  50794. , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ )
  50795. , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ )
  50796. , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ )
  50797. , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ )
  50798. , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ )
  50799. , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ )
  50800. , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ )
  50801. , runtimeDescriptorArray( runtimeDescriptorArray_ )
  50802. {
  50803. }
  50804. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50805. PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  50806. : PhysicalDeviceDescriptorIndexingFeatures( *reinterpret_cast<PhysicalDeviceDescriptorIndexingFeatures const *>( &rhs ) )
  50807. {
  50808. }
  50809. PhysicalDeviceDescriptorIndexingFeatures & operator=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  50810. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  50811. PhysicalDeviceDescriptorIndexingFeatures & operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  50812. {
  50813. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const *>( &rhs );
  50814. return *this;
  50815. }
  50816. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  50817. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  50818. {
  50819. pNext = pNext_;
  50820. return *this;
  50821. }
  50822. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50823. setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  50824. {
  50825. shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
  50826. return *this;
  50827. }
  50828. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50829. setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  50830. {
  50831. shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
  50832. return *this;
  50833. }
  50834. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50835. setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  50836. {
  50837. shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
  50838. return *this;
  50839. }
  50840. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50841. setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  50842. {
  50843. shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
  50844. return *this;
  50845. }
  50846. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50847. setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  50848. {
  50849. shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
  50850. return *this;
  50851. }
  50852. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50853. setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  50854. {
  50855. shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
  50856. return *this;
  50857. }
  50858. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50859. setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  50860. {
  50861. shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
  50862. return *this;
  50863. }
  50864. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50865. setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  50866. {
  50867. shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
  50868. return *this;
  50869. }
  50870. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50871. setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  50872. {
  50873. shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
  50874. return *this;
  50875. }
  50876. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50877. setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  50878. {
  50879. shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
  50880. return *this;
  50881. }
  50882. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50883. setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  50884. {
  50885. descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
  50886. return *this;
  50887. }
  50888. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50889. setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  50890. {
  50891. descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
  50892. return *this;
  50893. }
  50894. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50895. setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  50896. {
  50897. descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
  50898. return *this;
  50899. }
  50900. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50901. setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  50902. {
  50903. descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
  50904. return *this;
  50905. }
  50906. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind(
  50907. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  50908. {
  50909. descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
  50910. return *this;
  50911. }
  50912. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind(
  50913. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  50914. {
  50915. descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
  50916. return *this;
  50917. }
  50918. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50919. setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
  50920. {
  50921. descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
  50922. return *this;
  50923. }
  50924. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50925. setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
  50926. {
  50927. descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
  50928. return *this;
  50929. }
  50930. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50931. setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
  50932. {
  50933. descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
  50934. return *this;
  50935. }
  50936. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures &
  50937. setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
  50938. {
  50939. runtimeDescriptorArray = runtimeDescriptorArray_;
  50940. return *this;
  50941. }
  50942. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  50943. operator VkPhysicalDeviceDescriptorIndexingFeatures const &() const VULKAN_HPP_NOEXCEPT
  50944. {
  50945. return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures *>( this );
  50946. }
  50947. operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT
  50948. {
  50949. return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>( this );
  50950. }
  50951. #if defined( VULKAN_HPP_USE_REFLECT )
  50952. # if 14 <= VULKAN_HPP_CPP_VERSION
  50953. auto
  50954. # else
  50955. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  50956. void * const &,
  50957. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50958. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50959. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50960. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50961. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50962. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50963. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50964. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50965. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50966. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50967. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50968. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50969. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50970. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50971. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50972. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50973. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50974. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50975. VULKAN_HPP_NAMESPACE::Bool32 const &,
  50976. VULKAN_HPP_NAMESPACE::Bool32 const &>
  50977. # endif
  50978. reflect() const VULKAN_HPP_NOEXCEPT
  50979. {
  50980. return std::tie( sType,
  50981. pNext,
  50982. shaderInputAttachmentArrayDynamicIndexing,
  50983. shaderUniformTexelBufferArrayDynamicIndexing,
  50984. shaderStorageTexelBufferArrayDynamicIndexing,
  50985. shaderUniformBufferArrayNonUniformIndexing,
  50986. shaderSampledImageArrayNonUniformIndexing,
  50987. shaderStorageBufferArrayNonUniformIndexing,
  50988. shaderStorageImageArrayNonUniformIndexing,
  50989. shaderInputAttachmentArrayNonUniformIndexing,
  50990. shaderUniformTexelBufferArrayNonUniformIndexing,
  50991. shaderStorageTexelBufferArrayNonUniformIndexing,
  50992. descriptorBindingUniformBufferUpdateAfterBind,
  50993. descriptorBindingSampledImageUpdateAfterBind,
  50994. descriptorBindingStorageImageUpdateAfterBind,
  50995. descriptorBindingStorageBufferUpdateAfterBind,
  50996. descriptorBindingUniformTexelBufferUpdateAfterBind,
  50997. descriptorBindingStorageTexelBufferUpdateAfterBind,
  50998. descriptorBindingUpdateUnusedWhilePending,
  50999. descriptorBindingPartiallyBound,
  51000. descriptorBindingVariableDescriptorCount,
  51001. runtimeDescriptorArray );
  51002. }
  51003. #endif
  51004. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51005. auto operator<=>( PhysicalDeviceDescriptorIndexingFeatures const & ) const = default;
  51006. #else
  51007. bool operator==( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  51008. {
  51009. # if defined( VULKAN_HPP_USE_REFLECT )
  51010. return this->reflect() == rhs.reflect();
  51011. # else
  51012. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  51013. ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) &&
  51014. ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) &&
  51015. ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) &&
  51016. ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) &&
  51017. ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) &&
  51018. ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) &&
  51019. ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) &&
  51020. ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) &&
  51021. ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) &&
  51022. ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) &&
  51023. ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) &&
  51024. ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) &&
  51025. ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) &&
  51026. ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) &&
  51027. ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) &&
  51028. ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) &&
  51029. ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) &&
  51030. ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) &&
  51031. ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) &&
  51032. ( runtimeDescriptorArray == rhs.runtimeDescriptorArray );
  51033. # endif
  51034. }
  51035. bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  51036. {
  51037. return !operator==( rhs );
  51038. }
  51039. #endif
  51040. public:
  51041. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures;
  51042. void * pNext = {};
  51043. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
  51044. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
  51045. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
  51046. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
  51047. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
  51048. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
  51049. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
  51050. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
  51051. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
  51052. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
  51053. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
  51054. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
  51055. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
  51056. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
  51057. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
  51058. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
  51059. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
  51060. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
  51061. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
  51062. VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
  51063. };
  51064. template <>
  51065. struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingFeatures>
  51066. {
  51067. using Type = PhysicalDeviceDescriptorIndexingFeatures;
  51068. };
  51069. using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
  51070. struct PhysicalDeviceDescriptorIndexingProperties
  51071. {
  51072. using NativeType = VkPhysicalDeviceDescriptorIndexingProperties;
  51073. static const bool allowDuplicate = false;
  51074. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
  51075. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51076. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {},
  51077. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {},
  51078. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {},
  51079. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {},
  51080. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {},
  51081. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {},
  51082. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {},
  51083. VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {},
  51084. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {},
  51085. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {},
  51086. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {},
  51087. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {},
  51088. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {},
  51089. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {},
  51090. uint32_t maxPerStageUpdateAfterBindResources_ = {},
  51091. uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {},
  51092. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {},
  51093. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {},
  51094. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {},
  51095. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {},
  51096. uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {},
  51097. uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {},
  51098. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {},
  51099. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51100. : pNext( pNext_ )
  51101. , maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ )
  51102. , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ )
  51103. , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ )
  51104. , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ )
  51105. , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ )
  51106. , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ )
  51107. , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ )
  51108. , quadDivergentImplicitLod( quadDivergentImplicitLod_ )
  51109. , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ )
  51110. , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ )
  51111. , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ )
  51112. , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ )
  51113. , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ )
  51114. , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ )
  51115. , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ )
  51116. , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ )
  51117. , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ )
  51118. , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ )
  51119. , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ )
  51120. , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ )
  51121. , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ )
  51122. , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ )
  51123. , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ )
  51124. {
  51125. }
  51126. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51127. PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  51128. : PhysicalDeviceDescriptorIndexingProperties( *reinterpret_cast<PhysicalDeviceDescriptorIndexingProperties const *>( &rhs ) )
  51129. {
  51130. }
  51131. PhysicalDeviceDescriptorIndexingProperties & operator=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51132. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51133. PhysicalDeviceDescriptorIndexingProperties & operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  51134. {
  51135. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties const *>( &rhs );
  51136. return *this;
  51137. }
  51138. operator VkPhysicalDeviceDescriptorIndexingProperties const &() const VULKAN_HPP_NOEXCEPT
  51139. {
  51140. return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties *>( this );
  51141. }
  51142. operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT
  51143. {
  51144. return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties *>( this );
  51145. }
  51146. #if defined( VULKAN_HPP_USE_REFLECT )
  51147. # if 14 <= VULKAN_HPP_CPP_VERSION
  51148. auto
  51149. # else
  51150. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  51151. void * const &,
  51152. uint32_t const &,
  51153. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51154. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51155. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51156. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51157. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51158. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51159. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51160. uint32_t const &,
  51161. uint32_t const &,
  51162. uint32_t const &,
  51163. uint32_t const &,
  51164. uint32_t const &,
  51165. uint32_t const &,
  51166. uint32_t const &,
  51167. uint32_t const &,
  51168. uint32_t const &,
  51169. uint32_t const &,
  51170. uint32_t const &,
  51171. uint32_t const &,
  51172. uint32_t const &,
  51173. uint32_t const &,
  51174. uint32_t const &>
  51175. # endif
  51176. reflect() const VULKAN_HPP_NOEXCEPT
  51177. {
  51178. return std::tie( sType,
  51179. pNext,
  51180. maxUpdateAfterBindDescriptorsInAllPools,
  51181. shaderUniformBufferArrayNonUniformIndexingNative,
  51182. shaderSampledImageArrayNonUniformIndexingNative,
  51183. shaderStorageBufferArrayNonUniformIndexingNative,
  51184. shaderStorageImageArrayNonUniformIndexingNative,
  51185. shaderInputAttachmentArrayNonUniformIndexingNative,
  51186. robustBufferAccessUpdateAfterBind,
  51187. quadDivergentImplicitLod,
  51188. maxPerStageDescriptorUpdateAfterBindSamplers,
  51189. maxPerStageDescriptorUpdateAfterBindUniformBuffers,
  51190. maxPerStageDescriptorUpdateAfterBindStorageBuffers,
  51191. maxPerStageDescriptorUpdateAfterBindSampledImages,
  51192. maxPerStageDescriptorUpdateAfterBindStorageImages,
  51193. maxPerStageDescriptorUpdateAfterBindInputAttachments,
  51194. maxPerStageUpdateAfterBindResources,
  51195. maxDescriptorSetUpdateAfterBindSamplers,
  51196. maxDescriptorSetUpdateAfterBindUniformBuffers,
  51197. maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
  51198. maxDescriptorSetUpdateAfterBindStorageBuffers,
  51199. maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
  51200. maxDescriptorSetUpdateAfterBindSampledImages,
  51201. maxDescriptorSetUpdateAfterBindStorageImages,
  51202. maxDescriptorSetUpdateAfterBindInputAttachments );
  51203. }
  51204. #endif
  51205. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51206. auto operator<=>( PhysicalDeviceDescriptorIndexingProperties const & ) const = default;
  51207. #else
  51208. bool operator==( PhysicalDeviceDescriptorIndexingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  51209. {
  51210. # if defined( VULKAN_HPP_USE_REFLECT )
  51211. return this->reflect() == rhs.reflect();
  51212. # else
  51213. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) &&
  51214. ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative ) &&
  51215. ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative ) &&
  51216. ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative ) &&
  51217. ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative ) &&
  51218. ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) &&
  51219. ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) &&
  51220. ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) &&
  51221. ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) &&
  51222. ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) &&
  51223. ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) &&
  51224. ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) &&
  51225. ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) &&
  51226. ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) &&
  51227. ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) &&
  51228. ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) &&
  51229. ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) &&
  51230. ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) &&
  51231. ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) &&
  51232. ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) &&
  51233. ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) &&
  51234. ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments );
  51235. # endif
  51236. }
  51237. bool operator!=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  51238. {
  51239. return !operator==( rhs );
  51240. }
  51241. #endif
  51242. public:
  51243. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties;
  51244. void * pNext = {};
  51245. uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
  51246. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
  51247. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
  51248. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
  51249. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
  51250. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
  51251. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
  51252. VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
  51253. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
  51254. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
  51255. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
  51256. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
  51257. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
  51258. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
  51259. uint32_t maxPerStageUpdateAfterBindResources = {};
  51260. uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
  51261. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
  51262. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
  51263. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
  51264. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
  51265. uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
  51266. uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
  51267. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
  51268. };
  51269. template <>
  51270. struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorIndexingProperties>
  51271. {
  51272. using Type = PhysicalDeviceDescriptorIndexingProperties;
  51273. };
  51274. using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
  51275. struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV
  51276. {
  51277. using NativeType = VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
  51278. static const bool allowDuplicate = false;
  51279. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
  51280. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51281. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation_ = {},
  51282. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51283. : pNext( pNext_ )
  51284. , descriptorPoolOverallocation( descriptorPoolOverallocation_ )
  51285. {
  51286. }
  51287. VULKAN_HPP_CONSTEXPR
  51288. PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51289. PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  51290. : PhysicalDeviceDescriptorPoolOverallocationFeaturesNV( *reinterpret_cast<PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const *>( &rhs ) )
  51291. {
  51292. }
  51293. PhysicalDeviceDescriptorPoolOverallocationFeaturesNV &
  51294. operator=( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51295. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51296. PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & operator=( VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  51297. {
  51298. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const *>( &rhs );
  51299. return *this;
  51300. }
  51301. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51302. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  51303. {
  51304. pNext = pNext_;
  51305. return *this;
  51306. }
  51307. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV &
  51308. setDescriptorPoolOverallocation( VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation_ ) VULKAN_HPP_NOEXCEPT
  51309. {
  51310. descriptorPoolOverallocation = descriptorPoolOverallocation_;
  51311. return *this;
  51312. }
  51313. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51314. operator VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  51315. {
  51316. return *reinterpret_cast<const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *>( this );
  51317. }
  51318. operator VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV &() VULKAN_HPP_NOEXCEPT
  51319. {
  51320. return *reinterpret_cast<VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *>( this );
  51321. }
  51322. #if defined( VULKAN_HPP_USE_REFLECT )
  51323. # if 14 <= VULKAN_HPP_CPP_VERSION
  51324. auto
  51325. # else
  51326. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  51327. # endif
  51328. reflect() const VULKAN_HPP_NOEXCEPT
  51329. {
  51330. return std::tie( sType, pNext, descriptorPoolOverallocation );
  51331. }
  51332. #endif
  51333. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51334. auto operator<=>( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & ) const = default;
  51335. #else
  51336. bool operator==( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  51337. {
  51338. # if defined( VULKAN_HPP_USE_REFLECT )
  51339. return this->reflect() == rhs.reflect();
  51340. # else
  51341. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorPoolOverallocation == rhs.descriptorPoolOverallocation );
  51342. # endif
  51343. }
  51344. bool operator!=( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  51345. {
  51346. return !operator==( rhs );
  51347. }
  51348. #endif
  51349. public:
  51350. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
  51351. void * pNext = {};
  51352. VULKAN_HPP_NAMESPACE::Bool32 descriptorPoolOverallocation = {};
  51353. };
  51354. template <>
  51355. struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV>
  51356. {
  51357. using Type = PhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
  51358. };
  51359. struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE
  51360. {
  51361. using NativeType = VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
  51362. static const bool allowDuplicate = false;
  51363. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
  51364. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51365. VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping_ = {},
  51366. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51367. : pNext( pNext_ )
  51368. , descriptorSetHostMapping( descriptorSetHostMapping_ )
  51369. {
  51370. }
  51371. VULKAN_HPP_CONSTEXPR
  51372. PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51373. PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  51374. : PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE( *reinterpret_cast<PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const *>( &rhs ) )
  51375. {
  51376. }
  51377. PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE &
  51378. operator=( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51379. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51380. PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE & operator=( VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT
  51381. {
  51382. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const *>( &rhs );
  51383. return *this;
  51384. }
  51385. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51386. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  51387. {
  51388. pNext = pNext_;
  51389. return *this;
  51390. }
  51391. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE &
  51392. setDescriptorSetHostMapping( VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping_ ) VULKAN_HPP_NOEXCEPT
  51393. {
  51394. descriptorSetHostMapping = descriptorSetHostMapping_;
  51395. return *this;
  51396. }
  51397. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51398. operator VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const &() const VULKAN_HPP_NOEXCEPT
  51399. {
  51400. return *reinterpret_cast<const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE *>( this );
  51401. }
  51402. operator VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE &() VULKAN_HPP_NOEXCEPT
  51403. {
  51404. return *reinterpret_cast<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE *>( this );
  51405. }
  51406. #if defined( VULKAN_HPP_USE_REFLECT )
  51407. # if 14 <= VULKAN_HPP_CPP_VERSION
  51408. auto
  51409. # else
  51410. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  51411. # endif
  51412. reflect() const VULKAN_HPP_NOEXCEPT
  51413. {
  51414. return std::tie( sType, pNext, descriptorSetHostMapping );
  51415. }
  51416. #endif
  51417. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51418. auto operator<=>( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & ) const = default;
  51419. #else
  51420. bool operator==( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  51421. {
  51422. # if defined( VULKAN_HPP_USE_REFLECT )
  51423. return this->reflect() == rhs.reflect();
  51424. # else
  51425. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorSetHostMapping == rhs.descriptorSetHostMapping );
  51426. # endif
  51427. }
  51428. bool operator!=( PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT
  51429. {
  51430. return !operator==( rhs );
  51431. }
  51432. #endif
  51433. public:
  51434. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
  51435. void * pNext = {};
  51436. VULKAN_HPP_NAMESPACE::Bool32 descriptorSetHostMapping = {};
  51437. };
  51438. template <>
  51439. struct CppType<StructureType, StructureType::ePhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>
  51440. {
  51441. using Type = PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
  51442. };
  51443. struct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
  51444. {
  51445. using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
  51446. static const bool allowDuplicate = false;
  51447. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
  51448. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51449. VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCompute_ = {},
  51450. VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputePipelines_ = {},
  51451. VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputeCaptureReplay_ = {},
  51452. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51453. : pNext( pNext_ )
  51454. , deviceGeneratedCompute( deviceGeneratedCompute_ )
  51455. , deviceGeneratedComputePipelines( deviceGeneratedComputePipelines_ )
  51456. , deviceGeneratedComputeCaptureReplay( deviceGeneratedComputeCaptureReplay_ )
  51457. {
  51458. }
  51459. VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs )
  51460. VULKAN_HPP_NOEXCEPT = default;
  51461. PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  51462. : PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const *>( &rhs ) )
  51463. {
  51464. }
  51465. PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &
  51466. operator=( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51467. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51468. PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &
  51469. operator=( VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  51470. {
  51471. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const *>( &rhs );
  51472. return *this;
  51473. }
  51474. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51475. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  51476. {
  51477. pNext = pNext_;
  51478. return *this;
  51479. }
  51480. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &
  51481. setDeviceGeneratedCompute( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCompute_ ) VULKAN_HPP_NOEXCEPT
  51482. {
  51483. deviceGeneratedCompute = deviceGeneratedCompute_;
  51484. return *this;
  51485. }
  51486. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &
  51487. setDeviceGeneratedComputePipelines( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputePipelines_ ) VULKAN_HPP_NOEXCEPT
  51488. {
  51489. deviceGeneratedComputePipelines = deviceGeneratedComputePipelines_;
  51490. return *this;
  51491. }
  51492. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &
  51493. setDeviceGeneratedComputeCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputeCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  51494. {
  51495. deviceGeneratedComputeCaptureReplay = deviceGeneratedComputeCaptureReplay_;
  51496. return *this;
  51497. }
  51498. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51499. operator VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  51500. {
  51501. return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *>( this );
  51502. }
  51503. operator VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV &() VULKAN_HPP_NOEXCEPT
  51504. {
  51505. return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *>( this );
  51506. }
  51507. #if defined( VULKAN_HPP_USE_REFLECT )
  51508. # if 14 <= VULKAN_HPP_CPP_VERSION
  51509. auto
  51510. # else
  51511. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  51512. void * const &,
  51513. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51514. VULKAN_HPP_NAMESPACE::Bool32 const &,
  51515. VULKAN_HPP_NAMESPACE::Bool32 const &>
  51516. # endif
  51517. reflect() const VULKAN_HPP_NOEXCEPT
  51518. {
  51519. return std::tie( sType, pNext, deviceGeneratedCompute, deviceGeneratedComputePipelines, deviceGeneratedComputeCaptureReplay );
  51520. }
  51521. #endif
  51522. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51523. auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & ) const = default;
  51524. #else
  51525. bool operator==( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  51526. {
  51527. # if defined( VULKAN_HPP_USE_REFLECT )
  51528. return this->reflect() == rhs.reflect();
  51529. # else
  51530. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceGeneratedCompute == rhs.deviceGeneratedCompute ) &&
  51531. ( deviceGeneratedComputePipelines == rhs.deviceGeneratedComputePipelines ) &&
  51532. ( deviceGeneratedComputeCaptureReplay == rhs.deviceGeneratedComputeCaptureReplay );
  51533. # endif
  51534. }
  51535. bool operator!=( PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  51536. {
  51537. return !operator==( rhs );
  51538. }
  51539. #endif
  51540. public:
  51541. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
  51542. void * pNext = {};
  51543. VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCompute = {};
  51544. VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputePipelines = {};
  51545. VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedComputeCaptureReplay = {};
  51546. };
  51547. template <>
  51548. struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV>
  51549. {
  51550. using Type = PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
  51551. };
  51552. struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
  51553. {
  51554. using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  51555. static const bool allowDuplicate = false;
  51556. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  51557. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51558. VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {},
  51559. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51560. : pNext( pNext_ )
  51561. , deviceGeneratedCommands( deviceGeneratedCommands_ )
  51562. {
  51563. }
  51564. VULKAN_HPP_CONSTEXPR
  51565. PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51566. PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  51567. : PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>( &rhs ) )
  51568. {
  51569. }
  51570. PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51571. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51572. PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  51573. {
  51574. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const *>( &rhs );
  51575. return *this;
  51576. }
  51577. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51578. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  51579. {
  51580. pNext = pNext_;
  51581. return *this;
  51582. }
  51583. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV &
  51584. setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT
  51585. {
  51586. deviceGeneratedCommands = deviceGeneratedCommands_;
  51587. return *this;
  51588. }
  51589. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51590. operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  51591. {
  51592. return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV *>( this );
  51593. }
  51594. operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT
  51595. {
  51596. return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV *>( this );
  51597. }
  51598. #if defined( VULKAN_HPP_USE_REFLECT )
  51599. # if 14 <= VULKAN_HPP_CPP_VERSION
  51600. auto
  51601. # else
  51602. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  51603. # endif
  51604. reflect() const VULKAN_HPP_NOEXCEPT
  51605. {
  51606. return std::tie( sType, pNext, deviceGeneratedCommands );
  51607. }
  51608. #endif
  51609. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51610. auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & ) const = default;
  51611. #else
  51612. bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  51613. {
  51614. # if defined( VULKAN_HPP_USE_REFLECT )
  51615. return this->reflect() == rhs.reflect();
  51616. # else
  51617. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceGeneratedCommands == rhs.deviceGeneratedCommands );
  51618. # endif
  51619. }
  51620. bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  51621. {
  51622. return !operator==( rhs );
  51623. }
  51624. #endif
  51625. public:
  51626. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  51627. void * pNext = {};
  51628. VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands = {};
  51629. };
  51630. template <>
  51631. struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
  51632. {
  51633. using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  51634. };
  51635. struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
  51636. {
  51637. using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  51638. static const bool allowDuplicate = false;
  51639. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  51640. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51641. VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( uint32_t maxGraphicsShaderGroupCount_ = {},
  51642. uint32_t maxIndirectSequenceCount_ = {},
  51643. uint32_t maxIndirectCommandsTokenCount_ = {},
  51644. uint32_t maxIndirectCommandsStreamCount_ = {},
  51645. uint32_t maxIndirectCommandsTokenOffset_ = {},
  51646. uint32_t maxIndirectCommandsStreamStride_ = {},
  51647. uint32_t minSequencesCountBufferOffsetAlignment_ = {},
  51648. uint32_t minSequencesIndexBufferOffsetAlignment_ = {},
  51649. uint32_t minIndirectCommandsBufferOffsetAlignment_ = {},
  51650. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51651. : pNext( pNext_ )
  51652. , maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ )
  51653. , maxIndirectSequenceCount( maxIndirectSequenceCount_ )
  51654. , maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ )
  51655. , maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ )
  51656. , maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ )
  51657. , maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ )
  51658. , minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ )
  51659. , minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ )
  51660. , minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ )
  51661. {
  51662. }
  51663. VULKAN_HPP_CONSTEXPR
  51664. PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51665. PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  51666. : PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>( &rhs ) )
  51667. {
  51668. }
  51669. PhysicalDeviceDeviceGeneratedCommandsPropertiesNV &
  51670. operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51671. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51672. PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  51673. {
  51674. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const *>( &rhs );
  51675. return *this;
  51676. }
  51677. operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  51678. {
  51679. return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV *>( this );
  51680. }
  51681. operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT
  51682. {
  51683. return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV *>( this );
  51684. }
  51685. #if defined( VULKAN_HPP_USE_REFLECT )
  51686. # if 14 <= VULKAN_HPP_CPP_VERSION
  51687. auto
  51688. # else
  51689. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  51690. void * const &,
  51691. uint32_t const &,
  51692. uint32_t const &,
  51693. uint32_t const &,
  51694. uint32_t const &,
  51695. uint32_t const &,
  51696. uint32_t const &,
  51697. uint32_t const &,
  51698. uint32_t const &,
  51699. uint32_t const &>
  51700. # endif
  51701. reflect() const VULKAN_HPP_NOEXCEPT
  51702. {
  51703. return std::tie( sType,
  51704. pNext,
  51705. maxGraphicsShaderGroupCount,
  51706. maxIndirectSequenceCount,
  51707. maxIndirectCommandsTokenCount,
  51708. maxIndirectCommandsStreamCount,
  51709. maxIndirectCommandsTokenOffset,
  51710. maxIndirectCommandsStreamStride,
  51711. minSequencesCountBufferOffsetAlignment,
  51712. minSequencesIndexBufferOffsetAlignment,
  51713. minIndirectCommandsBufferOffsetAlignment );
  51714. }
  51715. #endif
  51716. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51717. auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & ) const = default;
  51718. #else
  51719. bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  51720. {
  51721. # if defined( VULKAN_HPP_USE_REFLECT )
  51722. return this->reflect() == rhs.reflect();
  51723. # else
  51724. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxGraphicsShaderGroupCount == rhs.maxGraphicsShaderGroupCount ) &&
  51725. ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount ) && ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount ) &&
  51726. ( maxIndirectCommandsStreamCount == rhs.maxIndirectCommandsStreamCount ) &&
  51727. ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset ) &&
  51728. ( maxIndirectCommandsStreamStride == rhs.maxIndirectCommandsStreamStride ) &&
  51729. ( minSequencesCountBufferOffsetAlignment == rhs.minSequencesCountBufferOffsetAlignment ) &&
  51730. ( minSequencesIndexBufferOffsetAlignment == rhs.minSequencesIndexBufferOffsetAlignment ) &&
  51731. ( minIndirectCommandsBufferOffsetAlignment == rhs.minIndirectCommandsBufferOffsetAlignment );
  51732. # endif
  51733. }
  51734. bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  51735. {
  51736. return !operator==( rhs );
  51737. }
  51738. #endif
  51739. public:
  51740. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  51741. void * pNext = {};
  51742. uint32_t maxGraphicsShaderGroupCount = {};
  51743. uint32_t maxIndirectSequenceCount = {};
  51744. uint32_t maxIndirectCommandsTokenCount = {};
  51745. uint32_t maxIndirectCommandsStreamCount = {};
  51746. uint32_t maxIndirectCommandsTokenOffset = {};
  51747. uint32_t maxIndirectCommandsStreamStride = {};
  51748. uint32_t minSequencesCountBufferOffsetAlignment = {};
  51749. uint32_t minSequencesIndexBufferOffsetAlignment = {};
  51750. uint32_t minIndirectCommandsBufferOffsetAlignment = {};
  51751. };
  51752. template <>
  51753. struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV>
  51754. {
  51755. using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  51756. };
  51757. struct PhysicalDeviceDeviceMemoryReportFeaturesEXT
  51758. {
  51759. using NativeType = VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
  51760. static const bool allowDuplicate = false;
  51761. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
  51762. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51763. VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ = {},
  51764. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51765. : pNext( pNext_ )
  51766. , deviceMemoryReport( deviceMemoryReport_ )
  51767. {
  51768. }
  51769. VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51770. PhysicalDeviceDeviceMemoryReportFeaturesEXT( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51771. : PhysicalDeviceDeviceMemoryReportFeaturesEXT( *reinterpret_cast<PhysicalDeviceDeviceMemoryReportFeaturesEXT const *>( &rhs ) )
  51772. {
  51773. }
  51774. PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51775. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51776. PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51777. {
  51778. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT const *>( &rhs );
  51779. return *this;
  51780. }
  51781. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51782. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceMemoryReportFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  51783. {
  51784. pNext = pNext_;
  51785. return *this;
  51786. }
  51787. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceMemoryReportFeaturesEXT &
  51788. setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT
  51789. {
  51790. deviceMemoryReport = deviceMemoryReport_;
  51791. return *this;
  51792. }
  51793. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51794. operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  51795. {
  51796. return *reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT *>( this );
  51797. }
  51798. operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  51799. {
  51800. return *reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT *>( this );
  51801. }
  51802. #if defined( VULKAN_HPP_USE_REFLECT )
  51803. # if 14 <= VULKAN_HPP_CPP_VERSION
  51804. auto
  51805. # else
  51806. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  51807. # endif
  51808. reflect() const VULKAN_HPP_NOEXCEPT
  51809. {
  51810. return std::tie( sType, pNext, deviceMemoryReport );
  51811. }
  51812. #endif
  51813. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51814. auto operator<=>( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & ) const = default;
  51815. #else
  51816. bool operator==( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51817. {
  51818. # if defined( VULKAN_HPP_USE_REFLECT )
  51819. return this->reflect() == rhs.reflect();
  51820. # else
  51821. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceMemoryReport == rhs.deviceMemoryReport );
  51822. # endif
  51823. }
  51824. bool operator!=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51825. {
  51826. return !operator==( rhs );
  51827. }
  51828. #endif
  51829. public:
  51830. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT;
  51831. void * pNext = {};
  51832. VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport = {};
  51833. };
  51834. template <>
  51835. struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT>
  51836. {
  51837. using Type = PhysicalDeviceDeviceMemoryReportFeaturesEXT;
  51838. };
  51839. struct PhysicalDeviceDiagnosticsConfigFeaturesNV
  51840. {
  51841. using NativeType = VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
  51842. static const bool allowDuplicate = false;
  51843. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
  51844. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51845. VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {},
  51846. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51847. : pNext( pNext_ )
  51848. , diagnosticsConfig( diagnosticsConfig_ )
  51849. {
  51850. }
  51851. VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51852. PhysicalDeviceDiagnosticsConfigFeaturesNV( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  51853. : PhysicalDeviceDiagnosticsConfigFeaturesNV( *reinterpret_cast<PhysicalDeviceDiagnosticsConfigFeaturesNV const *>( &rhs ) )
  51854. {
  51855. }
  51856. PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51857. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51858. PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  51859. {
  51860. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV const *>( &rhs );
  51861. return *this;
  51862. }
  51863. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  51864. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  51865. {
  51866. pNext = pNext_;
  51867. return *this;
  51868. }
  51869. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiagnosticsConfigFeaturesNV &
  51870. setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT
  51871. {
  51872. diagnosticsConfig = diagnosticsConfig_;
  51873. return *this;
  51874. }
  51875. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  51876. operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  51877. {
  51878. return *reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV *>( this );
  51879. }
  51880. operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT
  51881. {
  51882. return *reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV *>( this );
  51883. }
  51884. #if defined( VULKAN_HPP_USE_REFLECT )
  51885. # if 14 <= VULKAN_HPP_CPP_VERSION
  51886. auto
  51887. # else
  51888. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  51889. # endif
  51890. reflect() const VULKAN_HPP_NOEXCEPT
  51891. {
  51892. return std::tie( sType, pNext, diagnosticsConfig );
  51893. }
  51894. #endif
  51895. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51896. auto operator<=>( PhysicalDeviceDiagnosticsConfigFeaturesNV const & ) const = default;
  51897. #else
  51898. bool operator==( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  51899. {
  51900. # if defined( VULKAN_HPP_USE_REFLECT )
  51901. return this->reflect() == rhs.reflect();
  51902. # else
  51903. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( diagnosticsConfig == rhs.diagnosticsConfig );
  51904. # endif
  51905. }
  51906. bool operator!=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  51907. {
  51908. return !operator==( rhs );
  51909. }
  51910. #endif
  51911. public:
  51912. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV;
  51913. void * pNext = {};
  51914. VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig = {};
  51915. };
  51916. template <>
  51917. struct CppType<StructureType, StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV>
  51918. {
  51919. using Type = PhysicalDeviceDiagnosticsConfigFeaturesNV;
  51920. };
  51921. struct PhysicalDeviceDiscardRectanglePropertiesEXT
  51922. {
  51923. using NativeType = VkPhysicalDeviceDiscardRectanglePropertiesEXT;
  51924. static const bool allowDuplicate = false;
  51925. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
  51926. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51927. VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( uint32_t maxDiscardRectangles_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51928. : pNext( pNext_ )
  51929. , maxDiscardRectangles( maxDiscardRectangles_ )
  51930. {
  51931. }
  51932. VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51933. PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51934. : PhysicalDeviceDiscardRectanglePropertiesEXT( *reinterpret_cast<PhysicalDeviceDiscardRectanglePropertiesEXT const *>( &rhs ) )
  51935. {
  51936. }
  51937. PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  51938. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  51939. PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  51940. {
  51941. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT const *>( &rhs );
  51942. return *this;
  51943. }
  51944. operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  51945. {
  51946. return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT *>( this );
  51947. }
  51948. operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT
  51949. {
  51950. return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT *>( this );
  51951. }
  51952. #if defined( VULKAN_HPP_USE_REFLECT )
  51953. # if 14 <= VULKAN_HPP_CPP_VERSION
  51954. auto
  51955. # else
  51956. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  51957. # endif
  51958. reflect() const VULKAN_HPP_NOEXCEPT
  51959. {
  51960. return std::tie( sType, pNext, maxDiscardRectangles );
  51961. }
  51962. #endif
  51963. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  51964. auto operator<=>( PhysicalDeviceDiscardRectanglePropertiesEXT const & ) const = default;
  51965. #else
  51966. bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51967. {
  51968. # if defined( VULKAN_HPP_USE_REFLECT )
  51969. return this->reflect() == rhs.reflect();
  51970. # else
  51971. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxDiscardRectangles == rhs.maxDiscardRectangles );
  51972. # endif
  51973. }
  51974. bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  51975. {
  51976. return !operator==( rhs );
  51977. }
  51978. #endif
  51979. public:
  51980. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
  51981. void * pNext = {};
  51982. uint32_t maxDiscardRectangles = {};
  51983. };
  51984. template <>
  51985. struct CppType<StructureType, StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT>
  51986. {
  51987. using Type = PhysicalDeviceDiscardRectanglePropertiesEXT;
  51988. };
  51989. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  51990. struct PhysicalDeviceDisplacementMicromapFeaturesNV
  51991. {
  51992. using NativeType = VkPhysicalDeviceDisplacementMicromapFeaturesNV;
  51993. static const bool allowDuplicate = false;
  51994. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDisplacementMicromapFeaturesNV;
  51995. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  51996. VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 displacementMicromap_ = {},
  51997. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  51998. : pNext( pNext_ )
  51999. , displacementMicromap( displacementMicromap_ )
  52000. {
  52001. }
  52002. VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapFeaturesNV( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52003. PhysicalDeviceDisplacementMicromapFeaturesNV( VkPhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52004. : PhysicalDeviceDisplacementMicromapFeaturesNV( *reinterpret_cast<PhysicalDeviceDisplacementMicromapFeaturesNV const *>( &rhs ) )
  52005. {
  52006. }
  52007. PhysicalDeviceDisplacementMicromapFeaturesNV & operator=( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52008. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52009. PhysicalDeviceDisplacementMicromapFeaturesNV & operator=( VkPhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52010. {
  52011. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV const *>( &rhs );
  52012. return *this;
  52013. }
  52014. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  52015. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDisplacementMicromapFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52016. {
  52017. pNext = pNext_;
  52018. return *this;
  52019. }
  52020. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDisplacementMicromapFeaturesNV &
  52021. setDisplacementMicromap( VULKAN_HPP_NAMESPACE::Bool32 displacementMicromap_ ) VULKAN_HPP_NOEXCEPT
  52022. {
  52023. displacementMicromap = displacementMicromap_;
  52024. return *this;
  52025. }
  52026. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52027. operator VkPhysicalDeviceDisplacementMicromapFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  52028. {
  52029. return *reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapFeaturesNV *>( this );
  52030. }
  52031. operator VkPhysicalDeviceDisplacementMicromapFeaturesNV &() VULKAN_HPP_NOEXCEPT
  52032. {
  52033. return *reinterpret_cast<VkPhysicalDeviceDisplacementMicromapFeaturesNV *>( this );
  52034. }
  52035. # if defined( VULKAN_HPP_USE_REFLECT )
  52036. # if 14 <= VULKAN_HPP_CPP_VERSION
  52037. auto
  52038. # else
  52039. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  52040. # endif
  52041. reflect() const VULKAN_HPP_NOEXCEPT
  52042. {
  52043. return std::tie( sType, pNext, displacementMicromap );
  52044. }
  52045. # endif
  52046. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52047. auto operator<=>( PhysicalDeviceDisplacementMicromapFeaturesNV const & ) const = default;
  52048. # else
  52049. bool operator==( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52050. {
  52051. # if defined( VULKAN_HPP_USE_REFLECT )
  52052. return this->reflect() == rhs.reflect();
  52053. # else
  52054. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displacementMicromap == rhs.displacementMicromap );
  52055. # endif
  52056. }
  52057. bool operator!=( PhysicalDeviceDisplacementMicromapFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52058. {
  52059. return !operator==( rhs );
  52060. }
  52061. # endif
  52062. public:
  52063. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDisplacementMicromapFeaturesNV;
  52064. void * pNext = {};
  52065. VULKAN_HPP_NAMESPACE::Bool32 displacementMicromap = {};
  52066. };
  52067. template <>
  52068. struct CppType<StructureType, StructureType::ePhysicalDeviceDisplacementMicromapFeaturesNV>
  52069. {
  52070. using Type = PhysicalDeviceDisplacementMicromapFeaturesNV;
  52071. };
  52072. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  52073. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  52074. struct PhysicalDeviceDisplacementMicromapPropertiesNV
  52075. {
  52076. using NativeType = VkPhysicalDeviceDisplacementMicromapPropertiesNV;
  52077. static const bool allowDuplicate = false;
  52078. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDisplacementMicromapPropertiesNV;
  52079. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52080. VULKAN_HPP_CONSTEXPR PhysicalDeviceDisplacementMicromapPropertiesNV( uint32_t maxDisplacementMicromapSubdivisionLevel_ = {},
  52081. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52082. : pNext( pNext_ )
  52083. , maxDisplacementMicromapSubdivisionLevel( maxDisplacementMicromapSubdivisionLevel_ )
  52084. {
  52085. }
  52086. VULKAN_HPP_CONSTEXPR
  52087. PhysicalDeviceDisplacementMicromapPropertiesNV( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52088. PhysicalDeviceDisplacementMicromapPropertiesNV( VkPhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52089. : PhysicalDeviceDisplacementMicromapPropertiesNV( *reinterpret_cast<PhysicalDeviceDisplacementMicromapPropertiesNV const *>( &rhs ) )
  52090. {
  52091. }
  52092. PhysicalDeviceDisplacementMicromapPropertiesNV & operator=( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52093. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52094. PhysicalDeviceDisplacementMicromapPropertiesNV & operator=( VkPhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52095. {
  52096. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV const *>( &rhs );
  52097. return *this;
  52098. }
  52099. operator VkPhysicalDeviceDisplacementMicromapPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  52100. {
  52101. return *reinterpret_cast<const VkPhysicalDeviceDisplacementMicromapPropertiesNV *>( this );
  52102. }
  52103. operator VkPhysicalDeviceDisplacementMicromapPropertiesNV &() VULKAN_HPP_NOEXCEPT
  52104. {
  52105. return *reinterpret_cast<VkPhysicalDeviceDisplacementMicromapPropertiesNV *>( this );
  52106. }
  52107. # if defined( VULKAN_HPP_USE_REFLECT )
  52108. # if 14 <= VULKAN_HPP_CPP_VERSION
  52109. auto
  52110. # else
  52111. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  52112. # endif
  52113. reflect() const VULKAN_HPP_NOEXCEPT
  52114. {
  52115. return std::tie( sType, pNext, maxDisplacementMicromapSubdivisionLevel );
  52116. }
  52117. # endif
  52118. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52119. auto operator<=>( PhysicalDeviceDisplacementMicromapPropertiesNV const & ) const = default;
  52120. # else
  52121. bool operator==( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52122. {
  52123. # if defined( VULKAN_HPP_USE_REFLECT )
  52124. return this->reflect() == rhs.reflect();
  52125. # else
  52126. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxDisplacementMicromapSubdivisionLevel == rhs.maxDisplacementMicromapSubdivisionLevel );
  52127. # endif
  52128. }
  52129. bool operator!=( PhysicalDeviceDisplacementMicromapPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52130. {
  52131. return !operator==( rhs );
  52132. }
  52133. # endif
  52134. public:
  52135. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDisplacementMicromapPropertiesNV;
  52136. void * pNext = {};
  52137. uint32_t maxDisplacementMicromapSubdivisionLevel = {};
  52138. };
  52139. template <>
  52140. struct CppType<StructureType, StructureType::ePhysicalDeviceDisplacementMicromapPropertiesNV>
  52141. {
  52142. using Type = PhysicalDeviceDisplacementMicromapPropertiesNV;
  52143. };
  52144. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  52145. struct PhysicalDeviceDriverProperties
  52146. {
  52147. using NativeType = VkPhysicalDeviceDriverProperties;
  52148. static const bool allowDuplicate = false;
  52149. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDriverProperties;
  52150. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52151. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary,
  52152. std::array<char, VK_MAX_DRIVER_NAME_SIZE> const & driverName_ = {},
  52153. std::array<char, VK_MAX_DRIVER_INFO_SIZE> const & driverInfo_ = {},
  52154. VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {},
  52155. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52156. : pNext( pNext_ )
  52157. , driverID( driverID_ )
  52158. , driverName( driverName_ )
  52159. , driverInfo( driverInfo_ )
  52160. , conformanceVersion( conformanceVersion_ )
  52161. {
  52162. }
  52163. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52164. PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  52165. : PhysicalDeviceDriverProperties( *reinterpret_cast<PhysicalDeviceDriverProperties const *>( &rhs ) )
  52166. {
  52167. }
  52168. PhysicalDeviceDriverProperties & operator=( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52169. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52170. PhysicalDeviceDriverProperties & operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  52171. {
  52172. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties const *>( &rhs );
  52173. return *this;
  52174. }
  52175. operator VkPhysicalDeviceDriverProperties const &() const VULKAN_HPP_NOEXCEPT
  52176. {
  52177. return *reinterpret_cast<const VkPhysicalDeviceDriverProperties *>( this );
  52178. }
  52179. operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT
  52180. {
  52181. return *reinterpret_cast<VkPhysicalDeviceDriverProperties *>( this );
  52182. }
  52183. #if defined( VULKAN_HPP_USE_REFLECT )
  52184. # if 14 <= VULKAN_HPP_CPP_VERSION
  52185. auto
  52186. # else
  52187. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  52188. void * const &,
  52189. VULKAN_HPP_NAMESPACE::DriverId const &,
  52190. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> const &,
  52191. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> const &,
  52192. VULKAN_HPP_NAMESPACE::ConformanceVersion const &>
  52193. # endif
  52194. reflect() const VULKAN_HPP_NOEXCEPT
  52195. {
  52196. return std::tie( sType, pNext, driverID, driverName, driverInfo, conformanceVersion );
  52197. }
  52198. #endif
  52199. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52200. auto operator<=>( PhysicalDeviceDriverProperties const & ) const = default;
  52201. #else
  52202. bool operator==( PhysicalDeviceDriverProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  52203. {
  52204. # if defined( VULKAN_HPP_USE_REFLECT )
  52205. return this->reflect() == rhs.reflect();
  52206. # else
  52207. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( driverID == rhs.driverID ) && ( driverName == rhs.driverName ) &&
  52208. ( driverInfo == rhs.driverInfo ) && ( conformanceVersion == rhs.conformanceVersion );
  52209. # endif
  52210. }
  52211. bool operator!=( PhysicalDeviceDriverProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  52212. {
  52213. return !operator==( rhs );
  52214. }
  52215. #endif
  52216. public:
  52217. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties;
  52218. void * pNext = {};
  52219. VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
  52220. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
  52221. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
  52222. VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
  52223. };
  52224. template <>
  52225. struct CppType<StructureType, StructureType::ePhysicalDeviceDriverProperties>
  52226. {
  52227. using Type = PhysicalDeviceDriverProperties;
  52228. };
  52229. using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
  52230. struct PhysicalDeviceDrmPropertiesEXT
  52231. {
  52232. using NativeType = VkPhysicalDeviceDrmPropertiesEXT;
  52233. static const bool allowDuplicate = false;
  52234. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDrmPropertiesEXT;
  52235. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52236. VULKAN_HPP_CONSTEXPR PhysicalDeviceDrmPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 hasPrimary_ = {},
  52237. VULKAN_HPP_NAMESPACE::Bool32 hasRender_ = {},
  52238. int64_t primaryMajor_ = {},
  52239. int64_t primaryMinor_ = {},
  52240. int64_t renderMajor_ = {},
  52241. int64_t renderMinor_ = {},
  52242. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52243. : pNext( pNext_ )
  52244. , hasPrimary( hasPrimary_ )
  52245. , hasRender( hasRender_ )
  52246. , primaryMajor( primaryMajor_ )
  52247. , primaryMinor( primaryMinor_ )
  52248. , renderMajor( renderMajor_ )
  52249. , renderMinor( renderMinor_ )
  52250. {
  52251. }
  52252. VULKAN_HPP_CONSTEXPR PhysicalDeviceDrmPropertiesEXT( PhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52253. PhysicalDeviceDrmPropertiesEXT( VkPhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52254. : PhysicalDeviceDrmPropertiesEXT( *reinterpret_cast<PhysicalDeviceDrmPropertiesEXT const *>( &rhs ) )
  52255. {
  52256. }
  52257. PhysicalDeviceDrmPropertiesEXT & operator=( PhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52258. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52259. PhysicalDeviceDrmPropertiesEXT & operator=( VkPhysicalDeviceDrmPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52260. {
  52261. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT const *>( &rhs );
  52262. return *this;
  52263. }
  52264. operator VkPhysicalDeviceDrmPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  52265. {
  52266. return *reinterpret_cast<const VkPhysicalDeviceDrmPropertiesEXT *>( this );
  52267. }
  52268. operator VkPhysicalDeviceDrmPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  52269. {
  52270. return *reinterpret_cast<VkPhysicalDeviceDrmPropertiesEXT *>( this );
  52271. }
  52272. #if defined( VULKAN_HPP_USE_REFLECT )
  52273. # if 14 <= VULKAN_HPP_CPP_VERSION
  52274. auto
  52275. # else
  52276. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  52277. void * const &,
  52278. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52279. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52280. int64_t const &,
  52281. int64_t const &,
  52282. int64_t const &,
  52283. int64_t const &>
  52284. # endif
  52285. reflect() const VULKAN_HPP_NOEXCEPT
  52286. {
  52287. return std::tie( sType, pNext, hasPrimary, hasRender, primaryMajor, primaryMinor, renderMajor, renderMinor );
  52288. }
  52289. #endif
  52290. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52291. auto operator<=>( PhysicalDeviceDrmPropertiesEXT const & ) const = default;
  52292. #else
  52293. bool operator==( PhysicalDeviceDrmPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52294. {
  52295. # if defined( VULKAN_HPP_USE_REFLECT )
  52296. return this->reflect() == rhs.reflect();
  52297. # else
  52298. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hasPrimary == rhs.hasPrimary ) && ( hasRender == rhs.hasRender ) &&
  52299. ( primaryMajor == rhs.primaryMajor ) && ( primaryMinor == rhs.primaryMinor ) && ( renderMajor == rhs.renderMajor ) &&
  52300. ( renderMinor == rhs.renderMinor );
  52301. # endif
  52302. }
  52303. bool operator!=( PhysicalDeviceDrmPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52304. {
  52305. return !operator==( rhs );
  52306. }
  52307. #endif
  52308. public:
  52309. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDrmPropertiesEXT;
  52310. void * pNext = {};
  52311. VULKAN_HPP_NAMESPACE::Bool32 hasPrimary = {};
  52312. VULKAN_HPP_NAMESPACE::Bool32 hasRender = {};
  52313. int64_t primaryMajor = {};
  52314. int64_t primaryMinor = {};
  52315. int64_t renderMajor = {};
  52316. int64_t renderMinor = {};
  52317. };
  52318. template <>
  52319. struct CppType<StructureType, StructureType::ePhysicalDeviceDrmPropertiesEXT>
  52320. {
  52321. using Type = PhysicalDeviceDrmPropertiesEXT;
  52322. };
  52323. struct PhysicalDeviceDynamicRenderingFeatures
  52324. {
  52325. using NativeType = VkPhysicalDeviceDynamicRenderingFeatures;
  52326. static const bool allowDuplicate = false;
  52327. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDynamicRenderingFeatures;
  52328. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52329. VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingFeatures( VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ = {},
  52330. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52331. : pNext( pNext_ )
  52332. , dynamicRendering( dynamicRendering_ )
  52333. {
  52334. }
  52335. VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingFeatures( PhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52336. PhysicalDeviceDynamicRenderingFeatures( VkPhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  52337. : PhysicalDeviceDynamicRenderingFeatures( *reinterpret_cast<PhysicalDeviceDynamicRenderingFeatures const *>( &rhs ) )
  52338. {
  52339. }
  52340. PhysicalDeviceDynamicRenderingFeatures & operator=( PhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52341. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52342. PhysicalDeviceDynamicRenderingFeatures & operator=( VkPhysicalDeviceDynamicRenderingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  52343. {
  52344. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures const *>( &rhs );
  52345. return *this;
  52346. }
  52347. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  52348. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52349. {
  52350. pNext = pNext_;
  52351. return *this;
  52352. }
  52353. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingFeatures & setDynamicRendering( VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ ) VULKAN_HPP_NOEXCEPT
  52354. {
  52355. dynamicRendering = dynamicRendering_;
  52356. return *this;
  52357. }
  52358. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52359. operator VkPhysicalDeviceDynamicRenderingFeatures const &() const VULKAN_HPP_NOEXCEPT
  52360. {
  52361. return *reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures *>( this );
  52362. }
  52363. operator VkPhysicalDeviceDynamicRenderingFeatures &() VULKAN_HPP_NOEXCEPT
  52364. {
  52365. return *reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeatures *>( this );
  52366. }
  52367. #if defined( VULKAN_HPP_USE_REFLECT )
  52368. # if 14 <= VULKAN_HPP_CPP_VERSION
  52369. auto
  52370. # else
  52371. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  52372. # endif
  52373. reflect() const VULKAN_HPP_NOEXCEPT
  52374. {
  52375. return std::tie( sType, pNext, dynamicRendering );
  52376. }
  52377. #endif
  52378. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52379. auto operator<=>( PhysicalDeviceDynamicRenderingFeatures const & ) const = default;
  52380. #else
  52381. bool operator==( PhysicalDeviceDynamicRenderingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  52382. {
  52383. # if defined( VULKAN_HPP_USE_REFLECT )
  52384. return this->reflect() == rhs.reflect();
  52385. # else
  52386. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dynamicRendering == rhs.dynamicRendering );
  52387. # endif
  52388. }
  52389. bool operator!=( PhysicalDeviceDynamicRenderingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  52390. {
  52391. return !operator==( rhs );
  52392. }
  52393. #endif
  52394. public:
  52395. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDynamicRenderingFeatures;
  52396. void * pNext = {};
  52397. VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering = {};
  52398. };
  52399. template <>
  52400. struct CppType<StructureType, StructureType::ePhysicalDeviceDynamicRenderingFeatures>
  52401. {
  52402. using Type = PhysicalDeviceDynamicRenderingFeatures;
  52403. };
  52404. using PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures;
  52405. struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
  52406. {
  52407. using NativeType = VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
  52408. static const bool allowDuplicate = false;
  52409. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
  52410. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52411. VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 dynamicRenderingUnusedAttachments_ = {},
  52412. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52413. : pNext( pNext_ )
  52414. , dynamicRenderingUnusedAttachments( dynamicRenderingUnusedAttachments_ )
  52415. {
  52416. }
  52417. VULKAN_HPP_CONSTEXPR PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs )
  52418. VULKAN_HPP_NOEXCEPT = default;
  52419. PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT( VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52420. : PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(
  52421. *reinterpret_cast<PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const *>( &rhs ) )
  52422. {
  52423. }
  52424. PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT &
  52425. operator=( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52426. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52427. PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT &
  52428. operator=( VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52429. {
  52430. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const *>( &rhs );
  52431. return *this;
  52432. }
  52433. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  52434. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52435. {
  52436. pNext = pNext_;
  52437. return *this;
  52438. }
  52439. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT &
  52440. setDynamicRenderingUnusedAttachments( VULKAN_HPP_NAMESPACE::Bool32 dynamicRenderingUnusedAttachments_ ) VULKAN_HPP_NOEXCEPT
  52441. {
  52442. dynamicRenderingUnusedAttachments = dynamicRenderingUnusedAttachments_;
  52443. return *this;
  52444. }
  52445. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52446. operator VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  52447. {
  52448. return *reinterpret_cast<const VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT *>( this );
  52449. }
  52450. operator VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  52451. {
  52452. return *reinterpret_cast<VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT *>( this );
  52453. }
  52454. #if defined( VULKAN_HPP_USE_REFLECT )
  52455. # if 14 <= VULKAN_HPP_CPP_VERSION
  52456. auto
  52457. # else
  52458. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  52459. # endif
  52460. reflect() const VULKAN_HPP_NOEXCEPT
  52461. {
  52462. return std::tie( sType, pNext, dynamicRenderingUnusedAttachments );
  52463. }
  52464. #endif
  52465. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52466. auto operator<=>( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & ) const = default;
  52467. #else
  52468. bool operator==( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52469. {
  52470. # if defined( VULKAN_HPP_USE_REFLECT )
  52471. return this->reflect() == rhs.reflect();
  52472. # else
  52473. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dynamicRenderingUnusedAttachments == rhs.dynamicRenderingUnusedAttachments );
  52474. # endif
  52475. }
  52476. bool operator!=( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52477. {
  52478. return !operator==( rhs );
  52479. }
  52480. #endif
  52481. public:
  52482. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
  52483. void * pNext = {};
  52484. VULKAN_HPP_NAMESPACE::Bool32 dynamicRenderingUnusedAttachments = {};
  52485. };
  52486. template <>
  52487. struct CppType<StructureType, StructureType::ePhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT>
  52488. {
  52489. using Type = PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
  52490. };
  52491. struct PhysicalDeviceExclusiveScissorFeaturesNV
  52492. {
  52493. using NativeType = VkPhysicalDeviceExclusiveScissorFeaturesNV;
  52494. static const bool allowDuplicate = false;
  52495. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
  52496. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52497. VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {},
  52498. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52499. : pNext( pNext_ )
  52500. , exclusiveScissor( exclusiveScissor_ )
  52501. {
  52502. }
  52503. VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52504. PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52505. : PhysicalDeviceExclusiveScissorFeaturesNV( *reinterpret_cast<PhysicalDeviceExclusiveScissorFeaturesNV const *>( &rhs ) )
  52506. {
  52507. }
  52508. PhysicalDeviceExclusiveScissorFeaturesNV & operator=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52509. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52510. PhysicalDeviceExclusiveScissorFeaturesNV & operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  52511. {
  52512. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV const *>( &rhs );
  52513. return *this;
  52514. }
  52515. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  52516. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52517. {
  52518. pNext = pNext_;
  52519. return *this;
  52520. }
  52521. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT
  52522. {
  52523. exclusiveScissor = exclusiveScissor_;
  52524. return *this;
  52525. }
  52526. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52527. operator VkPhysicalDeviceExclusiveScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  52528. {
  52529. return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV *>( this );
  52530. }
  52531. operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
  52532. {
  52533. return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV *>( this );
  52534. }
  52535. #if defined( VULKAN_HPP_USE_REFLECT )
  52536. # if 14 <= VULKAN_HPP_CPP_VERSION
  52537. auto
  52538. # else
  52539. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  52540. # endif
  52541. reflect() const VULKAN_HPP_NOEXCEPT
  52542. {
  52543. return std::tie( sType, pNext, exclusiveScissor );
  52544. }
  52545. #endif
  52546. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52547. auto operator<=>( PhysicalDeviceExclusiveScissorFeaturesNV const & ) const = default;
  52548. #else
  52549. bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52550. {
  52551. # if defined( VULKAN_HPP_USE_REFLECT )
  52552. return this->reflect() == rhs.reflect();
  52553. # else
  52554. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( exclusiveScissor == rhs.exclusiveScissor );
  52555. # endif
  52556. }
  52557. bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  52558. {
  52559. return !operator==( rhs );
  52560. }
  52561. #endif
  52562. public:
  52563. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
  52564. void * pNext = {};
  52565. VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {};
  52566. };
  52567. template <>
  52568. struct CppType<StructureType, StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV>
  52569. {
  52570. using Type = PhysicalDeviceExclusiveScissorFeaturesNV;
  52571. };
  52572. struct PhysicalDeviceExtendedDynamicState2FeaturesEXT
  52573. {
  52574. using NativeType = VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
  52575. static const bool allowDuplicate = false;
  52576. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT;
  52577. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52578. VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState2FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2_ = {},
  52579. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp_ = {},
  52580. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints_ = {},
  52581. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52582. : pNext( pNext_ )
  52583. , extendedDynamicState2( extendedDynamicState2_ )
  52584. , extendedDynamicState2LogicOp( extendedDynamicState2LogicOp_ )
  52585. , extendedDynamicState2PatchControlPoints( extendedDynamicState2PatchControlPoints_ )
  52586. {
  52587. }
  52588. VULKAN_HPP_CONSTEXPR
  52589. PhysicalDeviceExtendedDynamicState2FeaturesEXT( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52590. PhysicalDeviceExtendedDynamicState2FeaturesEXT( VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52591. : PhysicalDeviceExtendedDynamicState2FeaturesEXT( *reinterpret_cast<PhysicalDeviceExtendedDynamicState2FeaturesEXT const *>( &rhs ) )
  52592. {
  52593. }
  52594. PhysicalDeviceExtendedDynamicState2FeaturesEXT & operator=( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52595. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52596. PhysicalDeviceExtendedDynamicState2FeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52597. {
  52598. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT const *>( &rhs );
  52599. return *this;
  52600. }
  52601. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  52602. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52603. {
  52604. pNext = pNext_;
  52605. return *this;
  52606. }
  52607. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT &
  52608. setExtendedDynamicState2( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2_ ) VULKAN_HPP_NOEXCEPT
  52609. {
  52610. extendedDynamicState2 = extendedDynamicState2_;
  52611. return *this;
  52612. }
  52613. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT &
  52614. setExtendedDynamicState2LogicOp( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp_ ) VULKAN_HPP_NOEXCEPT
  52615. {
  52616. extendedDynamicState2LogicOp = extendedDynamicState2LogicOp_;
  52617. return *this;
  52618. }
  52619. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT &
  52620. setExtendedDynamicState2PatchControlPoints( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints_ ) VULKAN_HPP_NOEXCEPT
  52621. {
  52622. extendedDynamicState2PatchControlPoints = extendedDynamicState2PatchControlPoints_;
  52623. return *this;
  52624. }
  52625. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52626. operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  52627. {
  52628. return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *>( this );
  52629. }
  52630. operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  52631. {
  52632. return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *>( this );
  52633. }
  52634. #if defined( VULKAN_HPP_USE_REFLECT )
  52635. # if 14 <= VULKAN_HPP_CPP_VERSION
  52636. auto
  52637. # else
  52638. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  52639. void * const &,
  52640. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52641. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52642. VULKAN_HPP_NAMESPACE::Bool32 const &>
  52643. # endif
  52644. reflect() const VULKAN_HPP_NOEXCEPT
  52645. {
  52646. return std::tie( sType, pNext, extendedDynamicState2, extendedDynamicState2LogicOp, extendedDynamicState2PatchControlPoints );
  52647. }
  52648. #endif
  52649. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  52650. auto operator<=>( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & ) const = default;
  52651. #else
  52652. bool operator==( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52653. {
  52654. # if defined( VULKAN_HPP_USE_REFLECT )
  52655. return this->reflect() == rhs.reflect();
  52656. # else
  52657. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( extendedDynamicState2 == rhs.extendedDynamicState2 ) &&
  52658. ( extendedDynamicState2LogicOp == rhs.extendedDynamicState2LogicOp ) &&
  52659. ( extendedDynamicState2PatchControlPoints == rhs.extendedDynamicState2PatchControlPoints );
  52660. # endif
  52661. }
  52662. bool operator!=( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  52663. {
  52664. return !operator==( rhs );
  52665. }
  52666. #endif
  52667. public:
  52668. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT;
  52669. void * pNext = {};
  52670. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2 = {};
  52671. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp = {};
  52672. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints = {};
  52673. };
  52674. template <>
  52675. struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT>
  52676. {
  52677. using Type = PhysicalDeviceExtendedDynamicState2FeaturesEXT;
  52678. };
  52679. struct PhysicalDeviceExtendedDynamicState3FeaturesEXT
  52680. {
  52681. using NativeType = VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
  52682. static const bool allowDuplicate = false;
  52683. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicState3FeaturesEXT;
  52684. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  52685. VULKAN_HPP_CONSTEXPR
  52686. PhysicalDeviceExtendedDynamicState3FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3TessellationDomainOrigin_ = {},
  52687. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClampEnable_ = {},
  52688. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3PolygonMode_ = {},
  52689. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationSamples_ = {},
  52690. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleMask_ = {},
  52691. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToCoverageEnable_ = {},
  52692. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToOneEnable_ = {},
  52693. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LogicOpEnable_ = {},
  52694. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEnable_ = {},
  52695. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEquation_ = {},
  52696. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorWriteMask_ = {},
  52697. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationStream_ = {},
  52698. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ConservativeRasterizationMode_ = {},
  52699. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ExtraPrimitiveOverestimationSize_ = {},
  52700. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipEnable_ = {},
  52701. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleLocationsEnable_ = {},
  52702. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendAdvanced_ = {},
  52703. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ProvokingVertexMode_ = {},
  52704. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineRasterizationMode_ = {},
  52705. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineStippleEnable_ = {},
  52706. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipNegativeOneToOne_ = {},
  52707. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportWScalingEnable_ = {},
  52708. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportSwizzle_ = {},
  52709. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorEnable_ = {},
  52710. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorLocation_ = {},
  52711. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationMode_ = {},
  52712. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTableEnable_ = {},
  52713. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTable_ = {},
  52714. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageReductionMode_ = {},
  52715. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RepresentativeFragmentTestEnable_ = {},
  52716. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ShadingRateImageEnable_ = {},
  52717. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  52718. : pNext( pNext_ )
  52719. , extendedDynamicState3TessellationDomainOrigin( extendedDynamicState3TessellationDomainOrigin_ )
  52720. , extendedDynamicState3DepthClampEnable( extendedDynamicState3DepthClampEnable_ )
  52721. , extendedDynamicState3PolygonMode( extendedDynamicState3PolygonMode_ )
  52722. , extendedDynamicState3RasterizationSamples( extendedDynamicState3RasterizationSamples_ )
  52723. , extendedDynamicState3SampleMask( extendedDynamicState3SampleMask_ )
  52724. , extendedDynamicState3AlphaToCoverageEnable( extendedDynamicState3AlphaToCoverageEnable_ )
  52725. , extendedDynamicState3AlphaToOneEnable( extendedDynamicState3AlphaToOneEnable_ )
  52726. , extendedDynamicState3LogicOpEnable( extendedDynamicState3LogicOpEnable_ )
  52727. , extendedDynamicState3ColorBlendEnable( extendedDynamicState3ColorBlendEnable_ )
  52728. , extendedDynamicState3ColorBlendEquation( extendedDynamicState3ColorBlendEquation_ )
  52729. , extendedDynamicState3ColorWriteMask( extendedDynamicState3ColorWriteMask_ )
  52730. , extendedDynamicState3RasterizationStream( extendedDynamicState3RasterizationStream_ )
  52731. , extendedDynamicState3ConservativeRasterizationMode( extendedDynamicState3ConservativeRasterizationMode_ )
  52732. , extendedDynamicState3ExtraPrimitiveOverestimationSize( extendedDynamicState3ExtraPrimitiveOverestimationSize_ )
  52733. , extendedDynamicState3DepthClipEnable( extendedDynamicState3DepthClipEnable_ )
  52734. , extendedDynamicState3SampleLocationsEnable( extendedDynamicState3SampleLocationsEnable_ )
  52735. , extendedDynamicState3ColorBlendAdvanced( extendedDynamicState3ColorBlendAdvanced_ )
  52736. , extendedDynamicState3ProvokingVertexMode( extendedDynamicState3ProvokingVertexMode_ )
  52737. , extendedDynamicState3LineRasterizationMode( extendedDynamicState3LineRasterizationMode_ )
  52738. , extendedDynamicState3LineStippleEnable( extendedDynamicState3LineStippleEnable_ )
  52739. , extendedDynamicState3DepthClipNegativeOneToOne( extendedDynamicState3DepthClipNegativeOneToOne_ )
  52740. , extendedDynamicState3ViewportWScalingEnable( extendedDynamicState3ViewportWScalingEnable_ )
  52741. , extendedDynamicState3ViewportSwizzle( extendedDynamicState3ViewportSwizzle_ )
  52742. , extendedDynamicState3CoverageToColorEnable( extendedDynamicState3CoverageToColorEnable_ )
  52743. , extendedDynamicState3CoverageToColorLocation( extendedDynamicState3CoverageToColorLocation_ )
  52744. , extendedDynamicState3CoverageModulationMode( extendedDynamicState3CoverageModulationMode_ )
  52745. , extendedDynamicState3CoverageModulationTableEnable( extendedDynamicState3CoverageModulationTableEnable_ )
  52746. , extendedDynamicState3CoverageModulationTable( extendedDynamicState3CoverageModulationTable_ )
  52747. , extendedDynamicState3CoverageReductionMode( extendedDynamicState3CoverageReductionMode_ )
  52748. , extendedDynamicState3RepresentativeFragmentTestEnable( extendedDynamicState3RepresentativeFragmentTestEnable_ )
  52749. , extendedDynamicState3ShadingRateImageEnable( extendedDynamicState3ShadingRateImageEnable_ )
  52750. {
  52751. }
  52752. VULKAN_HPP_CONSTEXPR
  52753. PhysicalDeviceExtendedDynamicState3FeaturesEXT( PhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52754. PhysicalDeviceExtendedDynamicState3FeaturesEXT( VkPhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52755. : PhysicalDeviceExtendedDynamicState3FeaturesEXT( *reinterpret_cast<PhysicalDeviceExtendedDynamicState3FeaturesEXT const *>( &rhs ) )
  52756. {
  52757. }
  52758. PhysicalDeviceExtendedDynamicState3FeaturesEXT & operator=( PhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  52759. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  52760. PhysicalDeviceExtendedDynamicState3FeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  52761. {
  52762. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT const *>( &rhs );
  52763. return *this;
  52764. }
  52765. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  52766. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  52767. {
  52768. pNext = pNext_;
  52769. return *this;
  52770. }
  52771. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52772. setExtendedDynamicState3TessellationDomainOrigin( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3TessellationDomainOrigin_ ) VULKAN_HPP_NOEXCEPT
  52773. {
  52774. extendedDynamicState3TessellationDomainOrigin = extendedDynamicState3TessellationDomainOrigin_;
  52775. return *this;
  52776. }
  52777. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52778. setExtendedDynamicState3DepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClampEnable_ ) VULKAN_HPP_NOEXCEPT
  52779. {
  52780. extendedDynamicState3DepthClampEnable = extendedDynamicState3DepthClampEnable_;
  52781. return *this;
  52782. }
  52783. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52784. setExtendedDynamicState3PolygonMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3PolygonMode_ ) VULKAN_HPP_NOEXCEPT
  52785. {
  52786. extendedDynamicState3PolygonMode = extendedDynamicState3PolygonMode_;
  52787. return *this;
  52788. }
  52789. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52790. setExtendedDynamicState3RasterizationSamples( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationSamples_ ) VULKAN_HPP_NOEXCEPT
  52791. {
  52792. extendedDynamicState3RasterizationSamples = extendedDynamicState3RasterizationSamples_;
  52793. return *this;
  52794. }
  52795. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52796. setExtendedDynamicState3SampleMask( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleMask_ ) VULKAN_HPP_NOEXCEPT
  52797. {
  52798. extendedDynamicState3SampleMask = extendedDynamicState3SampleMask_;
  52799. return *this;
  52800. }
  52801. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52802. setExtendedDynamicState3AlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT
  52803. {
  52804. extendedDynamicState3AlphaToCoverageEnable = extendedDynamicState3AlphaToCoverageEnable_;
  52805. return *this;
  52806. }
  52807. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52808. setExtendedDynamicState3AlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT
  52809. {
  52810. extendedDynamicState3AlphaToOneEnable = extendedDynamicState3AlphaToOneEnable_;
  52811. return *this;
  52812. }
  52813. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52814. setExtendedDynamicState3LogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LogicOpEnable_ ) VULKAN_HPP_NOEXCEPT
  52815. {
  52816. extendedDynamicState3LogicOpEnable = extendedDynamicState3LogicOpEnable_;
  52817. return *this;
  52818. }
  52819. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52820. setExtendedDynamicState3ColorBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEnable_ ) VULKAN_HPP_NOEXCEPT
  52821. {
  52822. extendedDynamicState3ColorBlendEnable = extendedDynamicState3ColorBlendEnable_;
  52823. return *this;
  52824. }
  52825. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52826. setExtendedDynamicState3ColorBlendEquation( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEquation_ ) VULKAN_HPP_NOEXCEPT
  52827. {
  52828. extendedDynamicState3ColorBlendEquation = extendedDynamicState3ColorBlendEquation_;
  52829. return *this;
  52830. }
  52831. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52832. setExtendedDynamicState3ColorWriteMask( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorWriteMask_ ) VULKAN_HPP_NOEXCEPT
  52833. {
  52834. extendedDynamicState3ColorWriteMask = extendedDynamicState3ColorWriteMask_;
  52835. return *this;
  52836. }
  52837. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52838. setExtendedDynamicState3RasterizationStream( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationStream_ ) VULKAN_HPP_NOEXCEPT
  52839. {
  52840. extendedDynamicState3RasterizationStream = extendedDynamicState3RasterizationStream_;
  52841. return *this;
  52842. }
  52843. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ConservativeRasterizationMode(
  52844. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ConservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
  52845. {
  52846. extendedDynamicState3ConservativeRasterizationMode = extendedDynamicState3ConservativeRasterizationMode_;
  52847. return *this;
  52848. }
  52849. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3ExtraPrimitiveOverestimationSize(
  52850. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ExtraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
  52851. {
  52852. extendedDynamicState3ExtraPrimitiveOverestimationSize = extendedDynamicState3ExtraPrimitiveOverestimationSize_;
  52853. return *this;
  52854. }
  52855. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52856. setExtendedDynamicState3DepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipEnable_ ) VULKAN_HPP_NOEXCEPT
  52857. {
  52858. extendedDynamicState3DepthClipEnable = extendedDynamicState3DepthClipEnable_;
  52859. return *this;
  52860. }
  52861. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52862. setExtendedDynamicState3SampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
  52863. {
  52864. extendedDynamicState3SampleLocationsEnable = extendedDynamicState3SampleLocationsEnable_;
  52865. return *this;
  52866. }
  52867. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52868. setExtendedDynamicState3ColorBlendAdvanced( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendAdvanced_ ) VULKAN_HPP_NOEXCEPT
  52869. {
  52870. extendedDynamicState3ColorBlendAdvanced = extendedDynamicState3ColorBlendAdvanced_;
  52871. return *this;
  52872. }
  52873. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52874. setExtendedDynamicState3ProvokingVertexMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ProvokingVertexMode_ ) VULKAN_HPP_NOEXCEPT
  52875. {
  52876. extendedDynamicState3ProvokingVertexMode = extendedDynamicState3ProvokingVertexMode_;
  52877. return *this;
  52878. }
  52879. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52880. setExtendedDynamicState3LineRasterizationMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
  52881. {
  52882. extendedDynamicState3LineRasterizationMode = extendedDynamicState3LineRasterizationMode_;
  52883. return *this;
  52884. }
  52885. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52886. setExtendedDynamicState3LineStippleEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineStippleEnable_ ) VULKAN_HPP_NOEXCEPT
  52887. {
  52888. extendedDynamicState3LineStippleEnable = extendedDynamicState3LineStippleEnable_;
  52889. return *this;
  52890. }
  52891. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52892. setExtendedDynamicState3DepthClipNegativeOneToOne( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipNegativeOneToOne_ ) VULKAN_HPP_NOEXCEPT
  52893. {
  52894. extendedDynamicState3DepthClipNegativeOneToOne = extendedDynamicState3DepthClipNegativeOneToOne_;
  52895. return *this;
  52896. }
  52897. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52898. setExtendedDynamicState3ViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
  52899. {
  52900. extendedDynamicState3ViewportWScalingEnable = extendedDynamicState3ViewportWScalingEnable_;
  52901. return *this;
  52902. }
  52903. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52904. setExtendedDynamicState3ViewportSwizzle( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportSwizzle_ ) VULKAN_HPP_NOEXCEPT
  52905. {
  52906. extendedDynamicState3ViewportSwizzle = extendedDynamicState3ViewportSwizzle_;
  52907. return *this;
  52908. }
  52909. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52910. setExtendedDynamicState3CoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
  52911. {
  52912. extendedDynamicState3CoverageToColorEnable = extendedDynamicState3CoverageToColorEnable_;
  52913. return *this;
  52914. }
  52915. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52916. setExtendedDynamicState3CoverageToColorLocation( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT
  52917. {
  52918. extendedDynamicState3CoverageToColorLocation = extendedDynamicState3CoverageToColorLocation_;
  52919. return *this;
  52920. }
  52921. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52922. setExtendedDynamicState3CoverageModulationMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
  52923. {
  52924. extendedDynamicState3CoverageModulationMode = extendedDynamicState3CoverageModulationMode_;
  52925. return *this;
  52926. }
  52927. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3CoverageModulationTableEnable(
  52928. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
  52929. {
  52930. extendedDynamicState3CoverageModulationTableEnable = extendedDynamicState3CoverageModulationTableEnable_;
  52931. return *this;
  52932. }
  52933. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52934. setExtendedDynamicState3CoverageModulationTable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
  52935. {
  52936. extendedDynamicState3CoverageModulationTable = extendedDynamicState3CoverageModulationTable_;
  52937. return *this;
  52938. }
  52939. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52940. setExtendedDynamicState3CoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
  52941. {
  52942. extendedDynamicState3CoverageReductionMode = extendedDynamicState3CoverageReductionMode_;
  52943. return *this;
  52944. }
  52945. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT & setExtendedDynamicState3RepresentativeFragmentTestEnable(
  52946. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RepresentativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
  52947. {
  52948. extendedDynamicState3RepresentativeFragmentTestEnable = extendedDynamicState3RepresentativeFragmentTestEnable_;
  52949. return *this;
  52950. }
  52951. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3FeaturesEXT &
  52952. setExtendedDynamicState3ShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ShadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
  52953. {
  52954. extendedDynamicState3ShadingRateImageEnable = extendedDynamicState3ShadingRateImageEnable_;
  52955. return *this;
  52956. }
  52957. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  52958. operator VkPhysicalDeviceExtendedDynamicState3FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  52959. {
  52960. return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>( this );
  52961. }
  52962. operator VkPhysicalDeviceExtendedDynamicState3FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  52963. {
  52964. return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>( this );
  52965. }
  52966. #if defined( VULKAN_HPP_USE_REFLECT )
  52967. # if 14 <= VULKAN_HPP_CPP_VERSION
  52968. auto
  52969. # else
  52970. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  52971. void * const &,
  52972. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52973. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52974. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52975. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52976. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52977. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52978. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52979. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52980. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52981. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52982. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52983. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52984. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52985. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52986. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52987. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52988. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52989. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52990. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52991. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52992. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52993. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52994. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52995. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52996. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52997. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52998. VULKAN_HPP_NAMESPACE::Bool32 const &,
  52999. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53000. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53001. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53002. VULKAN_HPP_NAMESPACE::Bool32 const &>
  53003. # endif
  53004. reflect() const VULKAN_HPP_NOEXCEPT
  53005. {
  53006. return std::tie( sType,
  53007. pNext,
  53008. extendedDynamicState3TessellationDomainOrigin,
  53009. extendedDynamicState3DepthClampEnable,
  53010. extendedDynamicState3PolygonMode,
  53011. extendedDynamicState3RasterizationSamples,
  53012. extendedDynamicState3SampleMask,
  53013. extendedDynamicState3AlphaToCoverageEnable,
  53014. extendedDynamicState3AlphaToOneEnable,
  53015. extendedDynamicState3LogicOpEnable,
  53016. extendedDynamicState3ColorBlendEnable,
  53017. extendedDynamicState3ColorBlendEquation,
  53018. extendedDynamicState3ColorWriteMask,
  53019. extendedDynamicState3RasterizationStream,
  53020. extendedDynamicState3ConservativeRasterizationMode,
  53021. extendedDynamicState3ExtraPrimitiveOverestimationSize,
  53022. extendedDynamicState3DepthClipEnable,
  53023. extendedDynamicState3SampleLocationsEnable,
  53024. extendedDynamicState3ColorBlendAdvanced,
  53025. extendedDynamicState3ProvokingVertexMode,
  53026. extendedDynamicState3LineRasterizationMode,
  53027. extendedDynamicState3LineStippleEnable,
  53028. extendedDynamicState3DepthClipNegativeOneToOne,
  53029. extendedDynamicState3ViewportWScalingEnable,
  53030. extendedDynamicState3ViewportSwizzle,
  53031. extendedDynamicState3CoverageToColorEnable,
  53032. extendedDynamicState3CoverageToColorLocation,
  53033. extendedDynamicState3CoverageModulationMode,
  53034. extendedDynamicState3CoverageModulationTableEnable,
  53035. extendedDynamicState3CoverageModulationTable,
  53036. extendedDynamicState3CoverageReductionMode,
  53037. extendedDynamicState3RepresentativeFragmentTestEnable,
  53038. extendedDynamicState3ShadingRateImageEnable );
  53039. }
  53040. #endif
  53041. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53042. auto operator<=>( PhysicalDeviceExtendedDynamicState3FeaturesEXT const & ) const = default;
  53043. #else
  53044. bool operator==( PhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53045. {
  53046. # if defined( VULKAN_HPP_USE_REFLECT )
  53047. return this->reflect() == rhs.reflect();
  53048. # else
  53049. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  53050. ( extendedDynamicState3TessellationDomainOrigin == rhs.extendedDynamicState3TessellationDomainOrigin ) &&
  53051. ( extendedDynamicState3DepthClampEnable == rhs.extendedDynamicState3DepthClampEnable ) &&
  53052. ( extendedDynamicState3PolygonMode == rhs.extendedDynamicState3PolygonMode ) &&
  53053. ( extendedDynamicState3RasterizationSamples == rhs.extendedDynamicState3RasterizationSamples ) &&
  53054. ( extendedDynamicState3SampleMask == rhs.extendedDynamicState3SampleMask ) &&
  53055. ( extendedDynamicState3AlphaToCoverageEnable == rhs.extendedDynamicState3AlphaToCoverageEnable ) &&
  53056. ( extendedDynamicState3AlphaToOneEnable == rhs.extendedDynamicState3AlphaToOneEnable ) &&
  53057. ( extendedDynamicState3LogicOpEnable == rhs.extendedDynamicState3LogicOpEnable ) &&
  53058. ( extendedDynamicState3ColorBlendEnable == rhs.extendedDynamicState3ColorBlendEnable ) &&
  53059. ( extendedDynamicState3ColorBlendEquation == rhs.extendedDynamicState3ColorBlendEquation ) &&
  53060. ( extendedDynamicState3ColorWriteMask == rhs.extendedDynamicState3ColorWriteMask ) &&
  53061. ( extendedDynamicState3RasterizationStream == rhs.extendedDynamicState3RasterizationStream ) &&
  53062. ( extendedDynamicState3ConservativeRasterizationMode == rhs.extendedDynamicState3ConservativeRasterizationMode ) &&
  53063. ( extendedDynamicState3ExtraPrimitiveOverestimationSize == rhs.extendedDynamicState3ExtraPrimitiveOverestimationSize ) &&
  53064. ( extendedDynamicState3DepthClipEnable == rhs.extendedDynamicState3DepthClipEnable ) &&
  53065. ( extendedDynamicState3SampleLocationsEnable == rhs.extendedDynamicState3SampleLocationsEnable ) &&
  53066. ( extendedDynamicState3ColorBlendAdvanced == rhs.extendedDynamicState3ColorBlendAdvanced ) &&
  53067. ( extendedDynamicState3ProvokingVertexMode == rhs.extendedDynamicState3ProvokingVertexMode ) &&
  53068. ( extendedDynamicState3LineRasterizationMode == rhs.extendedDynamicState3LineRasterizationMode ) &&
  53069. ( extendedDynamicState3LineStippleEnable == rhs.extendedDynamicState3LineStippleEnable ) &&
  53070. ( extendedDynamicState3DepthClipNegativeOneToOne == rhs.extendedDynamicState3DepthClipNegativeOneToOne ) &&
  53071. ( extendedDynamicState3ViewportWScalingEnable == rhs.extendedDynamicState3ViewportWScalingEnable ) &&
  53072. ( extendedDynamicState3ViewportSwizzle == rhs.extendedDynamicState3ViewportSwizzle ) &&
  53073. ( extendedDynamicState3CoverageToColorEnable == rhs.extendedDynamicState3CoverageToColorEnable ) &&
  53074. ( extendedDynamicState3CoverageToColorLocation == rhs.extendedDynamicState3CoverageToColorLocation ) &&
  53075. ( extendedDynamicState3CoverageModulationMode == rhs.extendedDynamicState3CoverageModulationMode ) &&
  53076. ( extendedDynamicState3CoverageModulationTableEnable == rhs.extendedDynamicState3CoverageModulationTableEnable ) &&
  53077. ( extendedDynamicState3CoverageModulationTable == rhs.extendedDynamicState3CoverageModulationTable ) &&
  53078. ( extendedDynamicState3CoverageReductionMode == rhs.extendedDynamicState3CoverageReductionMode ) &&
  53079. ( extendedDynamicState3RepresentativeFragmentTestEnable == rhs.extendedDynamicState3RepresentativeFragmentTestEnable ) &&
  53080. ( extendedDynamicState3ShadingRateImageEnable == rhs.extendedDynamicState3ShadingRateImageEnable );
  53081. # endif
  53082. }
  53083. bool operator!=( PhysicalDeviceExtendedDynamicState3FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53084. {
  53085. return !operator==( rhs );
  53086. }
  53087. #endif
  53088. public:
  53089. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicState3FeaturesEXT;
  53090. void * pNext = {};
  53091. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3TessellationDomainOrigin = {};
  53092. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClampEnable = {};
  53093. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3PolygonMode = {};
  53094. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationSamples = {};
  53095. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleMask = {};
  53096. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToCoverageEnable = {};
  53097. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3AlphaToOneEnable = {};
  53098. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LogicOpEnable = {};
  53099. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEnable = {};
  53100. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendEquation = {};
  53101. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorWriteMask = {};
  53102. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RasterizationStream = {};
  53103. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ConservativeRasterizationMode = {};
  53104. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ExtraPrimitiveOverestimationSize = {};
  53105. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipEnable = {};
  53106. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3SampleLocationsEnable = {};
  53107. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ColorBlendAdvanced = {};
  53108. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ProvokingVertexMode = {};
  53109. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineRasterizationMode = {};
  53110. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3LineStippleEnable = {};
  53111. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3DepthClipNegativeOneToOne = {};
  53112. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportWScalingEnable = {};
  53113. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ViewportSwizzle = {};
  53114. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorEnable = {};
  53115. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageToColorLocation = {};
  53116. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationMode = {};
  53117. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTableEnable = {};
  53118. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageModulationTable = {};
  53119. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3CoverageReductionMode = {};
  53120. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3RepresentativeFragmentTestEnable = {};
  53121. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState3ShadingRateImageEnable = {};
  53122. };
  53123. template <>
  53124. struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicState3FeaturesEXT>
  53125. {
  53126. using Type = PhysicalDeviceExtendedDynamicState3FeaturesEXT;
  53127. };
  53128. struct PhysicalDeviceExtendedDynamicState3PropertiesEXT
  53129. {
  53130. using NativeType = VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
  53131. static const bool allowDuplicate = false;
  53132. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicState3PropertiesEXT;
  53133. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53134. VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState3PropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 dynamicPrimitiveTopologyUnrestricted_ = {},
  53135. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53136. : pNext( pNext_ )
  53137. , dynamicPrimitiveTopologyUnrestricted( dynamicPrimitiveTopologyUnrestricted_ )
  53138. {
  53139. }
  53140. VULKAN_HPP_CONSTEXPR
  53141. PhysicalDeviceExtendedDynamicState3PropertiesEXT( PhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53142. PhysicalDeviceExtendedDynamicState3PropertiesEXT( VkPhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  53143. : PhysicalDeviceExtendedDynamicState3PropertiesEXT( *reinterpret_cast<PhysicalDeviceExtendedDynamicState3PropertiesEXT const *>( &rhs ) )
  53144. {
  53145. }
  53146. PhysicalDeviceExtendedDynamicState3PropertiesEXT & operator=( PhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53147. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53148. PhysicalDeviceExtendedDynamicState3PropertiesEXT & operator=( VkPhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  53149. {
  53150. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT const *>( &rhs );
  53151. return *this;
  53152. }
  53153. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53154. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3PropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53155. {
  53156. pNext = pNext_;
  53157. return *this;
  53158. }
  53159. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState3PropertiesEXT &
  53160. setDynamicPrimitiveTopologyUnrestricted( VULKAN_HPP_NAMESPACE::Bool32 dynamicPrimitiveTopologyUnrestricted_ ) VULKAN_HPP_NOEXCEPT
  53161. {
  53162. dynamicPrimitiveTopologyUnrestricted = dynamicPrimitiveTopologyUnrestricted_;
  53163. return *this;
  53164. }
  53165. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53166. operator VkPhysicalDeviceExtendedDynamicState3PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  53167. {
  53168. return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT *>( this );
  53169. }
  53170. operator VkPhysicalDeviceExtendedDynamicState3PropertiesEXT &() VULKAN_HPP_NOEXCEPT
  53171. {
  53172. return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicState3PropertiesEXT *>( this );
  53173. }
  53174. #if defined( VULKAN_HPP_USE_REFLECT )
  53175. # if 14 <= VULKAN_HPP_CPP_VERSION
  53176. auto
  53177. # else
  53178. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  53179. # endif
  53180. reflect() const VULKAN_HPP_NOEXCEPT
  53181. {
  53182. return std::tie( sType, pNext, dynamicPrimitiveTopologyUnrestricted );
  53183. }
  53184. #endif
  53185. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53186. auto operator<=>( PhysicalDeviceExtendedDynamicState3PropertiesEXT const & ) const = default;
  53187. #else
  53188. bool operator==( PhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53189. {
  53190. # if defined( VULKAN_HPP_USE_REFLECT )
  53191. return this->reflect() == rhs.reflect();
  53192. # else
  53193. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dynamicPrimitiveTopologyUnrestricted == rhs.dynamicPrimitiveTopologyUnrestricted );
  53194. # endif
  53195. }
  53196. bool operator!=( PhysicalDeviceExtendedDynamicState3PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53197. {
  53198. return !operator==( rhs );
  53199. }
  53200. #endif
  53201. public:
  53202. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicState3PropertiesEXT;
  53203. void * pNext = {};
  53204. VULKAN_HPP_NAMESPACE::Bool32 dynamicPrimitiveTopologyUnrestricted = {};
  53205. };
  53206. template <>
  53207. struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicState3PropertiesEXT>
  53208. {
  53209. using Type = PhysicalDeviceExtendedDynamicState3PropertiesEXT;
  53210. };
  53211. struct PhysicalDeviceExtendedDynamicStateFeaturesEXT
  53212. {
  53213. using NativeType = VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
  53214. static const bool allowDuplicate = false;
  53215. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
  53216. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53217. VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ = {},
  53218. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53219. : pNext( pNext_ )
  53220. , extendedDynamicState( extendedDynamicState_ )
  53221. {
  53222. }
  53223. VULKAN_HPP_CONSTEXPR
  53224. PhysicalDeviceExtendedDynamicStateFeaturesEXT( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53225. PhysicalDeviceExtendedDynamicStateFeaturesEXT( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  53226. : PhysicalDeviceExtendedDynamicStateFeaturesEXT( *reinterpret_cast<PhysicalDeviceExtendedDynamicStateFeaturesEXT const *>( &rhs ) )
  53227. {
  53228. }
  53229. PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53230. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53231. PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  53232. {
  53233. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT const *>( &rhs );
  53234. return *this;
  53235. }
  53236. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53237. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53238. {
  53239. pNext = pNext_;
  53240. return *this;
  53241. }
  53242. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicStateFeaturesEXT &
  53243. setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT
  53244. {
  53245. extendedDynamicState = extendedDynamicState_;
  53246. return *this;
  53247. }
  53248. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53249. operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  53250. {
  53251. return *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *>( this );
  53252. }
  53253. operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  53254. {
  53255. return *reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *>( this );
  53256. }
  53257. #if defined( VULKAN_HPP_USE_REFLECT )
  53258. # if 14 <= VULKAN_HPP_CPP_VERSION
  53259. auto
  53260. # else
  53261. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  53262. # endif
  53263. reflect() const VULKAN_HPP_NOEXCEPT
  53264. {
  53265. return std::tie( sType, pNext, extendedDynamicState );
  53266. }
  53267. #endif
  53268. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53269. auto operator<=>( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & ) const = default;
  53270. #else
  53271. bool operator==( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53272. {
  53273. # if defined( VULKAN_HPP_USE_REFLECT )
  53274. return this->reflect() == rhs.reflect();
  53275. # else
  53276. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( extendedDynamicState == rhs.extendedDynamicState );
  53277. # endif
  53278. }
  53279. bool operator!=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53280. {
  53281. return !operator==( rhs );
  53282. }
  53283. #endif
  53284. public:
  53285. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT;
  53286. void * pNext = {};
  53287. VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState = {};
  53288. };
  53289. template <>
  53290. struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT>
  53291. {
  53292. using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT;
  53293. };
  53294. struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
  53295. {
  53296. using NativeType = VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
  53297. static const bool allowDuplicate = false;
  53298. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
  53299. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53300. VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace_ = {},
  53301. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53302. : pNext( pNext_ )
  53303. , extendedSparseAddressSpace( extendedSparseAddressSpace_ )
  53304. {
  53305. }
  53306. VULKAN_HPP_CONSTEXPR
  53307. PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53308. PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  53309. : PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV( *reinterpret_cast<PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const *>( &rhs ) )
  53310. {
  53311. }
  53312. PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV &
  53313. operator=( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53314. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53315. PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & operator=( VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  53316. {
  53317. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const *>( &rhs );
  53318. return *this;
  53319. }
  53320. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53321. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53322. {
  53323. pNext = pNext_;
  53324. return *this;
  53325. }
  53326. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV &
  53327. setExtendedSparseAddressSpace( VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace_ ) VULKAN_HPP_NOEXCEPT
  53328. {
  53329. extendedSparseAddressSpace = extendedSparseAddressSpace_;
  53330. return *this;
  53331. }
  53332. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53333. operator VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  53334. {
  53335. return *reinterpret_cast<const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *>( this );
  53336. }
  53337. operator VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV &() VULKAN_HPP_NOEXCEPT
  53338. {
  53339. return *reinterpret_cast<VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *>( this );
  53340. }
  53341. #if defined( VULKAN_HPP_USE_REFLECT )
  53342. # if 14 <= VULKAN_HPP_CPP_VERSION
  53343. auto
  53344. # else
  53345. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  53346. # endif
  53347. reflect() const VULKAN_HPP_NOEXCEPT
  53348. {
  53349. return std::tie( sType, pNext, extendedSparseAddressSpace );
  53350. }
  53351. #endif
  53352. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53353. auto operator<=>( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & ) const = default;
  53354. #else
  53355. bool operator==( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  53356. {
  53357. # if defined( VULKAN_HPP_USE_REFLECT )
  53358. return this->reflect() == rhs.reflect();
  53359. # else
  53360. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( extendedSparseAddressSpace == rhs.extendedSparseAddressSpace );
  53361. # endif
  53362. }
  53363. bool operator!=( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  53364. {
  53365. return !operator==( rhs );
  53366. }
  53367. #endif
  53368. public:
  53369. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
  53370. void * pNext = {};
  53371. VULKAN_HPP_NAMESPACE::Bool32 extendedSparseAddressSpace = {};
  53372. };
  53373. template <>
  53374. struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedSparseAddressSpaceFeaturesNV>
  53375. {
  53376. using Type = PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
  53377. };
  53378. struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV
  53379. {
  53380. using NativeType = VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
  53381. static const bool allowDuplicate = false;
  53382. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
  53383. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53384. VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( VULKAN_HPP_NAMESPACE::DeviceSize extendedSparseAddressSpaceSize_ = {},
  53385. VULKAN_HPP_NAMESPACE::ImageUsageFlags extendedSparseImageUsageFlags_ = {},
  53386. VULKAN_HPP_NAMESPACE::BufferUsageFlags extendedSparseBufferUsageFlags_ = {},
  53387. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53388. : pNext( pNext_ )
  53389. , extendedSparseAddressSpaceSize( extendedSparseAddressSpaceSize_ )
  53390. , extendedSparseImageUsageFlags( extendedSparseImageUsageFlags_ )
  53391. , extendedSparseBufferUsageFlags( extendedSparseBufferUsageFlags_ )
  53392. {
  53393. }
  53394. VULKAN_HPP_CONSTEXPR
  53395. PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53396. PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  53397. : PhysicalDeviceExtendedSparseAddressSpacePropertiesNV( *reinterpret_cast<PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const *>( &rhs ) )
  53398. {
  53399. }
  53400. PhysicalDeviceExtendedSparseAddressSpacePropertiesNV &
  53401. operator=( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53402. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53403. PhysicalDeviceExtendedSparseAddressSpacePropertiesNV & operator=( VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  53404. {
  53405. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const *>( &rhs );
  53406. return *this;
  53407. }
  53408. operator VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  53409. {
  53410. return *reinterpret_cast<const VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV *>( this );
  53411. }
  53412. operator VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV &() VULKAN_HPP_NOEXCEPT
  53413. {
  53414. return *reinterpret_cast<VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV *>( this );
  53415. }
  53416. #if defined( VULKAN_HPP_USE_REFLECT )
  53417. # if 14 <= VULKAN_HPP_CPP_VERSION
  53418. auto
  53419. # else
  53420. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  53421. void * const &,
  53422. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  53423. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  53424. VULKAN_HPP_NAMESPACE::BufferUsageFlags const &>
  53425. # endif
  53426. reflect() const VULKAN_HPP_NOEXCEPT
  53427. {
  53428. return std::tie( sType, pNext, extendedSparseAddressSpaceSize, extendedSparseImageUsageFlags, extendedSparseBufferUsageFlags );
  53429. }
  53430. #endif
  53431. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53432. auto operator<=>( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & ) const = default;
  53433. #else
  53434. bool operator==( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  53435. {
  53436. # if defined( VULKAN_HPP_USE_REFLECT )
  53437. return this->reflect() == rhs.reflect();
  53438. # else
  53439. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( extendedSparseAddressSpaceSize == rhs.extendedSparseAddressSpaceSize ) &&
  53440. ( extendedSparseImageUsageFlags == rhs.extendedSparseImageUsageFlags ) && ( extendedSparseBufferUsageFlags == rhs.extendedSparseBufferUsageFlags );
  53441. # endif
  53442. }
  53443. bool operator!=( PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  53444. {
  53445. return !operator==( rhs );
  53446. }
  53447. #endif
  53448. public:
  53449. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
  53450. void * pNext = {};
  53451. VULKAN_HPP_NAMESPACE::DeviceSize extendedSparseAddressSpaceSize = {};
  53452. VULKAN_HPP_NAMESPACE::ImageUsageFlags extendedSparseImageUsageFlags = {};
  53453. VULKAN_HPP_NAMESPACE::BufferUsageFlags extendedSparseBufferUsageFlags = {};
  53454. };
  53455. template <>
  53456. struct CppType<StructureType, StructureType::ePhysicalDeviceExtendedSparseAddressSpacePropertiesNV>
  53457. {
  53458. using Type = PhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
  53459. };
  53460. struct PhysicalDeviceExternalBufferInfo
  53461. {
  53462. using NativeType = VkPhysicalDeviceExternalBufferInfo;
  53463. static const bool allowDuplicate = false;
  53464. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalBufferInfo;
  53465. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53466. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo(
  53467. VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {},
  53468. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {},
  53469. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  53470. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53471. : pNext( pNext_ )
  53472. , flags( flags_ )
  53473. , usage( usage_ )
  53474. , handleType( handleType_ )
  53475. {
  53476. }
  53477. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53478. PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  53479. : PhysicalDeviceExternalBufferInfo( *reinterpret_cast<PhysicalDeviceExternalBufferInfo const *>( &rhs ) )
  53480. {
  53481. }
  53482. PhysicalDeviceExternalBufferInfo & operator=( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53483. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53484. PhysicalDeviceExternalBufferInfo & operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  53485. {
  53486. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const *>( &rhs );
  53487. return *this;
  53488. }
  53489. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53490. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53491. {
  53492. pNext = pNext_;
  53493. return *this;
  53494. }
  53495. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  53496. {
  53497. flags = flags_;
  53498. return *this;
  53499. }
  53500. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  53501. {
  53502. usage = usage_;
  53503. return *this;
  53504. }
  53505. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo &
  53506. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  53507. {
  53508. handleType = handleType_;
  53509. return *this;
  53510. }
  53511. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53512. operator VkPhysicalDeviceExternalBufferInfo const &() const VULKAN_HPP_NOEXCEPT
  53513. {
  53514. return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( this );
  53515. }
  53516. operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT
  53517. {
  53518. return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo *>( this );
  53519. }
  53520. #if defined( VULKAN_HPP_USE_REFLECT )
  53521. # if 14 <= VULKAN_HPP_CPP_VERSION
  53522. auto
  53523. # else
  53524. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  53525. const void * const &,
  53526. VULKAN_HPP_NAMESPACE::BufferCreateFlags const &,
  53527. VULKAN_HPP_NAMESPACE::BufferUsageFlags const &,
  53528. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  53529. # endif
  53530. reflect() const VULKAN_HPP_NOEXCEPT
  53531. {
  53532. return std::tie( sType, pNext, flags, usage, handleType );
  53533. }
  53534. #endif
  53535. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53536. auto operator<=>( PhysicalDeviceExternalBufferInfo const & ) const = default;
  53537. #else
  53538. bool operator==( PhysicalDeviceExternalBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  53539. {
  53540. # if defined( VULKAN_HPP_USE_REFLECT )
  53541. return this->reflect() == rhs.reflect();
  53542. # else
  53543. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( usage == rhs.usage ) && ( handleType == rhs.handleType );
  53544. # endif
  53545. }
  53546. bool operator!=( PhysicalDeviceExternalBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  53547. {
  53548. return !operator==( rhs );
  53549. }
  53550. #endif
  53551. public:
  53552. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo;
  53553. const void * pNext = {};
  53554. VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {};
  53555. VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {};
  53556. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  53557. };
  53558. template <>
  53559. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalBufferInfo>
  53560. {
  53561. using Type = PhysicalDeviceExternalBufferInfo;
  53562. };
  53563. using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
  53564. struct PhysicalDeviceExternalFenceInfo
  53565. {
  53566. using NativeType = VkPhysicalDeviceExternalFenceInfo;
  53567. static const bool allowDuplicate = false;
  53568. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFenceInfo;
  53569. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53570. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo(
  53571. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  53572. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53573. : pNext( pNext_ )
  53574. , handleType( handleType_ )
  53575. {
  53576. }
  53577. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53578. PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  53579. : PhysicalDeviceExternalFenceInfo( *reinterpret_cast<PhysicalDeviceExternalFenceInfo const *>( &rhs ) )
  53580. {
  53581. }
  53582. PhysicalDeviceExternalFenceInfo & operator=( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53583. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53584. PhysicalDeviceExternalFenceInfo & operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  53585. {
  53586. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo const *>( &rhs );
  53587. return *this;
  53588. }
  53589. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53590. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFenceInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53591. {
  53592. pNext = pNext_;
  53593. return *this;
  53594. }
  53595. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFenceInfo &
  53596. setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  53597. {
  53598. handleType = handleType_;
  53599. return *this;
  53600. }
  53601. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53602. operator VkPhysicalDeviceExternalFenceInfo const &() const VULKAN_HPP_NOEXCEPT
  53603. {
  53604. return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( this );
  53605. }
  53606. operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT
  53607. {
  53608. return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo *>( this );
  53609. }
  53610. #if defined( VULKAN_HPP_USE_REFLECT )
  53611. # if 14 <= VULKAN_HPP_CPP_VERSION
  53612. auto
  53613. # else
  53614. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits const &>
  53615. # endif
  53616. reflect() const VULKAN_HPP_NOEXCEPT
  53617. {
  53618. return std::tie( sType, pNext, handleType );
  53619. }
  53620. #endif
  53621. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53622. auto operator<=>( PhysicalDeviceExternalFenceInfo const & ) const = default;
  53623. #else
  53624. bool operator==( PhysicalDeviceExternalFenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  53625. {
  53626. # if defined( VULKAN_HPP_USE_REFLECT )
  53627. return this->reflect() == rhs.reflect();
  53628. # else
  53629. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType );
  53630. # endif
  53631. }
  53632. bool operator!=( PhysicalDeviceExternalFenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  53633. {
  53634. return !operator==( rhs );
  53635. }
  53636. #endif
  53637. public:
  53638. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo;
  53639. const void * pNext = {};
  53640. VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd;
  53641. };
  53642. template <>
  53643. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFenceInfo>
  53644. {
  53645. using Type = PhysicalDeviceExternalFenceInfo;
  53646. };
  53647. using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
  53648. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  53649. struct PhysicalDeviceExternalFormatResolveFeaturesANDROID
  53650. {
  53651. using NativeType = VkPhysicalDeviceExternalFormatResolveFeaturesANDROID;
  53652. static const bool allowDuplicate = false;
  53653. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID;
  53654. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53655. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolveFeaturesANDROID( VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve_ = {},
  53656. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53657. : pNext( pNext_ )
  53658. , externalFormatResolve( externalFormatResolve_ )
  53659. {
  53660. }
  53661. VULKAN_HPP_CONSTEXPR
  53662. PhysicalDeviceExternalFormatResolveFeaturesANDROID( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53663. PhysicalDeviceExternalFormatResolveFeaturesANDROID( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  53664. : PhysicalDeviceExternalFormatResolveFeaturesANDROID( *reinterpret_cast<PhysicalDeviceExternalFormatResolveFeaturesANDROID const *>( &rhs ) )
  53665. {
  53666. }
  53667. PhysicalDeviceExternalFormatResolveFeaturesANDROID &
  53668. operator=( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53669. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53670. PhysicalDeviceExternalFormatResolveFeaturesANDROID & operator=( VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  53671. {
  53672. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID const *>( &rhs );
  53673. return *this;
  53674. }
  53675. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53676. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFormatResolveFeaturesANDROID & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53677. {
  53678. pNext = pNext_;
  53679. return *this;
  53680. }
  53681. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFormatResolveFeaturesANDROID &
  53682. setExternalFormatResolve( VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve_ ) VULKAN_HPP_NOEXCEPT
  53683. {
  53684. externalFormatResolve = externalFormatResolve_;
  53685. return *this;
  53686. }
  53687. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53688. operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID const &() const VULKAN_HPP_NOEXCEPT
  53689. {
  53690. return *reinterpret_cast<const VkPhysicalDeviceExternalFormatResolveFeaturesANDROID *>( this );
  53691. }
  53692. operator VkPhysicalDeviceExternalFormatResolveFeaturesANDROID &() VULKAN_HPP_NOEXCEPT
  53693. {
  53694. return *reinterpret_cast<VkPhysicalDeviceExternalFormatResolveFeaturesANDROID *>( this );
  53695. }
  53696. # if defined( VULKAN_HPP_USE_REFLECT )
  53697. # if 14 <= VULKAN_HPP_CPP_VERSION
  53698. auto
  53699. # else
  53700. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  53701. # endif
  53702. reflect() const VULKAN_HPP_NOEXCEPT
  53703. {
  53704. return std::tie( sType, pNext, externalFormatResolve );
  53705. }
  53706. # endif
  53707. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53708. auto operator<=>( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & ) const = default;
  53709. # else
  53710. bool operator==( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  53711. {
  53712. # if defined( VULKAN_HPP_USE_REFLECT )
  53713. return this->reflect() == rhs.reflect();
  53714. # else
  53715. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalFormatResolve == rhs.externalFormatResolve );
  53716. # endif
  53717. }
  53718. bool operator!=( PhysicalDeviceExternalFormatResolveFeaturesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  53719. {
  53720. return !operator==( rhs );
  53721. }
  53722. # endif
  53723. public:
  53724. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID;
  53725. void * pNext = {};
  53726. VULKAN_HPP_NAMESPACE::Bool32 externalFormatResolve = {};
  53727. };
  53728. template <>
  53729. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFormatResolveFeaturesANDROID>
  53730. {
  53731. using Type = PhysicalDeviceExternalFormatResolveFeaturesANDROID;
  53732. };
  53733. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  53734. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  53735. struct PhysicalDeviceExternalFormatResolvePropertiesANDROID
  53736. {
  53737. using NativeType = VkPhysicalDeviceExternalFormatResolvePropertiesANDROID;
  53738. static const bool allowDuplicate = false;
  53739. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID;
  53740. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53741. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFormatResolvePropertiesANDROID(
  53742. VULKAN_HPP_NAMESPACE::Bool32 nullColorAttachmentWithExternalFormatResolve_ = {},
  53743. VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetX_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  53744. VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetY_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  53745. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53746. : pNext( pNext_ )
  53747. , nullColorAttachmentWithExternalFormatResolve( nullColorAttachmentWithExternalFormatResolve_ )
  53748. , externalFormatResolveChromaOffsetX( externalFormatResolveChromaOffsetX_ )
  53749. , externalFormatResolveChromaOffsetY( externalFormatResolveChromaOffsetY_ )
  53750. {
  53751. }
  53752. VULKAN_HPP_CONSTEXPR
  53753. PhysicalDeviceExternalFormatResolvePropertiesANDROID( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53754. PhysicalDeviceExternalFormatResolvePropertiesANDROID( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  53755. : PhysicalDeviceExternalFormatResolvePropertiesANDROID( *reinterpret_cast<PhysicalDeviceExternalFormatResolvePropertiesANDROID const *>( &rhs ) )
  53756. {
  53757. }
  53758. PhysicalDeviceExternalFormatResolvePropertiesANDROID &
  53759. operator=( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53760. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53761. PhysicalDeviceExternalFormatResolvePropertiesANDROID & operator=( VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT
  53762. {
  53763. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID const *>( &rhs );
  53764. return *this;
  53765. }
  53766. operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT
  53767. {
  53768. return *reinterpret_cast<const VkPhysicalDeviceExternalFormatResolvePropertiesANDROID *>( this );
  53769. }
  53770. operator VkPhysicalDeviceExternalFormatResolvePropertiesANDROID &() VULKAN_HPP_NOEXCEPT
  53771. {
  53772. return *reinterpret_cast<VkPhysicalDeviceExternalFormatResolvePropertiesANDROID *>( this );
  53773. }
  53774. # if defined( VULKAN_HPP_USE_REFLECT )
  53775. # if 14 <= VULKAN_HPP_CPP_VERSION
  53776. auto
  53777. # else
  53778. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  53779. void * const &,
  53780. VULKAN_HPP_NAMESPACE::Bool32 const &,
  53781. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  53782. VULKAN_HPP_NAMESPACE::ChromaLocation const &>
  53783. # endif
  53784. reflect() const VULKAN_HPP_NOEXCEPT
  53785. {
  53786. return std::tie( sType, pNext, nullColorAttachmentWithExternalFormatResolve, externalFormatResolveChromaOffsetX, externalFormatResolveChromaOffsetY );
  53787. }
  53788. # endif
  53789. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53790. auto operator<=>( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & ) const = default;
  53791. # else
  53792. bool operator==( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  53793. {
  53794. # if defined( VULKAN_HPP_USE_REFLECT )
  53795. return this->reflect() == rhs.reflect();
  53796. # else
  53797. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  53798. ( nullColorAttachmentWithExternalFormatResolve == rhs.nullColorAttachmentWithExternalFormatResolve ) &&
  53799. ( externalFormatResolveChromaOffsetX == rhs.externalFormatResolveChromaOffsetX ) &&
  53800. ( externalFormatResolveChromaOffsetY == rhs.externalFormatResolveChromaOffsetY );
  53801. # endif
  53802. }
  53803. bool operator!=( PhysicalDeviceExternalFormatResolvePropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT
  53804. {
  53805. return !operator==( rhs );
  53806. }
  53807. # endif
  53808. public:
  53809. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID;
  53810. void * pNext = {};
  53811. VULKAN_HPP_NAMESPACE::Bool32 nullColorAttachmentWithExternalFormatResolve = {};
  53812. VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetX = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  53813. VULKAN_HPP_NAMESPACE::ChromaLocation externalFormatResolveChromaOffsetY = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  53814. };
  53815. template <>
  53816. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID>
  53817. {
  53818. using Type = PhysicalDeviceExternalFormatResolvePropertiesANDROID;
  53819. };
  53820. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  53821. struct PhysicalDeviceExternalImageFormatInfo
  53822. {
  53823. using NativeType = VkPhysicalDeviceExternalImageFormatInfo;
  53824. static const bool allowDuplicate = false;
  53825. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
  53826. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53827. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo(
  53828. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  53829. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53830. : pNext( pNext_ )
  53831. , handleType( handleType_ )
  53832. {
  53833. }
  53834. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53835. PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  53836. : PhysicalDeviceExternalImageFormatInfo( *reinterpret_cast<PhysicalDeviceExternalImageFormatInfo const *>( &rhs ) )
  53837. {
  53838. }
  53839. PhysicalDeviceExternalImageFormatInfo & operator=( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53840. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53841. PhysicalDeviceExternalImageFormatInfo & operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  53842. {
  53843. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo const *>( &rhs );
  53844. return *this;
  53845. }
  53846. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  53847. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalImageFormatInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  53848. {
  53849. pNext = pNext_;
  53850. return *this;
  53851. }
  53852. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalImageFormatInfo &
  53853. setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  53854. {
  53855. handleType = handleType_;
  53856. return *this;
  53857. }
  53858. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  53859. operator VkPhysicalDeviceExternalImageFormatInfo const &() const VULKAN_HPP_NOEXCEPT
  53860. {
  53861. return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo *>( this );
  53862. }
  53863. operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT
  53864. {
  53865. return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo *>( this );
  53866. }
  53867. #if defined( VULKAN_HPP_USE_REFLECT )
  53868. # if 14 <= VULKAN_HPP_CPP_VERSION
  53869. auto
  53870. # else
  53871. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits const &>
  53872. # endif
  53873. reflect() const VULKAN_HPP_NOEXCEPT
  53874. {
  53875. return std::tie( sType, pNext, handleType );
  53876. }
  53877. #endif
  53878. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53879. auto operator<=>( PhysicalDeviceExternalImageFormatInfo const & ) const = default;
  53880. #else
  53881. bool operator==( PhysicalDeviceExternalImageFormatInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  53882. {
  53883. # if defined( VULKAN_HPP_USE_REFLECT )
  53884. return this->reflect() == rhs.reflect();
  53885. # else
  53886. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType );
  53887. # endif
  53888. }
  53889. bool operator!=( PhysicalDeviceExternalImageFormatInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  53890. {
  53891. return !operator==( rhs );
  53892. }
  53893. #endif
  53894. public:
  53895. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
  53896. const void * pNext = {};
  53897. VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd;
  53898. };
  53899. template <>
  53900. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalImageFormatInfo>
  53901. {
  53902. using Type = PhysicalDeviceExternalImageFormatInfo;
  53903. };
  53904. using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
  53905. struct PhysicalDeviceExternalMemoryHostPropertiesEXT
  53906. {
  53907. using NativeType = VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
  53908. static const bool allowDuplicate = false;
  53909. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
  53910. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53911. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {},
  53912. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53913. : pNext( pNext_ )
  53914. , minImportedHostPointerAlignment( minImportedHostPointerAlignment_ )
  53915. {
  53916. }
  53917. VULKAN_HPP_CONSTEXPR
  53918. PhysicalDeviceExternalMemoryHostPropertiesEXT( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53919. PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  53920. : PhysicalDeviceExternalMemoryHostPropertiesEXT( *reinterpret_cast<PhysicalDeviceExternalMemoryHostPropertiesEXT const *>( &rhs ) )
  53921. {
  53922. }
  53923. PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53924. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53925. PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  53926. {
  53927. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT const *>( &rhs );
  53928. return *this;
  53929. }
  53930. operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  53931. {
  53932. return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT *>( this );
  53933. }
  53934. operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  53935. {
  53936. return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT *>( this );
  53937. }
  53938. #if defined( VULKAN_HPP_USE_REFLECT )
  53939. # if 14 <= VULKAN_HPP_CPP_VERSION
  53940. auto
  53941. # else
  53942. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  53943. # endif
  53944. reflect() const VULKAN_HPP_NOEXCEPT
  53945. {
  53946. return std::tie( sType, pNext, minImportedHostPointerAlignment );
  53947. }
  53948. #endif
  53949. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  53950. auto operator<=>( PhysicalDeviceExternalMemoryHostPropertiesEXT const & ) const = default;
  53951. #else
  53952. bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53953. {
  53954. # if defined( VULKAN_HPP_USE_REFLECT )
  53955. return this->reflect() == rhs.reflect();
  53956. # else
  53957. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment );
  53958. # endif
  53959. }
  53960. bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  53961. {
  53962. return !operator==( rhs );
  53963. }
  53964. #endif
  53965. public:
  53966. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
  53967. void * pNext = {};
  53968. VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {};
  53969. };
  53970. template <>
  53971. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT>
  53972. {
  53973. using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT;
  53974. };
  53975. struct PhysicalDeviceExternalMemoryRDMAFeaturesNV
  53976. {
  53977. using NativeType = VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
  53978. static const bool allowDuplicate = false;
  53979. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV;
  53980. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  53981. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryRDMAFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA_ = {},
  53982. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  53983. : pNext( pNext_ )
  53984. , externalMemoryRDMA( externalMemoryRDMA_ )
  53985. {
  53986. }
  53987. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryRDMAFeaturesNV( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53988. PhysicalDeviceExternalMemoryRDMAFeaturesNV( VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  53989. : PhysicalDeviceExternalMemoryRDMAFeaturesNV( *reinterpret_cast<PhysicalDeviceExternalMemoryRDMAFeaturesNV const *>( &rhs ) )
  53990. {
  53991. }
  53992. PhysicalDeviceExternalMemoryRDMAFeaturesNV & operator=( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  53993. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  53994. PhysicalDeviceExternalMemoryRDMAFeaturesNV & operator=( VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  53995. {
  53996. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV const *>( &rhs );
  53997. return *this;
  53998. }
  53999. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54000. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryRDMAFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54001. {
  54002. pNext = pNext_;
  54003. return *this;
  54004. }
  54005. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryRDMAFeaturesNV &
  54006. setExternalMemoryRDMA( VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA_ ) VULKAN_HPP_NOEXCEPT
  54007. {
  54008. externalMemoryRDMA = externalMemoryRDMA_;
  54009. return *this;
  54010. }
  54011. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54012. operator VkPhysicalDeviceExternalMemoryRDMAFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  54013. {
  54014. return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV *>( this );
  54015. }
  54016. operator VkPhysicalDeviceExternalMemoryRDMAFeaturesNV &() VULKAN_HPP_NOEXCEPT
  54017. {
  54018. return *reinterpret_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV *>( this );
  54019. }
  54020. #if defined( VULKAN_HPP_USE_REFLECT )
  54021. # if 14 <= VULKAN_HPP_CPP_VERSION
  54022. auto
  54023. # else
  54024. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54025. # endif
  54026. reflect() const VULKAN_HPP_NOEXCEPT
  54027. {
  54028. return std::tie( sType, pNext, externalMemoryRDMA );
  54029. }
  54030. #endif
  54031. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54032. auto operator<=>( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & ) const = default;
  54033. #else
  54034. bool operator==( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  54035. {
  54036. # if defined( VULKAN_HPP_USE_REFLECT )
  54037. return this->reflect() == rhs.reflect();
  54038. # else
  54039. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalMemoryRDMA == rhs.externalMemoryRDMA );
  54040. # endif
  54041. }
  54042. bool operator!=( PhysicalDeviceExternalMemoryRDMAFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  54043. {
  54044. return !operator==( rhs );
  54045. }
  54046. #endif
  54047. public:
  54048. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV;
  54049. void * pNext = {};
  54050. VULKAN_HPP_NAMESPACE::Bool32 externalMemoryRDMA = {};
  54051. };
  54052. template <>
  54053. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryRdmaFeaturesNV>
  54054. {
  54055. using Type = PhysicalDeviceExternalMemoryRDMAFeaturesNV;
  54056. };
  54057. #if defined( VK_USE_PLATFORM_SCREEN_QNX )
  54058. struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
  54059. {
  54060. using NativeType = VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
  54061. static const bool allowDuplicate = false;
  54062. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
  54063. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54064. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( VULKAN_HPP_NAMESPACE::Bool32 screenBufferImport_ = {},
  54065. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54066. : pNext( pNext_ )
  54067. , screenBufferImport( screenBufferImport_ )
  54068. {
  54069. }
  54070. VULKAN_HPP_CONSTEXPR
  54071. PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54072. PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  54073. : PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX( *reinterpret_cast<PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const *>( &rhs ) )
  54074. {
  54075. }
  54076. PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX &
  54077. operator=( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54078. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54079. PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX & operator=( VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  54080. {
  54081. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const *>( &rhs );
  54082. return *this;
  54083. }
  54084. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54085. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54086. {
  54087. pNext = pNext_;
  54088. return *this;
  54089. }
  54090. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX &
  54091. setScreenBufferImport( VULKAN_HPP_NAMESPACE::Bool32 screenBufferImport_ ) VULKAN_HPP_NOEXCEPT
  54092. {
  54093. screenBufferImport = screenBufferImport_;
  54094. return *this;
  54095. }
  54096. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54097. operator VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const &() const VULKAN_HPP_NOEXCEPT
  54098. {
  54099. return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX *>( this );
  54100. }
  54101. operator VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX &() VULKAN_HPP_NOEXCEPT
  54102. {
  54103. return *reinterpret_cast<VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX *>( this );
  54104. }
  54105. # if defined( VULKAN_HPP_USE_REFLECT )
  54106. # if 14 <= VULKAN_HPP_CPP_VERSION
  54107. auto
  54108. # else
  54109. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54110. # endif
  54111. reflect() const VULKAN_HPP_NOEXCEPT
  54112. {
  54113. return std::tie( sType, pNext, screenBufferImport );
  54114. }
  54115. # endif
  54116. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54117. auto operator<=>( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & ) const = default;
  54118. # else
  54119. bool operator==( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  54120. {
  54121. # if defined( VULKAN_HPP_USE_REFLECT )
  54122. return this->reflect() == rhs.reflect();
  54123. # else
  54124. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( screenBufferImport == rhs.screenBufferImport );
  54125. # endif
  54126. }
  54127. bool operator!=( PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  54128. {
  54129. return !operator==( rhs );
  54130. }
  54131. # endif
  54132. public:
  54133. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
  54134. void * pNext = {};
  54135. VULKAN_HPP_NAMESPACE::Bool32 screenBufferImport = {};
  54136. };
  54137. template <>
  54138. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX>
  54139. {
  54140. using Type = PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
  54141. };
  54142. #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
  54143. struct PhysicalDeviceExternalSemaphoreInfo
  54144. {
  54145. using NativeType = VkPhysicalDeviceExternalSemaphoreInfo;
  54146. static const bool allowDuplicate = false;
  54147. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
  54148. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54149. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo(
  54150. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  54151. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54152. : pNext( pNext_ )
  54153. , handleType( handleType_ )
  54154. {
  54155. }
  54156. VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54157. PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  54158. : PhysicalDeviceExternalSemaphoreInfo( *reinterpret_cast<PhysicalDeviceExternalSemaphoreInfo const *>( &rhs ) )
  54159. {
  54160. }
  54161. PhysicalDeviceExternalSemaphoreInfo & operator=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54162. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54163. PhysicalDeviceExternalSemaphoreInfo & operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  54164. {
  54165. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo const *>( &rhs );
  54166. return *this;
  54167. }
  54168. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54169. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalSemaphoreInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54170. {
  54171. pNext = pNext_;
  54172. return *this;
  54173. }
  54174. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalSemaphoreInfo &
  54175. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  54176. {
  54177. handleType = handleType_;
  54178. return *this;
  54179. }
  54180. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54181. operator VkPhysicalDeviceExternalSemaphoreInfo const &() const VULKAN_HPP_NOEXCEPT
  54182. {
  54183. return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( this );
  54184. }
  54185. operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT
  54186. {
  54187. return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo *>( this );
  54188. }
  54189. #if defined( VULKAN_HPP_USE_REFLECT )
  54190. # if 14 <= VULKAN_HPP_CPP_VERSION
  54191. auto
  54192. # else
  54193. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
  54194. # endif
  54195. reflect() const VULKAN_HPP_NOEXCEPT
  54196. {
  54197. return std::tie( sType, pNext, handleType );
  54198. }
  54199. #endif
  54200. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54201. auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const & ) const = default;
  54202. #else
  54203. bool operator==( PhysicalDeviceExternalSemaphoreInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  54204. {
  54205. # if defined( VULKAN_HPP_USE_REFLECT )
  54206. return this->reflect() == rhs.reflect();
  54207. # else
  54208. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType );
  54209. # endif
  54210. }
  54211. bool operator!=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  54212. {
  54213. return !operator==( rhs );
  54214. }
  54215. #endif
  54216. public:
  54217. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
  54218. const void * pNext = {};
  54219. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  54220. };
  54221. template <>
  54222. struct CppType<StructureType, StructureType::ePhysicalDeviceExternalSemaphoreInfo>
  54223. {
  54224. using Type = PhysicalDeviceExternalSemaphoreInfo;
  54225. };
  54226. using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
  54227. struct PhysicalDeviceFaultFeaturesEXT
  54228. {
  54229. using NativeType = VkPhysicalDeviceFaultFeaturesEXT;
  54230. static const bool allowDuplicate = false;
  54231. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFaultFeaturesEXT;
  54232. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54233. VULKAN_HPP_CONSTEXPR PhysicalDeviceFaultFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 deviceFault_ = {},
  54234. VULKAN_HPP_NAMESPACE::Bool32 deviceFaultVendorBinary_ = {},
  54235. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54236. : pNext( pNext_ )
  54237. , deviceFault( deviceFault_ )
  54238. , deviceFaultVendorBinary( deviceFaultVendorBinary_ )
  54239. {
  54240. }
  54241. VULKAN_HPP_CONSTEXPR PhysicalDeviceFaultFeaturesEXT( PhysicalDeviceFaultFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54242. PhysicalDeviceFaultFeaturesEXT( VkPhysicalDeviceFaultFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  54243. : PhysicalDeviceFaultFeaturesEXT( *reinterpret_cast<PhysicalDeviceFaultFeaturesEXT const *>( &rhs ) )
  54244. {
  54245. }
  54246. PhysicalDeviceFaultFeaturesEXT & operator=( PhysicalDeviceFaultFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54247. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54248. PhysicalDeviceFaultFeaturesEXT & operator=( VkPhysicalDeviceFaultFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  54249. {
  54250. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT const *>( &rhs );
  54251. return *this;
  54252. }
  54253. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54254. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFaultFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54255. {
  54256. pNext = pNext_;
  54257. return *this;
  54258. }
  54259. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFaultFeaturesEXT & setDeviceFault( VULKAN_HPP_NAMESPACE::Bool32 deviceFault_ ) VULKAN_HPP_NOEXCEPT
  54260. {
  54261. deviceFault = deviceFault_;
  54262. return *this;
  54263. }
  54264. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFaultFeaturesEXT &
  54265. setDeviceFaultVendorBinary( VULKAN_HPP_NAMESPACE::Bool32 deviceFaultVendorBinary_ ) VULKAN_HPP_NOEXCEPT
  54266. {
  54267. deviceFaultVendorBinary = deviceFaultVendorBinary_;
  54268. return *this;
  54269. }
  54270. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54271. operator VkPhysicalDeviceFaultFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  54272. {
  54273. return *reinterpret_cast<const VkPhysicalDeviceFaultFeaturesEXT *>( this );
  54274. }
  54275. operator VkPhysicalDeviceFaultFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  54276. {
  54277. return *reinterpret_cast<VkPhysicalDeviceFaultFeaturesEXT *>( this );
  54278. }
  54279. #if defined( VULKAN_HPP_USE_REFLECT )
  54280. # if 14 <= VULKAN_HPP_CPP_VERSION
  54281. auto
  54282. # else
  54283. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54284. # endif
  54285. reflect() const VULKAN_HPP_NOEXCEPT
  54286. {
  54287. return std::tie( sType, pNext, deviceFault, deviceFaultVendorBinary );
  54288. }
  54289. #endif
  54290. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54291. auto operator<=>( PhysicalDeviceFaultFeaturesEXT const & ) const = default;
  54292. #else
  54293. bool operator==( PhysicalDeviceFaultFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  54294. {
  54295. # if defined( VULKAN_HPP_USE_REFLECT )
  54296. return this->reflect() == rhs.reflect();
  54297. # else
  54298. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceFault == rhs.deviceFault ) &&
  54299. ( deviceFaultVendorBinary == rhs.deviceFaultVendorBinary );
  54300. # endif
  54301. }
  54302. bool operator!=( PhysicalDeviceFaultFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  54303. {
  54304. return !operator==( rhs );
  54305. }
  54306. #endif
  54307. public:
  54308. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFaultFeaturesEXT;
  54309. void * pNext = {};
  54310. VULKAN_HPP_NAMESPACE::Bool32 deviceFault = {};
  54311. VULKAN_HPP_NAMESPACE::Bool32 deviceFaultVendorBinary = {};
  54312. };
  54313. template <>
  54314. struct CppType<StructureType, StructureType::ePhysicalDeviceFaultFeaturesEXT>
  54315. {
  54316. using Type = PhysicalDeviceFaultFeaturesEXT;
  54317. };
  54318. struct PhysicalDeviceFeatures2
  54319. {
  54320. using NativeType = VkPhysicalDeviceFeatures2;
  54321. static const bool allowDuplicate = false;
  54322. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFeatures2;
  54323. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54324. VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54325. : pNext( pNext_ )
  54326. , features( features_ )
  54327. {
  54328. }
  54329. VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54330. PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
  54331. : PhysicalDeviceFeatures2( *reinterpret_cast<PhysicalDeviceFeatures2 const *>( &rhs ) )
  54332. {
  54333. }
  54334. PhysicalDeviceFeatures2 & operator=( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54335. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54336. PhysicalDeviceFeatures2 & operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT
  54337. {
  54338. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 const *>( &rhs );
  54339. return *this;
  54340. }
  54341. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54342. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures2 & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54343. {
  54344. pNext = pNext_;
  54345. return *this;
  54346. }
  54347. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures2 & setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & features_ ) VULKAN_HPP_NOEXCEPT
  54348. {
  54349. features = features_;
  54350. return *this;
  54351. }
  54352. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54353. operator VkPhysicalDeviceFeatures2 const &() const VULKAN_HPP_NOEXCEPT
  54354. {
  54355. return *reinterpret_cast<const VkPhysicalDeviceFeatures2 *>( this );
  54356. }
  54357. operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT
  54358. {
  54359. return *reinterpret_cast<VkPhysicalDeviceFeatures2 *>( this );
  54360. }
  54361. #if defined( VULKAN_HPP_USE_REFLECT )
  54362. # if 14 <= VULKAN_HPP_CPP_VERSION
  54363. auto
  54364. # else
  54365. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const &>
  54366. # endif
  54367. reflect() const VULKAN_HPP_NOEXCEPT
  54368. {
  54369. return std::tie( sType, pNext, features );
  54370. }
  54371. #endif
  54372. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54373. auto operator<=>( PhysicalDeviceFeatures2 const & ) const = default;
  54374. #else
  54375. bool operator==( PhysicalDeviceFeatures2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  54376. {
  54377. # if defined( VULKAN_HPP_USE_REFLECT )
  54378. return this->reflect() == rhs.reflect();
  54379. # else
  54380. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( features == rhs.features );
  54381. # endif
  54382. }
  54383. bool operator!=( PhysicalDeviceFeatures2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  54384. {
  54385. return !operator==( rhs );
  54386. }
  54387. #endif
  54388. public:
  54389. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2;
  54390. void * pNext = {};
  54391. VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {};
  54392. };
  54393. template <>
  54394. struct CppType<StructureType, StructureType::ePhysicalDeviceFeatures2>
  54395. {
  54396. using Type = PhysicalDeviceFeatures2;
  54397. };
  54398. using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
  54399. struct PhysicalDeviceFloatControlsProperties
  54400. {
  54401. using NativeType = VkPhysicalDeviceFloatControlsProperties;
  54402. static const bool allowDuplicate = false;
  54403. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFloatControlsProperties;
  54404. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54405. VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties(
  54406. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
  54407. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
  54408. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {},
  54409. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {},
  54410. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {},
  54411. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {},
  54412. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {},
  54413. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {},
  54414. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {},
  54415. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {},
  54416. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {},
  54417. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {},
  54418. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {},
  54419. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {},
  54420. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {},
  54421. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {},
  54422. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {},
  54423. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54424. : pNext( pNext_ )
  54425. , denormBehaviorIndependence( denormBehaviorIndependence_ )
  54426. , roundingModeIndependence( roundingModeIndependence_ )
  54427. , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ )
  54428. , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ )
  54429. , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ )
  54430. , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ )
  54431. , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ )
  54432. , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ )
  54433. , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ )
  54434. , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ )
  54435. , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ )
  54436. , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ )
  54437. , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ )
  54438. , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ )
  54439. , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ )
  54440. , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ )
  54441. , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ )
  54442. {
  54443. }
  54444. VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54445. PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  54446. : PhysicalDeviceFloatControlsProperties( *reinterpret_cast<PhysicalDeviceFloatControlsProperties const *>( &rhs ) )
  54447. {
  54448. }
  54449. PhysicalDeviceFloatControlsProperties & operator=( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54450. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54451. PhysicalDeviceFloatControlsProperties & operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  54452. {
  54453. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties const *>( &rhs );
  54454. return *this;
  54455. }
  54456. operator VkPhysicalDeviceFloatControlsProperties const &() const VULKAN_HPP_NOEXCEPT
  54457. {
  54458. return *reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties *>( this );
  54459. }
  54460. operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT
  54461. {
  54462. return *reinterpret_cast<VkPhysicalDeviceFloatControlsProperties *>( this );
  54463. }
  54464. #if defined( VULKAN_HPP_USE_REFLECT )
  54465. # if 14 <= VULKAN_HPP_CPP_VERSION
  54466. auto
  54467. # else
  54468. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  54469. void * const &,
  54470. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &,
  54471. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &,
  54472. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54473. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54474. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54475. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54476. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54477. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54478. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54479. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54480. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54481. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54482. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54483. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54484. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54485. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54486. VULKAN_HPP_NAMESPACE::Bool32 const &>
  54487. # endif
  54488. reflect() const VULKAN_HPP_NOEXCEPT
  54489. {
  54490. return std::tie( sType,
  54491. pNext,
  54492. denormBehaviorIndependence,
  54493. roundingModeIndependence,
  54494. shaderSignedZeroInfNanPreserveFloat16,
  54495. shaderSignedZeroInfNanPreserveFloat32,
  54496. shaderSignedZeroInfNanPreserveFloat64,
  54497. shaderDenormPreserveFloat16,
  54498. shaderDenormPreserveFloat32,
  54499. shaderDenormPreserveFloat64,
  54500. shaderDenormFlushToZeroFloat16,
  54501. shaderDenormFlushToZeroFloat32,
  54502. shaderDenormFlushToZeroFloat64,
  54503. shaderRoundingModeRTEFloat16,
  54504. shaderRoundingModeRTEFloat32,
  54505. shaderRoundingModeRTEFloat64,
  54506. shaderRoundingModeRTZFloat16,
  54507. shaderRoundingModeRTZFloat32,
  54508. shaderRoundingModeRTZFloat64 );
  54509. }
  54510. #endif
  54511. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54512. auto operator<=>( PhysicalDeviceFloatControlsProperties const & ) const = default;
  54513. #else
  54514. bool operator==( PhysicalDeviceFloatControlsProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  54515. {
  54516. # if defined( VULKAN_HPP_USE_REFLECT )
  54517. return this->reflect() == rhs.reflect();
  54518. # else
  54519. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) &&
  54520. ( roundingModeIndependence == rhs.roundingModeIndependence ) &&
  54521. ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) &&
  54522. ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) &&
  54523. ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) &&
  54524. ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) &&
  54525. ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) &&
  54526. ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) &&
  54527. ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) &&
  54528. ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) &&
  54529. ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) &&
  54530. ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 );
  54531. # endif
  54532. }
  54533. bool operator!=( PhysicalDeviceFloatControlsProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  54534. {
  54535. return !operator==( rhs );
  54536. }
  54537. #endif
  54538. public:
  54539. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties;
  54540. void * pNext = {};
  54541. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
  54542. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
  54543. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
  54544. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
  54545. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
  54546. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
  54547. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
  54548. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
  54549. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
  54550. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
  54551. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
  54552. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
  54553. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
  54554. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
  54555. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
  54556. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
  54557. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
  54558. };
  54559. template <>
  54560. struct CppType<StructureType, StructureType::ePhysicalDeviceFloatControlsProperties>
  54561. {
  54562. using Type = PhysicalDeviceFloatControlsProperties;
  54563. };
  54564. using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
  54565. struct PhysicalDeviceFragmentDensityMap2FeaturesEXT
  54566. {
  54567. using NativeType = VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
  54568. static const bool allowDuplicate = false;
  54569. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
  54570. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54571. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ = {},
  54572. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54573. : pNext( pNext_ )
  54574. , fragmentDensityMapDeferred( fragmentDensityMapDeferred_ )
  54575. {
  54576. }
  54577. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54578. PhysicalDeviceFragmentDensityMap2FeaturesEXT( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  54579. : PhysicalDeviceFragmentDensityMap2FeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMap2FeaturesEXT const *>( &rhs ) )
  54580. {
  54581. }
  54582. PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54583. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54584. PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  54585. {
  54586. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT const *>( &rhs );
  54587. return *this;
  54588. }
  54589. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54590. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54591. {
  54592. pNext = pNext_;
  54593. return *this;
  54594. }
  54595. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2FeaturesEXT &
  54596. setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT
  54597. {
  54598. fragmentDensityMapDeferred = fragmentDensityMapDeferred_;
  54599. return *this;
  54600. }
  54601. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54602. operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  54603. {
  54604. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT *>( this );
  54605. }
  54606. operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  54607. {
  54608. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT *>( this );
  54609. }
  54610. #if defined( VULKAN_HPP_USE_REFLECT )
  54611. # if 14 <= VULKAN_HPP_CPP_VERSION
  54612. auto
  54613. # else
  54614. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54615. # endif
  54616. reflect() const VULKAN_HPP_NOEXCEPT
  54617. {
  54618. return std::tie( sType, pNext, fragmentDensityMapDeferred );
  54619. }
  54620. #endif
  54621. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54622. auto operator<=>( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & ) const = default;
  54623. #else
  54624. bool operator==( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  54625. {
  54626. # if defined( VULKAN_HPP_USE_REFLECT )
  54627. return this->reflect() == rhs.reflect();
  54628. # else
  54629. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityMapDeferred == rhs.fragmentDensityMapDeferred );
  54630. # endif
  54631. }
  54632. bool operator!=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  54633. {
  54634. return !operator==( rhs );
  54635. }
  54636. #endif
  54637. public:
  54638. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT;
  54639. void * pNext = {};
  54640. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred = {};
  54641. };
  54642. template <>
  54643. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT>
  54644. {
  54645. using Type = PhysicalDeviceFragmentDensityMap2FeaturesEXT;
  54646. };
  54647. struct PhysicalDeviceFragmentDensityMap2PropertiesEXT
  54648. {
  54649. using NativeType = VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
  54650. static const bool allowDuplicate = false;
  54651. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
  54652. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54653. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads_ = {},
  54654. VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess_ = {},
  54655. uint32_t maxSubsampledArrayLayers_ = {},
  54656. uint32_t maxDescriptorSetSubsampledSamplers_ = {},
  54657. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54658. : pNext( pNext_ )
  54659. , subsampledLoads( subsampledLoads_ )
  54660. , subsampledCoarseReconstructionEarlyAccess( subsampledCoarseReconstructionEarlyAccess_ )
  54661. , maxSubsampledArrayLayers( maxSubsampledArrayLayers_ )
  54662. , maxDescriptorSetSubsampledSamplers( maxDescriptorSetSubsampledSamplers_ )
  54663. {
  54664. }
  54665. VULKAN_HPP_CONSTEXPR
  54666. PhysicalDeviceFragmentDensityMap2PropertiesEXT( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54667. PhysicalDeviceFragmentDensityMap2PropertiesEXT( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  54668. : PhysicalDeviceFragmentDensityMap2PropertiesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMap2PropertiesEXT const *>( &rhs ) )
  54669. {
  54670. }
  54671. PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54672. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54673. PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  54674. {
  54675. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT const *>( &rhs );
  54676. return *this;
  54677. }
  54678. operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  54679. {
  54680. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT *>( this );
  54681. }
  54682. operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
  54683. {
  54684. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT *>( this );
  54685. }
  54686. #if defined( VULKAN_HPP_USE_REFLECT )
  54687. # if 14 <= VULKAN_HPP_CPP_VERSION
  54688. auto
  54689. # else
  54690. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  54691. void * const &,
  54692. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54693. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54694. uint32_t const &,
  54695. uint32_t const &>
  54696. # endif
  54697. reflect() const VULKAN_HPP_NOEXCEPT
  54698. {
  54699. return std::tie( sType, pNext, subsampledLoads, subsampledCoarseReconstructionEarlyAccess, maxSubsampledArrayLayers, maxDescriptorSetSubsampledSamplers );
  54700. }
  54701. #endif
  54702. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54703. auto operator<=>( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & ) const = default;
  54704. #else
  54705. bool operator==( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  54706. {
  54707. # if defined( VULKAN_HPP_USE_REFLECT )
  54708. return this->reflect() == rhs.reflect();
  54709. # else
  54710. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subsampledLoads == rhs.subsampledLoads ) &&
  54711. ( subsampledCoarseReconstructionEarlyAccess == rhs.subsampledCoarseReconstructionEarlyAccess ) &&
  54712. ( maxSubsampledArrayLayers == rhs.maxSubsampledArrayLayers ) && ( maxDescriptorSetSubsampledSamplers == rhs.maxDescriptorSetSubsampledSamplers );
  54713. # endif
  54714. }
  54715. bool operator!=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  54716. {
  54717. return !operator==( rhs );
  54718. }
  54719. #endif
  54720. public:
  54721. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT;
  54722. void * pNext = {};
  54723. VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads = {};
  54724. VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess = {};
  54725. uint32_t maxSubsampledArrayLayers = {};
  54726. uint32_t maxDescriptorSetSubsampledSamplers = {};
  54727. };
  54728. template <>
  54729. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT>
  54730. {
  54731. using Type = PhysicalDeviceFragmentDensityMap2PropertiesEXT;
  54732. };
  54733. struct PhysicalDeviceFragmentDensityMapFeaturesEXT
  54734. {
  54735. using NativeType = VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
  54736. static const bool allowDuplicate = false;
  54737. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
  54738. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54739. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {},
  54740. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {},
  54741. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {},
  54742. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54743. : pNext( pNext_ )
  54744. , fragmentDensityMap( fragmentDensityMap_ )
  54745. , fragmentDensityMapDynamic( fragmentDensityMapDynamic_ )
  54746. , fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ )
  54747. {
  54748. }
  54749. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54750. PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  54751. : PhysicalDeviceFragmentDensityMapFeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMapFeaturesEXT const *>( &rhs ) )
  54752. {
  54753. }
  54754. PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54755. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54756. PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  54757. {
  54758. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT const *>( &rhs );
  54759. return *this;
  54760. }
  54761. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54762. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54763. {
  54764. pNext = pNext_;
  54765. return *this;
  54766. }
  54767. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT &
  54768. setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT
  54769. {
  54770. fragmentDensityMap = fragmentDensityMap_;
  54771. return *this;
  54772. }
  54773. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT &
  54774. setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT
  54775. {
  54776. fragmentDensityMapDynamic = fragmentDensityMapDynamic_;
  54777. return *this;
  54778. }
  54779. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT &
  54780. setFragmentDensityMapNonSubsampledImages( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT
  54781. {
  54782. fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_;
  54783. return *this;
  54784. }
  54785. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54786. operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  54787. {
  54788. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT *>( this );
  54789. }
  54790. operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  54791. {
  54792. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT *>( this );
  54793. }
  54794. #if defined( VULKAN_HPP_USE_REFLECT )
  54795. # if 14 <= VULKAN_HPP_CPP_VERSION
  54796. auto
  54797. # else
  54798. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  54799. void * const &,
  54800. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54801. VULKAN_HPP_NAMESPACE::Bool32 const &,
  54802. VULKAN_HPP_NAMESPACE::Bool32 const &>
  54803. # endif
  54804. reflect() const VULKAN_HPP_NOEXCEPT
  54805. {
  54806. return std::tie( sType, pNext, fragmentDensityMap, fragmentDensityMapDynamic, fragmentDensityMapNonSubsampledImages );
  54807. }
  54808. #endif
  54809. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54810. auto operator<=>( PhysicalDeviceFragmentDensityMapFeaturesEXT const & ) const = default;
  54811. #else
  54812. bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  54813. {
  54814. # if defined( VULKAN_HPP_USE_REFLECT )
  54815. return this->reflect() == rhs.reflect();
  54816. # else
  54817. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityMap == rhs.fragmentDensityMap ) &&
  54818. ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic ) &&
  54819. ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages );
  54820. # endif
  54821. }
  54822. bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  54823. {
  54824. return !operator==( rhs );
  54825. }
  54826. #endif
  54827. public:
  54828. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
  54829. void * pNext = {};
  54830. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {};
  54831. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {};
  54832. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {};
  54833. };
  54834. template <>
  54835. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT>
  54836. {
  54837. using Type = PhysicalDeviceFragmentDensityMapFeaturesEXT;
  54838. };
  54839. struct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
  54840. {
  54841. using NativeType = VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
  54842. static const bool allowDuplicate = false;
  54843. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
  54844. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54845. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset_ = {},
  54846. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54847. : pNext( pNext_ )
  54848. , fragmentDensityMapOffset( fragmentDensityMapOffset_ )
  54849. {
  54850. }
  54851. VULKAN_HPP_CONSTEXPR
  54852. PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54853. PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  54854. : PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM( *reinterpret_cast<PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const *>( &rhs ) )
  54855. {
  54856. }
  54857. PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM &
  54858. operator=( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54859. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54860. PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM & operator=( VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  54861. {
  54862. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const *>( &rhs );
  54863. return *this;
  54864. }
  54865. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54866. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  54867. {
  54868. pNext = pNext_;
  54869. return *this;
  54870. }
  54871. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM &
  54872. setFragmentDensityMapOffset( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset_ ) VULKAN_HPP_NOEXCEPT
  54873. {
  54874. fragmentDensityMapOffset = fragmentDensityMapOffset_;
  54875. return *this;
  54876. }
  54877. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  54878. operator VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  54879. {
  54880. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM *>( this );
  54881. }
  54882. operator VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  54883. {
  54884. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM *>( this );
  54885. }
  54886. #if defined( VULKAN_HPP_USE_REFLECT )
  54887. # if 14 <= VULKAN_HPP_CPP_VERSION
  54888. auto
  54889. # else
  54890. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  54891. # endif
  54892. reflect() const VULKAN_HPP_NOEXCEPT
  54893. {
  54894. return std::tie( sType, pNext, fragmentDensityMapOffset );
  54895. }
  54896. #endif
  54897. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54898. auto operator<=>( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & ) const = default;
  54899. #else
  54900. bool operator==( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  54901. {
  54902. # if defined( VULKAN_HPP_USE_REFLECT )
  54903. return this->reflect() == rhs.reflect();
  54904. # else
  54905. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityMapOffset == rhs.fragmentDensityMapOffset );
  54906. # endif
  54907. }
  54908. bool operator!=( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  54909. {
  54910. return !operator==( rhs );
  54911. }
  54912. #endif
  54913. public:
  54914. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
  54915. void * pNext = {};
  54916. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapOffset = {};
  54917. };
  54918. template <>
  54919. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>
  54920. {
  54921. using Type = PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
  54922. };
  54923. struct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
  54924. {
  54925. using NativeType = VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
  54926. static const bool allowDuplicate = false;
  54927. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
  54928. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  54929. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( VULKAN_HPP_NAMESPACE::Extent2D fragmentDensityOffsetGranularity_ = {},
  54930. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  54931. : pNext( pNext_ )
  54932. , fragmentDensityOffsetGranularity( fragmentDensityOffsetGranularity_ )
  54933. {
  54934. }
  54935. VULKAN_HPP_CONSTEXPR
  54936. PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54937. PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  54938. : PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM( *reinterpret_cast<PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const *>( &rhs ) )
  54939. {
  54940. }
  54941. PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM &
  54942. operator=( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  54943. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  54944. PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM & operator=( VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  54945. {
  54946. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const *>( &rhs );
  54947. return *this;
  54948. }
  54949. operator VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
  54950. {
  54951. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM *>( this );
  54952. }
  54953. operator VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM &() VULKAN_HPP_NOEXCEPT
  54954. {
  54955. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM *>( this );
  54956. }
  54957. #if defined( VULKAN_HPP_USE_REFLECT )
  54958. # if 14 <= VULKAN_HPP_CPP_VERSION
  54959. auto
  54960. # else
  54961. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
  54962. # endif
  54963. reflect() const VULKAN_HPP_NOEXCEPT
  54964. {
  54965. return std::tie( sType, pNext, fragmentDensityOffsetGranularity );
  54966. }
  54967. #endif
  54968. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  54969. auto operator<=>( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & ) const = default;
  54970. #else
  54971. bool operator==( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  54972. {
  54973. # if defined( VULKAN_HPP_USE_REFLECT )
  54974. return this->reflect() == rhs.reflect();
  54975. # else
  54976. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityOffsetGranularity == rhs.fragmentDensityOffsetGranularity );
  54977. # endif
  54978. }
  54979. bool operator!=( PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  54980. {
  54981. return !operator==( rhs );
  54982. }
  54983. #endif
  54984. public:
  54985. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
  54986. void * pNext = {};
  54987. VULKAN_HPP_NAMESPACE::Extent2D fragmentDensityOffsetGranularity = {};
  54988. };
  54989. template <>
  54990. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>
  54991. {
  54992. using Type = PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
  54993. };
  54994. struct PhysicalDeviceFragmentDensityMapPropertiesEXT
  54995. {
  54996. using NativeType = VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
  54997. static const bool allowDuplicate = false;
  54998. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
  54999. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55000. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {},
  55001. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {},
  55002. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {},
  55003. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55004. : pNext( pNext_ )
  55005. , minFragmentDensityTexelSize( minFragmentDensityTexelSize_ )
  55006. , maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ )
  55007. , fragmentDensityInvocations( fragmentDensityInvocations_ )
  55008. {
  55009. }
  55010. VULKAN_HPP_CONSTEXPR
  55011. PhysicalDeviceFragmentDensityMapPropertiesEXT( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55012. PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  55013. : PhysicalDeviceFragmentDensityMapPropertiesEXT( *reinterpret_cast<PhysicalDeviceFragmentDensityMapPropertiesEXT const *>( &rhs ) )
  55014. {
  55015. }
  55016. PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55017. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55018. PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  55019. {
  55020. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT const *>( &rhs );
  55021. return *this;
  55022. }
  55023. operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  55024. {
  55025. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT *>( this );
  55026. }
  55027. operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  55028. {
  55029. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT *>( this );
  55030. }
  55031. #if defined( VULKAN_HPP_USE_REFLECT )
  55032. # if 14 <= VULKAN_HPP_CPP_VERSION
  55033. auto
  55034. # else
  55035. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  55036. void * const &,
  55037. VULKAN_HPP_NAMESPACE::Extent2D const &,
  55038. VULKAN_HPP_NAMESPACE::Extent2D const &,
  55039. VULKAN_HPP_NAMESPACE::Bool32 const &>
  55040. # endif
  55041. reflect() const VULKAN_HPP_NOEXCEPT
  55042. {
  55043. return std::tie( sType, pNext, minFragmentDensityTexelSize, maxFragmentDensityTexelSize, fragmentDensityInvocations );
  55044. }
  55045. #endif
  55046. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55047. auto operator<=>( PhysicalDeviceFragmentDensityMapPropertiesEXT const & ) const = default;
  55048. #else
  55049. bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  55050. {
  55051. # if defined( VULKAN_HPP_USE_REFLECT )
  55052. return this->reflect() == rhs.reflect();
  55053. # else
  55054. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize ) &&
  55055. ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize ) && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations );
  55056. # endif
  55057. }
  55058. bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  55059. {
  55060. return !operator==( rhs );
  55061. }
  55062. #endif
  55063. public:
  55064. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
  55065. void * pNext = {};
  55066. VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {};
  55067. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {};
  55068. VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {};
  55069. };
  55070. template <>
  55071. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT>
  55072. {
  55073. using Type = PhysicalDeviceFragmentDensityMapPropertiesEXT;
  55074. };
  55075. struct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
  55076. {
  55077. using NativeType = VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  55078. static const bool allowDuplicate = false;
  55079. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  55080. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55081. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {},
  55082. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55083. : pNext( pNext_ )
  55084. , fragmentShaderBarycentric( fragmentShaderBarycentric_ )
  55085. {
  55086. }
  55087. VULKAN_HPP_CONSTEXPR
  55088. PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55089. PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55090. : PhysicalDeviceFragmentShaderBarycentricFeaturesKHR( *reinterpret_cast<PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const *>( &rhs ) )
  55091. {
  55092. }
  55093. PhysicalDeviceFragmentShaderBarycentricFeaturesKHR &
  55094. operator=( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55095. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55096. PhysicalDeviceFragmentShaderBarycentricFeaturesKHR & operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55097. {
  55098. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const *>( &rhs );
  55099. return *this;
  55100. }
  55101. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55102. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55103. {
  55104. pNext = pNext_;
  55105. return *this;
  55106. }
  55107. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR &
  55108. setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT
  55109. {
  55110. fragmentShaderBarycentric = fragmentShaderBarycentric_;
  55111. return *this;
  55112. }
  55113. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55114. operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  55115. {
  55116. return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *>( this );
  55117. }
  55118. operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  55119. {
  55120. return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *>( this );
  55121. }
  55122. #if defined( VULKAN_HPP_USE_REFLECT )
  55123. # if 14 <= VULKAN_HPP_CPP_VERSION
  55124. auto
  55125. # else
  55126. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  55127. # endif
  55128. reflect() const VULKAN_HPP_NOEXCEPT
  55129. {
  55130. return std::tie( sType, pNext, fragmentShaderBarycentric );
  55131. }
  55132. #endif
  55133. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55134. auto operator<=>( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & ) const = default;
  55135. #else
  55136. bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  55137. {
  55138. # if defined( VULKAN_HPP_USE_REFLECT )
  55139. return this->reflect() == rhs.reflect();
  55140. # else
  55141. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric );
  55142. # endif
  55143. }
  55144. bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  55145. {
  55146. return !operator==( rhs );
  55147. }
  55148. #endif
  55149. public:
  55150. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  55151. void * pNext = {};
  55152. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {};
  55153. };
  55154. template <>
  55155. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesKHR>
  55156. {
  55157. using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  55158. };
  55159. using PhysicalDeviceFragmentShaderBarycentricFeaturesNV = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  55160. struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
  55161. {
  55162. using NativeType = VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
  55163. static const bool allowDuplicate = false;
  55164. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
  55165. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55166. VULKAN_HPP_CONSTEXPR
  55167. PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 triStripVertexOrderIndependentOfProvokingVertex_ = {},
  55168. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55169. : pNext( pNext_ )
  55170. , triStripVertexOrderIndependentOfProvokingVertex( triStripVertexOrderIndependentOfProvokingVertex_ )
  55171. {
  55172. }
  55173. VULKAN_HPP_CONSTEXPR
  55174. PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55175. PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55176. : PhysicalDeviceFragmentShaderBarycentricPropertiesKHR( *reinterpret_cast<PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const *>( &rhs ) )
  55177. {
  55178. }
  55179. PhysicalDeviceFragmentShaderBarycentricPropertiesKHR &
  55180. operator=( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55181. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55182. PhysicalDeviceFragmentShaderBarycentricPropertiesKHR & operator=( VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55183. {
  55184. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const *>( &rhs );
  55185. return *this;
  55186. }
  55187. operator VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  55188. {
  55189. return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR *>( this );
  55190. }
  55191. operator VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  55192. {
  55193. return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR *>( this );
  55194. }
  55195. #if defined( VULKAN_HPP_USE_REFLECT )
  55196. # if 14 <= VULKAN_HPP_CPP_VERSION
  55197. auto
  55198. # else
  55199. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  55200. # endif
  55201. reflect() const VULKAN_HPP_NOEXCEPT
  55202. {
  55203. return std::tie( sType, pNext, triStripVertexOrderIndependentOfProvokingVertex );
  55204. }
  55205. #endif
  55206. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55207. auto operator<=>( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & ) const = default;
  55208. #else
  55209. bool operator==( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  55210. {
  55211. # if defined( VULKAN_HPP_USE_REFLECT )
  55212. return this->reflect() == rhs.reflect();
  55213. # else
  55214. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  55215. ( triStripVertexOrderIndependentOfProvokingVertex == rhs.triStripVertexOrderIndependentOfProvokingVertex );
  55216. # endif
  55217. }
  55218. bool operator!=( PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  55219. {
  55220. return !operator==( rhs );
  55221. }
  55222. #endif
  55223. public:
  55224. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
  55225. void * pNext = {};
  55226. VULKAN_HPP_NAMESPACE::Bool32 triStripVertexOrderIndependentOfProvokingVertex = {};
  55227. };
  55228. template <>
  55229. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderBarycentricPropertiesKHR>
  55230. {
  55231. using Type = PhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
  55232. };
  55233. struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT
  55234. {
  55235. using NativeType = VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  55236. static const bool allowDuplicate = false;
  55237. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  55238. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55239. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {},
  55240. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {},
  55241. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {},
  55242. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55243. : pNext( pNext_ )
  55244. , fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ )
  55245. , fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ )
  55246. , fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ )
  55247. {
  55248. }
  55249. VULKAN_HPP_CONSTEXPR
  55250. PhysicalDeviceFragmentShaderInterlockFeaturesEXT( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55251. PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  55252. : PhysicalDeviceFragmentShaderInterlockFeaturesEXT( *reinterpret_cast<PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>( &rhs ) )
  55253. {
  55254. }
  55255. PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55256. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55257. PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  55258. {
  55259. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT const *>( &rhs );
  55260. return *this;
  55261. }
  55262. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55263. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55264. {
  55265. pNext = pNext_;
  55266. return *this;
  55267. }
  55268. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT &
  55269. setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT
  55270. {
  55271. fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_;
  55272. return *this;
  55273. }
  55274. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT &
  55275. setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT
  55276. {
  55277. fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_;
  55278. return *this;
  55279. }
  55280. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT &
  55281. setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT
  55282. {
  55283. fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
  55284. return *this;
  55285. }
  55286. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55287. operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  55288. {
  55289. return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *>( this );
  55290. }
  55291. operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  55292. {
  55293. return *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *>( this );
  55294. }
  55295. #if defined( VULKAN_HPP_USE_REFLECT )
  55296. # if 14 <= VULKAN_HPP_CPP_VERSION
  55297. auto
  55298. # else
  55299. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  55300. void * const &,
  55301. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55302. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55303. VULKAN_HPP_NAMESPACE::Bool32 const &>
  55304. # endif
  55305. reflect() const VULKAN_HPP_NOEXCEPT
  55306. {
  55307. return std::tie( sType, pNext, fragmentShaderSampleInterlock, fragmentShaderPixelInterlock, fragmentShaderShadingRateInterlock );
  55308. }
  55309. #endif
  55310. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55311. auto operator<=>( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & ) const = default;
  55312. #else
  55313. bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  55314. {
  55315. # if defined( VULKAN_HPP_USE_REFLECT )
  55316. return this->reflect() == rhs.reflect();
  55317. # else
  55318. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock ) &&
  55319. ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock ) &&
  55320. ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock );
  55321. # endif
  55322. }
  55323. bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  55324. {
  55325. return !operator==( rhs );
  55326. }
  55327. #endif
  55328. public:
  55329. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  55330. void * pNext = {};
  55331. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {};
  55332. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {};
  55333. VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {};
  55334. };
  55335. template <>
  55336. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT>
  55337. {
  55338. using Type = PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  55339. };
  55340. struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV
  55341. {
  55342. using NativeType = VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
  55343. static const bool allowDuplicate = false;
  55344. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
  55345. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55346. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ = {},
  55347. VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ = {},
  55348. VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ = {},
  55349. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55350. : pNext( pNext_ )
  55351. , fragmentShadingRateEnums( fragmentShadingRateEnums_ )
  55352. , supersampleFragmentShadingRates( supersampleFragmentShadingRates_ )
  55353. , noInvocationFragmentShadingRates( noInvocationFragmentShadingRates_ )
  55354. {
  55355. }
  55356. VULKAN_HPP_CONSTEXPR
  55357. PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55358. PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55359. : PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( *reinterpret_cast<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const *>( &rhs ) )
  55360. {
  55361. }
  55362. PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55363. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55364. PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55365. {
  55366. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const *>( &rhs );
  55367. return *this;
  55368. }
  55369. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55370. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55371. {
  55372. pNext = pNext_;
  55373. return *this;
  55374. }
  55375. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV &
  55376. setFragmentShadingRateEnums( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ ) VULKAN_HPP_NOEXCEPT
  55377. {
  55378. fragmentShadingRateEnums = fragmentShadingRateEnums_;
  55379. return *this;
  55380. }
  55381. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV &
  55382. setSupersampleFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
  55383. {
  55384. supersampleFragmentShadingRates = supersampleFragmentShadingRates_;
  55385. return *this;
  55386. }
  55387. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV &
  55388. setNoInvocationFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT
  55389. {
  55390. noInvocationFragmentShadingRates = noInvocationFragmentShadingRates_;
  55391. return *this;
  55392. }
  55393. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55394. operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  55395. {
  55396. return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV *>( this );
  55397. }
  55398. operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV &() VULKAN_HPP_NOEXCEPT
  55399. {
  55400. return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV *>( this );
  55401. }
  55402. #if defined( VULKAN_HPP_USE_REFLECT )
  55403. # if 14 <= VULKAN_HPP_CPP_VERSION
  55404. auto
  55405. # else
  55406. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  55407. void * const &,
  55408. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55409. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55410. VULKAN_HPP_NAMESPACE::Bool32 const &>
  55411. # endif
  55412. reflect() const VULKAN_HPP_NOEXCEPT
  55413. {
  55414. return std::tie( sType, pNext, fragmentShadingRateEnums, supersampleFragmentShadingRates, noInvocationFragmentShadingRates );
  55415. }
  55416. #endif
  55417. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55418. auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & ) const = default;
  55419. #else
  55420. bool operator==( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55421. {
  55422. # if defined( VULKAN_HPP_USE_REFLECT )
  55423. return this->reflect() == rhs.reflect();
  55424. # else
  55425. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentShadingRateEnums == rhs.fragmentShadingRateEnums ) &&
  55426. ( supersampleFragmentShadingRates == rhs.supersampleFragmentShadingRates ) &&
  55427. ( noInvocationFragmentShadingRates == rhs.noInvocationFragmentShadingRates );
  55428. # endif
  55429. }
  55430. bool operator!=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55431. {
  55432. return !operator==( rhs );
  55433. }
  55434. #endif
  55435. public:
  55436. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
  55437. void * pNext = {};
  55438. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums = {};
  55439. VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates = {};
  55440. VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates = {};
  55441. };
  55442. template <>
  55443. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV>
  55444. {
  55445. using Type = PhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
  55446. };
  55447. struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV
  55448. {
  55449. using NativeType = VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
  55450. static const bool allowDuplicate = false;
  55451. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
  55452. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55453. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
  55454. VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  55455. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55456. : pNext( pNext_ )
  55457. , maxFragmentShadingRateInvocationCount( maxFragmentShadingRateInvocationCount_ )
  55458. {
  55459. }
  55460. VULKAN_HPP_CONSTEXPR
  55461. PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55462. PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55463. : PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( *reinterpret_cast<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const *>( &rhs ) )
  55464. {
  55465. }
  55466. PhysicalDeviceFragmentShadingRateEnumsPropertiesNV &
  55467. operator=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55468. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55469. PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  55470. {
  55471. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const *>( &rhs );
  55472. return *this;
  55473. }
  55474. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55475. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55476. {
  55477. pNext = pNext_;
  55478. return *this;
  55479. }
  55480. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV &
  55481. setMaxFragmentShadingRateInvocationCount( VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ ) VULKAN_HPP_NOEXCEPT
  55482. {
  55483. maxFragmentShadingRateInvocationCount = maxFragmentShadingRateInvocationCount_;
  55484. return *this;
  55485. }
  55486. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55487. operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  55488. {
  55489. return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV *>( this );
  55490. }
  55491. operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV &() VULKAN_HPP_NOEXCEPT
  55492. {
  55493. return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV *>( this );
  55494. }
  55495. #if defined( VULKAN_HPP_USE_REFLECT )
  55496. # if 14 <= VULKAN_HPP_CPP_VERSION
  55497. auto
  55498. # else
  55499. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &>
  55500. # endif
  55501. reflect() const VULKAN_HPP_NOEXCEPT
  55502. {
  55503. return std::tie( sType, pNext, maxFragmentShadingRateInvocationCount );
  55504. }
  55505. #endif
  55506. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55507. auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & ) const = default;
  55508. #else
  55509. bool operator==( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55510. {
  55511. # if defined( VULKAN_HPP_USE_REFLECT )
  55512. return this->reflect() == rhs.reflect();
  55513. # else
  55514. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxFragmentShadingRateInvocationCount == rhs.maxFragmentShadingRateInvocationCount );
  55515. # endif
  55516. }
  55517. bool operator!=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  55518. {
  55519. return !operator==( rhs );
  55520. }
  55521. #endif
  55522. public:
  55523. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
  55524. void * pNext = {};
  55525. VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  55526. };
  55527. template <>
  55528. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV>
  55529. {
  55530. using Type = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
  55531. };
  55532. struct PhysicalDeviceFragmentShadingRateFeaturesKHR
  55533. {
  55534. using NativeType = VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
  55535. static const bool allowDuplicate = false;
  55536. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
  55537. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55538. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ = {},
  55539. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ = {},
  55540. VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ = {},
  55541. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55542. : pNext( pNext_ )
  55543. , pipelineFragmentShadingRate( pipelineFragmentShadingRate_ )
  55544. , primitiveFragmentShadingRate( primitiveFragmentShadingRate_ )
  55545. , attachmentFragmentShadingRate( attachmentFragmentShadingRate_ )
  55546. {
  55547. }
  55548. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55549. PhysicalDeviceFragmentShadingRateFeaturesKHR( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55550. : PhysicalDeviceFragmentShadingRateFeaturesKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRateFeaturesKHR const *>( &rhs ) )
  55551. {
  55552. }
  55553. PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55554. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55555. PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55556. {
  55557. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR const *>( &rhs );
  55558. return *this;
  55559. }
  55560. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55561. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55562. {
  55563. pNext = pNext_;
  55564. return *this;
  55565. }
  55566. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR &
  55567. setPipelineFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
  55568. {
  55569. pipelineFragmentShadingRate = pipelineFragmentShadingRate_;
  55570. return *this;
  55571. }
  55572. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR &
  55573. setPrimitiveFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
  55574. {
  55575. primitiveFragmentShadingRate = primitiveFragmentShadingRate_;
  55576. return *this;
  55577. }
  55578. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR &
  55579. setAttachmentFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT
  55580. {
  55581. attachmentFragmentShadingRate = attachmentFragmentShadingRate_;
  55582. return *this;
  55583. }
  55584. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55585. operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  55586. {
  55587. return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR *>( this );
  55588. }
  55589. operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  55590. {
  55591. return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR *>( this );
  55592. }
  55593. #if defined( VULKAN_HPP_USE_REFLECT )
  55594. # if 14 <= VULKAN_HPP_CPP_VERSION
  55595. auto
  55596. # else
  55597. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  55598. void * const &,
  55599. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55600. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55601. VULKAN_HPP_NAMESPACE::Bool32 const &>
  55602. # endif
  55603. reflect() const VULKAN_HPP_NOEXCEPT
  55604. {
  55605. return std::tie( sType, pNext, pipelineFragmentShadingRate, primitiveFragmentShadingRate, attachmentFragmentShadingRate );
  55606. }
  55607. #endif
  55608. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55609. auto operator<=>( PhysicalDeviceFragmentShadingRateFeaturesKHR const & ) const = default;
  55610. #else
  55611. bool operator==( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  55612. {
  55613. # if defined( VULKAN_HPP_USE_REFLECT )
  55614. return this->reflect() == rhs.reflect();
  55615. # else
  55616. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineFragmentShadingRate == rhs.pipelineFragmentShadingRate ) &&
  55617. ( primitiveFragmentShadingRate == rhs.primitiveFragmentShadingRate ) && ( attachmentFragmentShadingRate == rhs.attachmentFragmentShadingRate );
  55618. # endif
  55619. }
  55620. bool operator!=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  55621. {
  55622. return !operator==( rhs );
  55623. }
  55624. #endif
  55625. public:
  55626. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR;
  55627. void * pNext = {};
  55628. VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate = {};
  55629. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate = {};
  55630. VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate = {};
  55631. };
  55632. template <>
  55633. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR>
  55634. {
  55635. using Type = PhysicalDeviceFragmentShadingRateFeaturesKHR;
  55636. };
  55637. struct PhysicalDeviceFragmentShadingRateKHR
  55638. {
  55639. using NativeType = VkPhysicalDeviceFragmentShadingRateKHR;
  55640. static const bool allowDuplicate = false;
  55641. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
  55642. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55643. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {},
  55644. VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {},
  55645. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55646. : pNext( pNext_ )
  55647. , sampleCounts( sampleCounts_ )
  55648. , fragmentSize( fragmentSize_ )
  55649. {
  55650. }
  55651. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55652. PhysicalDeviceFragmentShadingRateKHR( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55653. : PhysicalDeviceFragmentShadingRateKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRateKHR const *>( &rhs ) )
  55654. {
  55655. }
  55656. PhysicalDeviceFragmentShadingRateKHR & operator=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55657. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55658. PhysicalDeviceFragmentShadingRateKHR & operator=( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55659. {
  55660. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR const *>( &rhs );
  55661. return *this;
  55662. }
  55663. operator VkPhysicalDeviceFragmentShadingRateKHR const &() const VULKAN_HPP_NOEXCEPT
  55664. {
  55665. return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateKHR *>( this );
  55666. }
  55667. operator VkPhysicalDeviceFragmentShadingRateKHR &() VULKAN_HPP_NOEXCEPT
  55668. {
  55669. return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( this );
  55670. }
  55671. #if defined( VULKAN_HPP_USE_REFLECT )
  55672. # if 14 <= VULKAN_HPP_CPP_VERSION
  55673. auto
  55674. # else
  55675. std::
  55676. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SampleCountFlags const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
  55677. # endif
  55678. reflect() const VULKAN_HPP_NOEXCEPT
  55679. {
  55680. return std::tie( sType, pNext, sampleCounts, fragmentSize );
  55681. }
  55682. #endif
  55683. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55684. auto operator<=>( PhysicalDeviceFragmentShadingRateKHR const & ) const = default;
  55685. #else
  55686. bool operator==( PhysicalDeviceFragmentShadingRateKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  55687. {
  55688. # if defined( VULKAN_HPP_USE_REFLECT )
  55689. return this->reflect() == rhs.reflect();
  55690. # else
  55691. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleCounts == rhs.sampleCounts ) && ( fragmentSize == rhs.fragmentSize );
  55692. # endif
  55693. }
  55694. bool operator!=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  55695. {
  55696. return !operator==( rhs );
  55697. }
  55698. #endif
  55699. public:
  55700. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateKHR;
  55701. void * pNext = {};
  55702. VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {};
  55703. VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
  55704. };
  55705. template <>
  55706. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRateKHR>
  55707. {
  55708. using Type = PhysicalDeviceFragmentShadingRateKHR;
  55709. };
  55710. struct PhysicalDeviceFragmentShadingRatePropertiesKHR
  55711. {
  55712. using NativeType = VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
  55713. static const bool allowDuplicate = false;
  55714. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
  55715. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55716. VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR(
  55717. VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize_ = {},
  55718. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize_ = {},
  55719. uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ = {},
  55720. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports_ = {},
  55721. VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments_ = {},
  55722. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps_ = {},
  55723. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize_ = {},
  55724. uint32_t maxFragmentSizeAspectRatio_ = {},
  55725. uint32_t maxFragmentShadingRateCoverageSamples_ = {},
  55726. VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  55727. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites_ = {},
  55728. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask_ = {},
  55729. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask_ = {},
  55730. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization_ = {},
  55731. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock_ = {},
  55732. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations_ = {},
  55733. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner_ = {},
  55734. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55735. : pNext( pNext_ )
  55736. , minFragmentShadingRateAttachmentTexelSize( minFragmentShadingRateAttachmentTexelSize_ )
  55737. , maxFragmentShadingRateAttachmentTexelSize( maxFragmentShadingRateAttachmentTexelSize_ )
  55738. , maxFragmentShadingRateAttachmentTexelSizeAspectRatio( maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ )
  55739. , primitiveFragmentShadingRateWithMultipleViewports( primitiveFragmentShadingRateWithMultipleViewports_ )
  55740. , layeredShadingRateAttachments( layeredShadingRateAttachments_ )
  55741. , fragmentShadingRateNonTrivialCombinerOps( fragmentShadingRateNonTrivialCombinerOps_ )
  55742. , maxFragmentSize( maxFragmentSize_ )
  55743. , maxFragmentSizeAspectRatio( maxFragmentSizeAspectRatio_ )
  55744. , maxFragmentShadingRateCoverageSamples( maxFragmentShadingRateCoverageSamples_ )
  55745. , maxFragmentShadingRateRasterizationSamples( maxFragmentShadingRateRasterizationSamples_ )
  55746. , fragmentShadingRateWithShaderDepthStencilWrites( fragmentShadingRateWithShaderDepthStencilWrites_ )
  55747. , fragmentShadingRateWithSampleMask( fragmentShadingRateWithSampleMask_ )
  55748. , fragmentShadingRateWithShaderSampleMask( fragmentShadingRateWithShaderSampleMask_ )
  55749. , fragmentShadingRateWithConservativeRasterization( fragmentShadingRateWithConservativeRasterization_ )
  55750. , fragmentShadingRateWithFragmentShaderInterlock( fragmentShadingRateWithFragmentShaderInterlock_ )
  55751. , fragmentShadingRateWithCustomSampleLocations( fragmentShadingRateWithCustomSampleLocations_ )
  55752. , fragmentShadingRateStrictMultiplyCombiner( fragmentShadingRateStrictMultiplyCombiner_ )
  55753. {
  55754. }
  55755. VULKAN_HPP_CONSTEXPR
  55756. PhysicalDeviceFragmentShadingRatePropertiesKHR( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55757. PhysicalDeviceFragmentShadingRatePropertiesKHR( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55758. : PhysicalDeviceFragmentShadingRatePropertiesKHR( *reinterpret_cast<PhysicalDeviceFragmentShadingRatePropertiesKHR const *>( &rhs ) )
  55759. {
  55760. }
  55761. PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55762. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55763. PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55764. {
  55765. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR const *>( &rhs );
  55766. return *this;
  55767. }
  55768. operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  55769. {
  55770. return *reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR *>( this );
  55771. }
  55772. operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  55773. {
  55774. return *reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR *>( this );
  55775. }
  55776. #if defined( VULKAN_HPP_USE_REFLECT )
  55777. # if 14 <= VULKAN_HPP_CPP_VERSION
  55778. auto
  55779. # else
  55780. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  55781. void * const &,
  55782. VULKAN_HPP_NAMESPACE::Extent2D const &,
  55783. VULKAN_HPP_NAMESPACE::Extent2D const &,
  55784. uint32_t const &,
  55785. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55786. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55787. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55788. VULKAN_HPP_NAMESPACE::Extent2D const &,
  55789. uint32_t const &,
  55790. uint32_t const &,
  55791. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  55792. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55793. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55794. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55795. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55796. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55797. VULKAN_HPP_NAMESPACE::Bool32 const &,
  55798. VULKAN_HPP_NAMESPACE::Bool32 const &>
  55799. # endif
  55800. reflect() const VULKAN_HPP_NOEXCEPT
  55801. {
  55802. return std::tie( sType,
  55803. pNext,
  55804. minFragmentShadingRateAttachmentTexelSize,
  55805. maxFragmentShadingRateAttachmentTexelSize,
  55806. maxFragmentShadingRateAttachmentTexelSizeAspectRatio,
  55807. primitiveFragmentShadingRateWithMultipleViewports,
  55808. layeredShadingRateAttachments,
  55809. fragmentShadingRateNonTrivialCombinerOps,
  55810. maxFragmentSize,
  55811. maxFragmentSizeAspectRatio,
  55812. maxFragmentShadingRateCoverageSamples,
  55813. maxFragmentShadingRateRasterizationSamples,
  55814. fragmentShadingRateWithShaderDepthStencilWrites,
  55815. fragmentShadingRateWithSampleMask,
  55816. fragmentShadingRateWithShaderSampleMask,
  55817. fragmentShadingRateWithConservativeRasterization,
  55818. fragmentShadingRateWithFragmentShaderInterlock,
  55819. fragmentShadingRateWithCustomSampleLocations,
  55820. fragmentShadingRateStrictMultiplyCombiner );
  55821. }
  55822. #endif
  55823. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55824. auto operator<=>( PhysicalDeviceFragmentShadingRatePropertiesKHR const & ) const = default;
  55825. #else
  55826. bool operator==( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  55827. {
  55828. # if defined( VULKAN_HPP_USE_REFLECT )
  55829. return this->reflect() == rhs.reflect();
  55830. # else
  55831. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  55832. ( minFragmentShadingRateAttachmentTexelSize == rhs.minFragmentShadingRateAttachmentTexelSize ) &&
  55833. ( maxFragmentShadingRateAttachmentTexelSize == rhs.maxFragmentShadingRateAttachmentTexelSize ) &&
  55834. ( maxFragmentShadingRateAttachmentTexelSizeAspectRatio == rhs.maxFragmentShadingRateAttachmentTexelSizeAspectRatio ) &&
  55835. ( primitiveFragmentShadingRateWithMultipleViewports == rhs.primitiveFragmentShadingRateWithMultipleViewports ) &&
  55836. ( layeredShadingRateAttachments == rhs.layeredShadingRateAttachments ) &&
  55837. ( fragmentShadingRateNonTrivialCombinerOps == rhs.fragmentShadingRateNonTrivialCombinerOps ) && ( maxFragmentSize == rhs.maxFragmentSize ) &&
  55838. ( maxFragmentSizeAspectRatio == rhs.maxFragmentSizeAspectRatio ) &&
  55839. ( maxFragmentShadingRateCoverageSamples == rhs.maxFragmentShadingRateCoverageSamples ) &&
  55840. ( maxFragmentShadingRateRasterizationSamples == rhs.maxFragmentShadingRateRasterizationSamples ) &&
  55841. ( fragmentShadingRateWithShaderDepthStencilWrites == rhs.fragmentShadingRateWithShaderDepthStencilWrites ) &&
  55842. ( fragmentShadingRateWithSampleMask == rhs.fragmentShadingRateWithSampleMask ) &&
  55843. ( fragmentShadingRateWithShaderSampleMask == rhs.fragmentShadingRateWithShaderSampleMask ) &&
  55844. ( fragmentShadingRateWithConservativeRasterization == rhs.fragmentShadingRateWithConservativeRasterization ) &&
  55845. ( fragmentShadingRateWithFragmentShaderInterlock == rhs.fragmentShadingRateWithFragmentShaderInterlock ) &&
  55846. ( fragmentShadingRateWithCustomSampleLocations == rhs.fragmentShadingRateWithCustomSampleLocations ) &&
  55847. ( fragmentShadingRateStrictMultiplyCombiner == rhs.fragmentShadingRateStrictMultiplyCombiner );
  55848. # endif
  55849. }
  55850. bool operator!=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  55851. {
  55852. return !operator==( rhs );
  55853. }
  55854. #endif
  55855. public:
  55856. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR;
  55857. void * pNext = {};
  55858. VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize = {};
  55859. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize = {};
  55860. uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio = {};
  55861. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports = {};
  55862. VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments = {};
  55863. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps = {};
  55864. VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize = {};
  55865. uint32_t maxFragmentSizeAspectRatio = {};
  55866. uint32_t maxFragmentShadingRateCoverageSamples = {};
  55867. VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  55868. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites = {};
  55869. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask = {};
  55870. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask = {};
  55871. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization = {};
  55872. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock = {};
  55873. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations = {};
  55874. VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner = {};
  55875. };
  55876. template <>
  55877. struct CppType<StructureType, StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR>
  55878. {
  55879. using Type = PhysicalDeviceFragmentShadingRatePropertiesKHR;
  55880. };
  55881. struct PhysicalDeviceFrameBoundaryFeaturesEXT
  55882. {
  55883. using NativeType = VkPhysicalDeviceFrameBoundaryFeaturesEXT;
  55884. static const bool allowDuplicate = false;
  55885. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT;
  55886. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55887. VULKAN_HPP_CONSTEXPR PhysicalDeviceFrameBoundaryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 frameBoundary_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55888. : pNext( pNext_ )
  55889. , frameBoundary( frameBoundary_ )
  55890. {
  55891. }
  55892. VULKAN_HPP_CONSTEXPR PhysicalDeviceFrameBoundaryFeaturesEXT( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55893. PhysicalDeviceFrameBoundaryFeaturesEXT( VkPhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  55894. : PhysicalDeviceFrameBoundaryFeaturesEXT( *reinterpret_cast<PhysicalDeviceFrameBoundaryFeaturesEXT const *>( &rhs ) )
  55895. {
  55896. }
  55897. PhysicalDeviceFrameBoundaryFeaturesEXT & operator=( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55898. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55899. PhysicalDeviceFrameBoundaryFeaturesEXT & operator=( VkPhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  55900. {
  55901. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT const *>( &rhs );
  55902. return *this;
  55903. }
  55904. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55905. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFrameBoundaryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55906. {
  55907. pNext = pNext_;
  55908. return *this;
  55909. }
  55910. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFrameBoundaryFeaturesEXT & setFrameBoundary( VULKAN_HPP_NAMESPACE::Bool32 frameBoundary_ ) VULKAN_HPP_NOEXCEPT
  55911. {
  55912. frameBoundary = frameBoundary_;
  55913. return *this;
  55914. }
  55915. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55916. operator VkPhysicalDeviceFrameBoundaryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  55917. {
  55918. return *reinterpret_cast<const VkPhysicalDeviceFrameBoundaryFeaturesEXT *>( this );
  55919. }
  55920. operator VkPhysicalDeviceFrameBoundaryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  55921. {
  55922. return *reinterpret_cast<VkPhysicalDeviceFrameBoundaryFeaturesEXT *>( this );
  55923. }
  55924. #if defined( VULKAN_HPP_USE_REFLECT )
  55925. # if 14 <= VULKAN_HPP_CPP_VERSION
  55926. auto
  55927. # else
  55928. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  55929. # endif
  55930. reflect() const VULKAN_HPP_NOEXCEPT
  55931. {
  55932. return std::tie( sType, pNext, frameBoundary );
  55933. }
  55934. #endif
  55935. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  55936. auto operator<=>( PhysicalDeviceFrameBoundaryFeaturesEXT const & ) const = default;
  55937. #else
  55938. bool operator==( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  55939. {
  55940. # if defined( VULKAN_HPP_USE_REFLECT )
  55941. return this->reflect() == rhs.reflect();
  55942. # else
  55943. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( frameBoundary == rhs.frameBoundary );
  55944. # endif
  55945. }
  55946. bool operator!=( PhysicalDeviceFrameBoundaryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  55947. {
  55948. return !operator==( rhs );
  55949. }
  55950. #endif
  55951. public:
  55952. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT;
  55953. void * pNext = {};
  55954. VULKAN_HPP_NAMESPACE::Bool32 frameBoundary = {};
  55955. };
  55956. template <>
  55957. struct CppType<StructureType, StructureType::ePhysicalDeviceFrameBoundaryFeaturesEXT>
  55958. {
  55959. using Type = PhysicalDeviceFrameBoundaryFeaturesEXT;
  55960. };
  55961. struct PhysicalDeviceGlobalPriorityQueryFeaturesKHR
  55962. {
  55963. using NativeType = VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  55964. static const bool allowDuplicate = false;
  55965. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  55966. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  55967. VULKAN_HPP_CONSTEXPR PhysicalDeviceGlobalPriorityQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery_ = {},
  55968. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  55969. : pNext( pNext_ )
  55970. , globalPriorityQuery( globalPriorityQuery_ )
  55971. {
  55972. }
  55973. VULKAN_HPP_CONSTEXPR PhysicalDeviceGlobalPriorityQueryFeaturesKHR( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55974. PhysicalDeviceGlobalPriorityQueryFeaturesKHR( VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55975. : PhysicalDeviceGlobalPriorityQueryFeaturesKHR( *reinterpret_cast<PhysicalDeviceGlobalPriorityQueryFeaturesKHR const *>( &rhs ) )
  55976. {
  55977. }
  55978. PhysicalDeviceGlobalPriorityQueryFeaturesKHR & operator=( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  55979. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  55980. PhysicalDeviceGlobalPriorityQueryFeaturesKHR & operator=( VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  55981. {
  55982. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR const *>( &rhs );
  55983. return *this;
  55984. }
  55985. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  55986. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGlobalPriorityQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  55987. {
  55988. pNext = pNext_;
  55989. return *this;
  55990. }
  55991. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGlobalPriorityQueryFeaturesKHR &
  55992. setGlobalPriorityQuery( VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery_ ) VULKAN_HPP_NOEXCEPT
  55993. {
  55994. globalPriorityQuery = globalPriorityQuery_;
  55995. return *this;
  55996. }
  55997. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  55998. operator VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  55999. {
  56000. return *reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR *>( this );
  56001. }
  56002. operator VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  56003. {
  56004. return *reinterpret_cast<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR *>( this );
  56005. }
  56006. #if defined( VULKAN_HPP_USE_REFLECT )
  56007. # if 14 <= VULKAN_HPP_CPP_VERSION
  56008. auto
  56009. # else
  56010. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56011. # endif
  56012. reflect() const VULKAN_HPP_NOEXCEPT
  56013. {
  56014. return std::tie( sType, pNext, globalPriorityQuery );
  56015. }
  56016. #endif
  56017. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56018. auto operator<=>( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & ) const = default;
  56019. #else
  56020. bool operator==( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  56021. {
  56022. # if defined( VULKAN_HPP_USE_REFLECT )
  56023. return this->reflect() == rhs.reflect();
  56024. # else
  56025. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( globalPriorityQuery == rhs.globalPriorityQuery );
  56026. # endif
  56027. }
  56028. bool operator!=( PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  56029. {
  56030. return !operator==( rhs );
  56031. }
  56032. #endif
  56033. public:
  56034. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  56035. void * pNext = {};
  56036. VULKAN_HPP_NAMESPACE::Bool32 globalPriorityQuery = {};
  56037. };
  56038. template <>
  56039. struct CppType<StructureType, StructureType::ePhysicalDeviceGlobalPriorityQueryFeaturesKHR>
  56040. {
  56041. using Type = PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  56042. };
  56043. using PhysicalDeviceGlobalPriorityQueryFeaturesEXT = PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  56044. struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
  56045. {
  56046. using NativeType = VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
  56047. static const bool allowDuplicate = false;
  56048. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
  56049. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56050. VULKAN_HPP_CONSTEXPR PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary_ = {},
  56051. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56052. : pNext( pNext_ )
  56053. , graphicsPipelineLibrary( graphicsPipelineLibrary_ )
  56054. {
  56055. }
  56056. VULKAN_HPP_CONSTEXPR
  56057. PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56058. PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56059. : PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT( *reinterpret_cast<PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const *>( &rhs ) )
  56060. {
  56061. }
  56062. PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT & operator=( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56063. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56064. PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT & operator=( VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56065. {
  56066. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const *>( &rhs );
  56067. return *this;
  56068. }
  56069. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56070. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56071. {
  56072. pNext = pNext_;
  56073. return *this;
  56074. }
  56075. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT &
  56076. setGraphicsPipelineLibrary( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary_ ) VULKAN_HPP_NOEXCEPT
  56077. {
  56078. graphicsPipelineLibrary = graphicsPipelineLibrary_;
  56079. return *this;
  56080. }
  56081. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56082. operator VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  56083. {
  56084. return *reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT *>( this );
  56085. }
  56086. operator VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  56087. {
  56088. return *reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT *>( this );
  56089. }
  56090. #if defined( VULKAN_HPP_USE_REFLECT )
  56091. # if 14 <= VULKAN_HPP_CPP_VERSION
  56092. auto
  56093. # else
  56094. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56095. # endif
  56096. reflect() const VULKAN_HPP_NOEXCEPT
  56097. {
  56098. return std::tie( sType, pNext, graphicsPipelineLibrary );
  56099. }
  56100. #endif
  56101. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56102. auto operator<=>( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & ) const = default;
  56103. #else
  56104. bool operator==( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56105. {
  56106. # if defined( VULKAN_HPP_USE_REFLECT )
  56107. return this->reflect() == rhs.reflect();
  56108. # else
  56109. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( graphicsPipelineLibrary == rhs.graphicsPipelineLibrary );
  56110. # endif
  56111. }
  56112. bool operator!=( PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56113. {
  56114. return !operator==( rhs );
  56115. }
  56116. #endif
  56117. public:
  56118. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
  56119. void * pNext = {};
  56120. VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibrary = {};
  56121. };
  56122. template <>
  56123. struct CppType<StructureType, StructureType::ePhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>
  56124. {
  56125. using Type = PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
  56126. };
  56127. struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
  56128. {
  56129. using NativeType = VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
  56130. static const bool allowDuplicate = false;
  56131. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
  56132. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56133. VULKAN_HPP_CONSTEXPR
  56134. PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking_ = {},
  56135. VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryIndependentInterpolationDecoration_ = {},
  56136. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56137. : pNext( pNext_ )
  56138. , graphicsPipelineLibraryFastLinking( graphicsPipelineLibraryFastLinking_ )
  56139. , graphicsPipelineLibraryIndependentInterpolationDecoration( graphicsPipelineLibraryIndependentInterpolationDecoration_ )
  56140. {
  56141. }
  56142. VULKAN_HPP_CONSTEXPR
  56143. PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56144. PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56145. : PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT( *reinterpret_cast<PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const *>( &rhs ) )
  56146. {
  56147. }
  56148. PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT &
  56149. operator=( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56150. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56151. PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT & operator=( VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56152. {
  56153. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const *>( &rhs );
  56154. return *this;
  56155. }
  56156. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56157. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56158. {
  56159. pNext = pNext_;
  56160. return *this;
  56161. }
  56162. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT &
  56163. setGraphicsPipelineLibraryFastLinking( VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking_ ) VULKAN_HPP_NOEXCEPT
  56164. {
  56165. graphicsPipelineLibraryFastLinking = graphicsPipelineLibraryFastLinking_;
  56166. return *this;
  56167. }
  56168. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT & setGraphicsPipelineLibraryIndependentInterpolationDecoration(
  56169. VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryIndependentInterpolationDecoration_ ) VULKAN_HPP_NOEXCEPT
  56170. {
  56171. graphicsPipelineLibraryIndependentInterpolationDecoration = graphicsPipelineLibraryIndependentInterpolationDecoration_;
  56172. return *this;
  56173. }
  56174. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56175. operator VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  56176. {
  56177. return *reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT *>( this );
  56178. }
  56179. operator VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  56180. {
  56181. return *reinterpret_cast<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT *>( this );
  56182. }
  56183. #if defined( VULKAN_HPP_USE_REFLECT )
  56184. # if 14 <= VULKAN_HPP_CPP_VERSION
  56185. auto
  56186. # else
  56187. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56188. # endif
  56189. reflect() const VULKAN_HPP_NOEXCEPT
  56190. {
  56191. return std::tie( sType, pNext, graphicsPipelineLibraryFastLinking, graphicsPipelineLibraryIndependentInterpolationDecoration );
  56192. }
  56193. #endif
  56194. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56195. auto operator<=>( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & ) const = default;
  56196. #else
  56197. bool operator==( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56198. {
  56199. # if defined( VULKAN_HPP_USE_REFLECT )
  56200. return this->reflect() == rhs.reflect();
  56201. # else
  56202. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( graphicsPipelineLibraryFastLinking == rhs.graphicsPipelineLibraryFastLinking ) &&
  56203. ( graphicsPipelineLibraryIndependentInterpolationDecoration == rhs.graphicsPipelineLibraryIndependentInterpolationDecoration );
  56204. # endif
  56205. }
  56206. bool operator!=( PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56207. {
  56208. return !operator==( rhs );
  56209. }
  56210. #endif
  56211. public:
  56212. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
  56213. void * pNext = {};
  56214. VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryFastLinking = {};
  56215. VULKAN_HPP_NAMESPACE::Bool32 graphicsPipelineLibraryIndependentInterpolationDecoration = {};
  56216. };
  56217. template <>
  56218. struct CppType<StructureType, StructureType::ePhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>
  56219. {
  56220. using Type = PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
  56221. };
  56222. struct PhysicalDeviceGroupProperties
  56223. {
  56224. using NativeType = VkPhysicalDeviceGroupProperties;
  56225. static const bool allowDuplicate = false;
  56226. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGroupProperties;
  56227. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56228. VULKAN_HPP_CONSTEXPR_14
  56229. PhysicalDeviceGroupProperties( uint32_t physicalDeviceCount_ = {},
  56230. std::array<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> const & physicalDevices_ = {},
  56231. VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation_ = {},
  56232. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56233. : pNext( pNext_ )
  56234. , physicalDeviceCount( physicalDeviceCount_ )
  56235. , physicalDevices( physicalDevices_ )
  56236. , subsetAllocation( subsetAllocation_ )
  56237. {
  56238. }
  56239. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56240. PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  56241. : PhysicalDeviceGroupProperties( *reinterpret_cast<PhysicalDeviceGroupProperties const *>( &rhs ) )
  56242. {
  56243. }
  56244. PhysicalDeviceGroupProperties & operator=( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56245. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56246. PhysicalDeviceGroupProperties & operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  56247. {
  56248. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties const *>( &rhs );
  56249. return *this;
  56250. }
  56251. operator VkPhysicalDeviceGroupProperties const &() const VULKAN_HPP_NOEXCEPT
  56252. {
  56253. return *reinterpret_cast<const VkPhysicalDeviceGroupProperties *>( this );
  56254. }
  56255. operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT
  56256. {
  56257. return *reinterpret_cast<VkPhysicalDeviceGroupProperties *>( this );
  56258. }
  56259. #if defined( VULKAN_HPP_USE_REFLECT )
  56260. # if 14 <= VULKAN_HPP_CPP_VERSION
  56261. auto
  56262. # else
  56263. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  56264. void * const &,
  56265. uint32_t const &,
  56266. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> const &,
  56267. VULKAN_HPP_NAMESPACE::Bool32 const &>
  56268. # endif
  56269. reflect() const VULKAN_HPP_NOEXCEPT
  56270. {
  56271. return std::tie( sType, pNext, physicalDeviceCount, physicalDevices, subsetAllocation );
  56272. }
  56273. #endif
  56274. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56275. auto operator<=>( PhysicalDeviceGroupProperties const & ) const = default;
  56276. #else
  56277. bool operator==( PhysicalDeviceGroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  56278. {
  56279. # if defined( VULKAN_HPP_USE_REFLECT )
  56280. return this->reflect() == rhs.reflect();
  56281. # else
  56282. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( physicalDeviceCount == rhs.physicalDeviceCount ) &&
  56283. ( physicalDevices == rhs.physicalDevices ) && ( subsetAllocation == rhs.subsetAllocation );
  56284. # endif
  56285. }
  56286. bool operator!=( PhysicalDeviceGroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  56287. {
  56288. return !operator==( rhs );
  56289. }
  56290. #endif
  56291. public:
  56292. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties;
  56293. void * pNext = {};
  56294. uint32_t physicalDeviceCount = {};
  56295. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::PhysicalDevice, VK_MAX_DEVICE_GROUP_SIZE> physicalDevices = {};
  56296. VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {};
  56297. };
  56298. template <>
  56299. struct CppType<StructureType, StructureType::ePhysicalDeviceGroupProperties>
  56300. {
  56301. using Type = PhysicalDeviceGroupProperties;
  56302. };
  56303. using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
  56304. struct PhysicalDeviceHostImageCopyFeaturesEXT
  56305. {
  56306. using NativeType = VkPhysicalDeviceHostImageCopyFeaturesEXT;
  56307. static const bool allowDuplicate = false;
  56308. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostImageCopyFeaturesEXT;
  56309. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56310. VULKAN_HPP_CONSTEXPR PhysicalDeviceHostImageCopyFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 hostImageCopy_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56311. : pNext( pNext_ )
  56312. , hostImageCopy( hostImageCopy_ )
  56313. {
  56314. }
  56315. VULKAN_HPP_CONSTEXPR PhysicalDeviceHostImageCopyFeaturesEXT( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56316. PhysicalDeviceHostImageCopyFeaturesEXT( VkPhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56317. : PhysicalDeviceHostImageCopyFeaturesEXT( *reinterpret_cast<PhysicalDeviceHostImageCopyFeaturesEXT const *>( &rhs ) )
  56318. {
  56319. }
  56320. PhysicalDeviceHostImageCopyFeaturesEXT & operator=( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56321. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56322. PhysicalDeviceHostImageCopyFeaturesEXT & operator=( VkPhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56323. {
  56324. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT const *>( &rhs );
  56325. return *this;
  56326. }
  56327. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56328. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56329. {
  56330. pNext = pNext_;
  56331. return *this;
  56332. }
  56333. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyFeaturesEXT & setHostImageCopy( VULKAN_HPP_NAMESPACE::Bool32 hostImageCopy_ ) VULKAN_HPP_NOEXCEPT
  56334. {
  56335. hostImageCopy = hostImageCopy_;
  56336. return *this;
  56337. }
  56338. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56339. operator VkPhysicalDeviceHostImageCopyFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  56340. {
  56341. return *reinterpret_cast<const VkPhysicalDeviceHostImageCopyFeaturesEXT *>( this );
  56342. }
  56343. operator VkPhysicalDeviceHostImageCopyFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  56344. {
  56345. return *reinterpret_cast<VkPhysicalDeviceHostImageCopyFeaturesEXT *>( this );
  56346. }
  56347. #if defined( VULKAN_HPP_USE_REFLECT )
  56348. # if 14 <= VULKAN_HPP_CPP_VERSION
  56349. auto
  56350. # else
  56351. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56352. # endif
  56353. reflect() const VULKAN_HPP_NOEXCEPT
  56354. {
  56355. return std::tie( sType, pNext, hostImageCopy );
  56356. }
  56357. #endif
  56358. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56359. auto operator<=>( PhysicalDeviceHostImageCopyFeaturesEXT const & ) const = default;
  56360. #else
  56361. bool operator==( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56362. {
  56363. # if defined( VULKAN_HPP_USE_REFLECT )
  56364. return this->reflect() == rhs.reflect();
  56365. # else
  56366. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hostImageCopy == rhs.hostImageCopy );
  56367. # endif
  56368. }
  56369. bool operator!=( PhysicalDeviceHostImageCopyFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56370. {
  56371. return !operator==( rhs );
  56372. }
  56373. #endif
  56374. public:
  56375. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostImageCopyFeaturesEXT;
  56376. void * pNext = {};
  56377. VULKAN_HPP_NAMESPACE::Bool32 hostImageCopy = {};
  56378. };
  56379. template <>
  56380. struct CppType<StructureType, StructureType::ePhysicalDeviceHostImageCopyFeaturesEXT>
  56381. {
  56382. using Type = PhysicalDeviceHostImageCopyFeaturesEXT;
  56383. };
  56384. struct PhysicalDeviceHostImageCopyPropertiesEXT
  56385. {
  56386. using NativeType = VkPhysicalDeviceHostImageCopyPropertiesEXT;
  56387. static const bool allowDuplicate = false;
  56388. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostImageCopyPropertiesEXT;
  56389. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56390. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT( uint32_t copySrcLayoutCount_ = {},
  56391. VULKAN_HPP_NAMESPACE::ImageLayout * pCopySrcLayouts_ = {},
  56392. uint32_t copyDstLayoutCount_ = {},
  56393. VULKAN_HPP_NAMESPACE::ImageLayout * pCopyDstLayouts_ = {},
  56394. std::array<uint8_t, VK_UUID_SIZE> const & optimalTilingLayoutUUID_ = {},
  56395. VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryTypeRequirements_ = {},
  56396. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56397. : pNext( pNext_ )
  56398. , copySrcLayoutCount( copySrcLayoutCount_ )
  56399. , pCopySrcLayouts( pCopySrcLayouts_ )
  56400. , copyDstLayoutCount( copyDstLayoutCount_ )
  56401. , pCopyDstLayouts( pCopyDstLayouts_ )
  56402. , optimalTilingLayoutUUID( optimalTilingLayoutUUID_ )
  56403. , identicalMemoryTypeRequirements( identicalMemoryTypeRequirements_ )
  56404. {
  56405. }
  56406. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56407. PhysicalDeviceHostImageCopyPropertiesEXT( VkPhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56408. : PhysicalDeviceHostImageCopyPropertiesEXT( *reinterpret_cast<PhysicalDeviceHostImageCopyPropertiesEXT const *>( &rhs ) )
  56409. {
  56410. }
  56411. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  56412. PhysicalDeviceHostImageCopyPropertiesEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copySrcLayouts_,
  56413. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copyDstLayouts_ = {},
  56414. std::array<uint8_t, VK_UUID_SIZE> const & optimalTilingLayoutUUID_ = {},
  56415. VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryTypeRequirements_ = {},
  56416. void * pNext_ = nullptr )
  56417. : pNext( pNext_ )
  56418. , copySrcLayoutCount( static_cast<uint32_t>( copySrcLayouts_.size() ) )
  56419. , pCopySrcLayouts( copySrcLayouts_.data() )
  56420. , copyDstLayoutCount( static_cast<uint32_t>( copyDstLayouts_.size() ) )
  56421. , pCopyDstLayouts( copyDstLayouts_.data() )
  56422. , optimalTilingLayoutUUID( optimalTilingLayoutUUID_ )
  56423. , identicalMemoryTypeRequirements( identicalMemoryTypeRequirements_ )
  56424. {
  56425. }
  56426. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  56427. PhysicalDeviceHostImageCopyPropertiesEXT & operator=( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56428. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56429. PhysicalDeviceHostImageCopyPropertiesEXT & operator=( VkPhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56430. {
  56431. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT const *>( &rhs );
  56432. return *this;
  56433. }
  56434. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56435. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56436. {
  56437. pNext = pNext_;
  56438. return *this;
  56439. }
  56440. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setCopySrcLayoutCount( uint32_t copySrcLayoutCount_ ) VULKAN_HPP_NOEXCEPT
  56441. {
  56442. copySrcLayoutCount = copySrcLayoutCount_;
  56443. return *this;
  56444. }
  56445. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT &
  56446. setPCopySrcLayouts( VULKAN_HPP_NAMESPACE::ImageLayout * pCopySrcLayouts_ ) VULKAN_HPP_NOEXCEPT
  56447. {
  56448. pCopySrcLayouts = pCopySrcLayouts_;
  56449. return *this;
  56450. }
  56451. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  56452. PhysicalDeviceHostImageCopyPropertiesEXT &
  56453. setCopySrcLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copySrcLayouts_ ) VULKAN_HPP_NOEXCEPT
  56454. {
  56455. copySrcLayoutCount = static_cast<uint32_t>( copySrcLayouts_.size() );
  56456. pCopySrcLayouts = copySrcLayouts_.data();
  56457. return *this;
  56458. }
  56459. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  56460. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT & setCopyDstLayoutCount( uint32_t copyDstLayoutCount_ ) VULKAN_HPP_NOEXCEPT
  56461. {
  56462. copyDstLayoutCount = copyDstLayoutCount_;
  56463. return *this;
  56464. }
  56465. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT &
  56466. setPCopyDstLayouts( VULKAN_HPP_NAMESPACE::ImageLayout * pCopyDstLayouts_ ) VULKAN_HPP_NOEXCEPT
  56467. {
  56468. pCopyDstLayouts = pCopyDstLayouts_;
  56469. return *this;
  56470. }
  56471. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  56472. PhysicalDeviceHostImageCopyPropertiesEXT &
  56473. setCopyDstLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::ImageLayout> const & copyDstLayouts_ ) VULKAN_HPP_NOEXCEPT
  56474. {
  56475. copyDstLayoutCount = static_cast<uint32_t>( copyDstLayouts_.size() );
  56476. pCopyDstLayouts = copyDstLayouts_.data();
  56477. return *this;
  56478. }
  56479. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  56480. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT &
  56481. setOptimalTilingLayoutUUID( std::array<uint8_t, VK_UUID_SIZE> optimalTilingLayoutUUID_ ) VULKAN_HPP_NOEXCEPT
  56482. {
  56483. optimalTilingLayoutUUID = optimalTilingLayoutUUID_;
  56484. return *this;
  56485. }
  56486. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostImageCopyPropertiesEXT &
  56487. setIdenticalMemoryTypeRequirements( VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryTypeRequirements_ ) VULKAN_HPP_NOEXCEPT
  56488. {
  56489. identicalMemoryTypeRequirements = identicalMemoryTypeRequirements_;
  56490. return *this;
  56491. }
  56492. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56493. operator VkPhysicalDeviceHostImageCopyPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  56494. {
  56495. return *reinterpret_cast<const VkPhysicalDeviceHostImageCopyPropertiesEXT *>( this );
  56496. }
  56497. operator VkPhysicalDeviceHostImageCopyPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  56498. {
  56499. return *reinterpret_cast<VkPhysicalDeviceHostImageCopyPropertiesEXT *>( this );
  56500. }
  56501. #if defined( VULKAN_HPP_USE_REFLECT )
  56502. # if 14 <= VULKAN_HPP_CPP_VERSION
  56503. auto
  56504. # else
  56505. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  56506. void * const &,
  56507. uint32_t const &,
  56508. VULKAN_HPP_NAMESPACE::ImageLayout * const &,
  56509. uint32_t const &,
  56510. VULKAN_HPP_NAMESPACE::ImageLayout * const &,
  56511. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  56512. VULKAN_HPP_NAMESPACE::Bool32 const &>
  56513. # endif
  56514. reflect() const VULKAN_HPP_NOEXCEPT
  56515. {
  56516. return std::tie(
  56517. sType, pNext, copySrcLayoutCount, pCopySrcLayouts, copyDstLayoutCount, pCopyDstLayouts, optimalTilingLayoutUUID, identicalMemoryTypeRequirements );
  56518. }
  56519. #endif
  56520. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56521. auto operator<=>( PhysicalDeviceHostImageCopyPropertiesEXT const & ) const = default;
  56522. #else
  56523. bool operator==( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56524. {
  56525. # if defined( VULKAN_HPP_USE_REFLECT )
  56526. return this->reflect() == rhs.reflect();
  56527. # else
  56528. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( copySrcLayoutCount == rhs.copySrcLayoutCount ) &&
  56529. ( pCopySrcLayouts == rhs.pCopySrcLayouts ) && ( copyDstLayoutCount == rhs.copyDstLayoutCount ) && ( pCopyDstLayouts == rhs.pCopyDstLayouts ) &&
  56530. ( optimalTilingLayoutUUID == rhs.optimalTilingLayoutUUID ) && ( identicalMemoryTypeRequirements == rhs.identicalMemoryTypeRequirements );
  56531. # endif
  56532. }
  56533. bool operator!=( PhysicalDeviceHostImageCopyPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56534. {
  56535. return !operator==( rhs );
  56536. }
  56537. #endif
  56538. public:
  56539. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostImageCopyPropertiesEXT;
  56540. void * pNext = {};
  56541. uint32_t copySrcLayoutCount = {};
  56542. VULKAN_HPP_NAMESPACE::ImageLayout * pCopySrcLayouts = {};
  56543. uint32_t copyDstLayoutCount = {};
  56544. VULKAN_HPP_NAMESPACE::ImageLayout * pCopyDstLayouts = {};
  56545. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> optimalTilingLayoutUUID = {};
  56546. VULKAN_HPP_NAMESPACE::Bool32 identicalMemoryTypeRequirements = {};
  56547. };
  56548. template <>
  56549. struct CppType<StructureType, StructureType::ePhysicalDeviceHostImageCopyPropertiesEXT>
  56550. {
  56551. using Type = PhysicalDeviceHostImageCopyPropertiesEXT;
  56552. };
  56553. struct PhysicalDeviceHostQueryResetFeatures
  56554. {
  56555. using NativeType = VkPhysicalDeviceHostQueryResetFeatures;
  56556. static const bool allowDuplicate = false;
  56557. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
  56558. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56559. VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56560. : pNext( pNext_ )
  56561. , hostQueryReset( hostQueryReset_ )
  56562. {
  56563. }
  56564. VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56565. PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  56566. : PhysicalDeviceHostQueryResetFeatures( *reinterpret_cast<PhysicalDeviceHostQueryResetFeatures const *>( &rhs ) )
  56567. {
  56568. }
  56569. PhysicalDeviceHostQueryResetFeatures & operator=( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56570. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56571. PhysicalDeviceHostQueryResetFeatures & operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  56572. {
  56573. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const *>( &rhs );
  56574. return *this;
  56575. }
  56576. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56577. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostQueryResetFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56578. {
  56579. pNext = pNext_;
  56580. return *this;
  56581. }
  56582. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostQueryResetFeatures & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
  56583. {
  56584. hostQueryReset = hostQueryReset_;
  56585. return *this;
  56586. }
  56587. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56588. operator VkPhysicalDeviceHostQueryResetFeatures const &() const VULKAN_HPP_NOEXCEPT
  56589. {
  56590. return *reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures *>( this );
  56591. }
  56592. operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT
  56593. {
  56594. return *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures *>( this );
  56595. }
  56596. #if defined( VULKAN_HPP_USE_REFLECT )
  56597. # if 14 <= VULKAN_HPP_CPP_VERSION
  56598. auto
  56599. # else
  56600. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56601. # endif
  56602. reflect() const VULKAN_HPP_NOEXCEPT
  56603. {
  56604. return std::tie( sType, pNext, hostQueryReset );
  56605. }
  56606. #endif
  56607. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56608. auto operator<=>( PhysicalDeviceHostQueryResetFeatures const & ) const = default;
  56609. #else
  56610. bool operator==( PhysicalDeviceHostQueryResetFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  56611. {
  56612. # if defined( VULKAN_HPP_USE_REFLECT )
  56613. return this->reflect() == rhs.reflect();
  56614. # else
  56615. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hostQueryReset == rhs.hostQueryReset );
  56616. # endif
  56617. }
  56618. bool operator!=( PhysicalDeviceHostQueryResetFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  56619. {
  56620. return !operator==( rhs );
  56621. }
  56622. #endif
  56623. public:
  56624. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures;
  56625. void * pNext = {};
  56626. VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
  56627. };
  56628. template <>
  56629. struct CppType<StructureType, StructureType::ePhysicalDeviceHostQueryResetFeatures>
  56630. {
  56631. using Type = PhysicalDeviceHostQueryResetFeatures;
  56632. };
  56633. using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
  56634. struct PhysicalDeviceIDProperties
  56635. {
  56636. using NativeType = VkPhysicalDeviceIDProperties;
  56637. static const bool allowDuplicate = false;
  56638. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIdProperties;
  56639. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56640. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( std::array<uint8_t, VK_UUID_SIZE> const & deviceUUID_ = {},
  56641. std::array<uint8_t, VK_UUID_SIZE> const & driverUUID_ = {},
  56642. std::array<uint8_t, VK_LUID_SIZE> const & deviceLUID_ = {},
  56643. uint32_t deviceNodeMask_ = {},
  56644. VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {},
  56645. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56646. : pNext( pNext_ )
  56647. , deviceUUID( deviceUUID_ )
  56648. , driverUUID( driverUUID_ )
  56649. , deviceLUID( deviceLUID_ )
  56650. , deviceNodeMask( deviceNodeMask_ )
  56651. , deviceLUIDValid( deviceLUIDValid_ )
  56652. {
  56653. }
  56654. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56655. PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  56656. : PhysicalDeviceIDProperties( *reinterpret_cast<PhysicalDeviceIDProperties const *>( &rhs ) )
  56657. {
  56658. }
  56659. PhysicalDeviceIDProperties & operator=( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56660. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56661. PhysicalDeviceIDProperties & operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  56662. {
  56663. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties const *>( &rhs );
  56664. return *this;
  56665. }
  56666. operator VkPhysicalDeviceIDProperties const &() const VULKAN_HPP_NOEXCEPT
  56667. {
  56668. return *reinterpret_cast<const VkPhysicalDeviceIDProperties *>( this );
  56669. }
  56670. operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT
  56671. {
  56672. return *reinterpret_cast<VkPhysicalDeviceIDProperties *>( this );
  56673. }
  56674. #if defined( VULKAN_HPP_USE_REFLECT )
  56675. # if 14 <= VULKAN_HPP_CPP_VERSION
  56676. auto
  56677. # else
  56678. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  56679. void * const &,
  56680. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  56681. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  56682. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> const &,
  56683. uint32_t const &,
  56684. VULKAN_HPP_NAMESPACE::Bool32 const &>
  56685. # endif
  56686. reflect() const VULKAN_HPP_NOEXCEPT
  56687. {
  56688. return std::tie( sType, pNext, deviceUUID, driverUUID, deviceLUID, deviceNodeMask, deviceLUIDValid );
  56689. }
  56690. #endif
  56691. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56692. auto operator<=>( PhysicalDeviceIDProperties const & ) const = default;
  56693. #else
  56694. bool operator==( PhysicalDeviceIDProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  56695. {
  56696. # if defined( VULKAN_HPP_USE_REFLECT )
  56697. return this->reflect() == rhs.reflect();
  56698. # else
  56699. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceUUID == rhs.deviceUUID ) && ( driverUUID == rhs.driverUUID ) &&
  56700. ( deviceLUID == rhs.deviceLUID ) && ( deviceNodeMask == rhs.deviceNodeMask ) && ( deviceLUIDValid == rhs.deviceLUIDValid );
  56701. # endif
  56702. }
  56703. bool operator!=( PhysicalDeviceIDProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  56704. {
  56705. return !operator==( rhs );
  56706. }
  56707. #endif
  56708. public:
  56709. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties;
  56710. void * pNext = {};
  56711. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
  56712. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
  56713. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
  56714. uint32_t deviceNodeMask = {};
  56715. VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
  56716. };
  56717. template <>
  56718. struct CppType<StructureType, StructureType::ePhysicalDeviceIdProperties>
  56719. {
  56720. using Type = PhysicalDeviceIDProperties;
  56721. };
  56722. using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
  56723. struct PhysicalDeviceImage2DViewOf3DFeaturesEXT
  56724. {
  56725. using NativeType = VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
  56726. static const bool allowDuplicate = false;
  56727. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImage2DViewOf3DFeaturesEXT;
  56728. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56729. VULKAN_HPP_CONSTEXPR PhysicalDeviceImage2DViewOf3DFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3D_ = {},
  56730. VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D_ = {},
  56731. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56732. : pNext( pNext_ )
  56733. , image2DViewOf3D( image2DViewOf3D_ )
  56734. , sampler2DViewOf3D( sampler2DViewOf3D_ )
  56735. {
  56736. }
  56737. VULKAN_HPP_CONSTEXPR PhysicalDeviceImage2DViewOf3DFeaturesEXT( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56738. PhysicalDeviceImage2DViewOf3DFeaturesEXT( VkPhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56739. : PhysicalDeviceImage2DViewOf3DFeaturesEXT( *reinterpret_cast<PhysicalDeviceImage2DViewOf3DFeaturesEXT const *>( &rhs ) )
  56740. {
  56741. }
  56742. PhysicalDeviceImage2DViewOf3DFeaturesEXT & operator=( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56743. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56744. PhysicalDeviceImage2DViewOf3DFeaturesEXT & operator=( VkPhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56745. {
  56746. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT const *>( &rhs );
  56747. return *this;
  56748. }
  56749. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56750. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImage2DViewOf3DFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56751. {
  56752. pNext = pNext_;
  56753. return *this;
  56754. }
  56755. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImage2DViewOf3DFeaturesEXT & setImage2DViewOf3D( VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3D_ ) VULKAN_HPP_NOEXCEPT
  56756. {
  56757. image2DViewOf3D = image2DViewOf3D_;
  56758. return *this;
  56759. }
  56760. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImage2DViewOf3DFeaturesEXT &
  56761. setSampler2DViewOf3D( VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D_ ) VULKAN_HPP_NOEXCEPT
  56762. {
  56763. sampler2DViewOf3D = sampler2DViewOf3D_;
  56764. return *this;
  56765. }
  56766. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56767. operator VkPhysicalDeviceImage2DViewOf3DFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  56768. {
  56769. return *reinterpret_cast<const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT *>( this );
  56770. }
  56771. operator VkPhysicalDeviceImage2DViewOf3DFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  56772. {
  56773. return *reinterpret_cast<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT *>( this );
  56774. }
  56775. #if defined( VULKAN_HPP_USE_REFLECT )
  56776. # if 14 <= VULKAN_HPP_CPP_VERSION
  56777. auto
  56778. # else
  56779. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56780. # endif
  56781. reflect() const VULKAN_HPP_NOEXCEPT
  56782. {
  56783. return std::tie( sType, pNext, image2DViewOf3D, sampler2DViewOf3D );
  56784. }
  56785. #endif
  56786. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56787. auto operator<=>( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & ) const = default;
  56788. #else
  56789. bool operator==( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56790. {
  56791. # if defined( VULKAN_HPP_USE_REFLECT )
  56792. return this->reflect() == rhs.reflect();
  56793. # else
  56794. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image2DViewOf3D == rhs.image2DViewOf3D ) && ( sampler2DViewOf3D == rhs.sampler2DViewOf3D );
  56795. # endif
  56796. }
  56797. bool operator!=( PhysicalDeviceImage2DViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56798. {
  56799. return !operator==( rhs );
  56800. }
  56801. #endif
  56802. public:
  56803. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImage2DViewOf3DFeaturesEXT;
  56804. void * pNext = {};
  56805. VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3D = {};
  56806. VULKAN_HPP_NAMESPACE::Bool32 sampler2DViewOf3D = {};
  56807. };
  56808. template <>
  56809. struct CppType<StructureType, StructureType::ePhysicalDeviceImage2DViewOf3DFeaturesEXT>
  56810. {
  56811. using Type = PhysicalDeviceImage2DViewOf3DFeaturesEXT;
  56812. };
  56813. struct PhysicalDeviceImageCompressionControlFeaturesEXT
  56814. {
  56815. using NativeType = VkPhysicalDeviceImageCompressionControlFeaturesEXT;
  56816. static const bool allowDuplicate = false;
  56817. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageCompressionControlFeaturesEXT;
  56818. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56819. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl_ = {},
  56820. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56821. : pNext( pNext_ )
  56822. , imageCompressionControl( imageCompressionControl_ )
  56823. {
  56824. }
  56825. VULKAN_HPP_CONSTEXPR
  56826. PhysicalDeviceImageCompressionControlFeaturesEXT( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56827. PhysicalDeviceImageCompressionControlFeaturesEXT( VkPhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56828. : PhysicalDeviceImageCompressionControlFeaturesEXT( *reinterpret_cast<PhysicalDeviceImageCompressionControlFeaturesEXT const *>( &rhs ) )
  56829. {
  56830. }
  56831. PhysicalDeviceImageCompressionControlFeaturesEXT & operator=( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56832. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56833. PhysicalDeviceImageCompressionControlFeaturesEXT & operator=( VkPhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56834. {
  56835. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT const *>( &rhs );
  56836. return *this;
  56837. }
  56838. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56839. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56840. {
  56841. pNext = pNext_;
  56842. return *this;
  56843. }
  56844. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlFeaturesEXT &
  56845. setImageCompressionControl( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl_ ) VULKAN_HPP_NOEXCEPT
  56846. {
  56847. imageCompressionControl = imageCompressionControl_;
  56848. return *this;
  56849. }
  56850. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56851. operator VkPhysicalDeviceImageCompressionControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  56852. {
  56853. return *reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT *>( this );
  56854. }
  56855. operator VkPhysicalDeviceImageCompressionControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  56856. {
  56857. return *reinterpret_cast<VkPhysicalDeviceImageCompressionControlFeaturesEXT *>( this );
  56858. }
  56859. #if defined( VULKAN_HPP_USE_REFLECT )
  56860. # if 14 <= VULKAN_HPP_CPP_VERSION
  56861. auto
  56862. # else
  56863. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56864. # endif
  56865. reflect() const VULKAN_HPP_NOEXCEPT
  56866. {
  56867. return std::tie( sType, pNext, imageCompressionControl );
  56868. }
  56869. #endif
  56870. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56871. auto operator<=>( PhysicalDeviceImageCompressionControlFeaturesEXT const & ) const = default;
  56872. #else
  56873. bool operator==( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56874. {
  56875. # if defined( VULKAN_HPP_USE_REFLECT )
  56876. return this->reflect() == rhs.reflect();
  56877. # else
  56878. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageCompressionControl == rhs.imageCompressionControl );
  56879. # endif
  56880. }
  56881. bool operator!=( PhysicalDeviceImageCompressionControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56882. {
  56883. return !operator==( rhs );
  56884. }
  56885. #endif
  56886. public:
  56887. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageCompressionControlFeaturesEXT;
  56888. void * pNext = {};
  56889. VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControl = {};
  56890. };
  56891. template <>
  56892. struct CppType<StructureType, StructureType::ePhysicalDeviceImageCompressionControlFeaturesEXT>
  56893. {
  56894. using Type = PhysicalDeviceImageCompressionControlFeaturesEXT;
  56895. };
  56896. struct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
  56897. {
  56898. using NativeType = VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
  56899. static const bool allowDuplicate = false;
  56900. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
  56901. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56902. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain_ = {},
  56903. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56904. : pNext( pNext_ )
  56905. , imageCompressionControlSwapchain( imageCompressionControlSwapchain_ )
  56906. {
  56907. }
  56908. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs )
  56909. VULKAN_HPP_NOEXCEPT = default;
  56910. PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT( VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56911. : PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(
  56912. *reinterpret_cast<PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const *>( &rhs ) )
  56913. {
  56914. }
  56915. PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT &
  56916. operator=( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  56917. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  56918. PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT &
  56919. operator=( VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  56920. {
  56921. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const *>( &rhs );
  56922. return *this;
  56923. }
  56924. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  56925. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  56926. {
  56927. pNext = pNext_;
  56928. return *this;
  56929. }
  56930. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT &
  56931. setImageCompressionControlSwapchain( VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain_ ) VULKAN_HPP_NOEXCEPT
  56932. {
  56933. imageCompressionControlSwapchain = imageCompressionControlSwapchain_;
  56934. return *this;
  56935. }
  56936. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  56937. operator VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  56938. {
  56939. return *reinterpret_cast<const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT *>( this );
  56940. }
  56941. operator VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  56942. {
  56943. return *reinterpret_cast<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT *>( this );
  56944. }
  56945. #if defined( VULKAN_HPP_USE_REFLECT )
  56946. # if 14 <= VULKAN_HPP_CPP_VERSION
  56947. auto
  56948. # else
  56949. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  56950. # endif
  56951. reflect() const VULKAN_HPP_NOEXCEPT
  56952. {
  56953. return std::tie( sType, pNext, imageCompressionControlSwapchain );
  56954. }
  56955. #endif
  56956. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  56957. auto operator<=>( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & ) const = default;
  56958. #else
  56959. bool operator==( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56960. {
  56961. # if defined( VULKAN_HPP_USE_REFLECT )
  56962. return this->reflect() == rhs.reflect();
  56963. # else
  56964. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageCompressionControlSwapchain == rhs.imageCompressionControlSwapchain );
  56965. # endif
  56966. }
  56967. bool operator!=( PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  56968. {
  56969. return !operator==( rhs );
  56970. }
  56971. #endif
  56972. public:
  56973. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
  56974. void * pNext = {};
  56975. VULKAN_HPP_NAMESPACE::Bool32 imageCompressionControlSwapchain = {};
  56976. };
  56977. template <>
  56978. struct CppType<StructureType, StructureType::ePhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>
  56979. {
  56980. using Type = PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
  56981. };
  56982. struct PhysicalDeviceImageDrmFormatModifierInfoEXT
  56983. {
  56984. using NativeType = VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
  56985. static const bool allowDuplicate = false;
  56986. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
  56987. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  56988. VULKAN_HPP_CONSTEXPR
  56989. PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_ = {},
  56990. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
  56991. uint32_t queueFamilyIndexCount_ = {},
  56992. const uint32_t * pQueueFamilyIndices_ = {},
  56993. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  56994. : pNext( pNext_ )
  56995. , drmFormatModifier( drmFormatModifier_ )
  56996. , sharingMode( sharingMode_ )
  56997. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  56998. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  56999. {
  57000. }
  57001. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57002. PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57003. : PhysicalDeviceImageDrmFormatModifierInfoEXT( *reinterpret_cast<PhysicalDeviceImageDrmFormatModifierInfoEXT const *>( &rhs ) )
  57004. {
  57005. }
  57006. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  57007. PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_,
  57008. VULKAN_HPP_NAMESPACE::SharingMode sharingMode_,
  57009. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_,
  57010. const void * pNext_ = nullptr )
  57011. : pNext( pNext_ )
  57012. , drmFormatModifier( drmFormatModifier_ )
  57013. , sharingMode( sharingMode_ )
  57014. , queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) )
  57015. , pQueueFamilyIndices( queueFamilyIndices_.data() )
  57016. {
  57017. }
  57018. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  57019. PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57020. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57021. PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57022. {
  57023. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT const *>( &rhs );
  57024. return *this;
  57025. }
  57026. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57027. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57028. {
  57029. pNext = pNext_;
  57030. return *this;
  57031. }
  57032. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT
  57033. {
  57034. drmFormatModifier = drmFormatModifier_;
  57035. return *this;
  57036. }
  57037. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT
  57038. {
  57039. sharingMode = sharingMode_;
  57040. return *this;
  57041. }
  57042. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
  57043. {
  57044. queueFamilyIndexCount = queueFamilyIndexCount_;
  57045. return *this;
  57046. }
  57047. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  57048. {
  57049. pQueueFamilyIndices = pQueueFamilyIndices_;
  57050. return *this;
  57051. }
  57052. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  57053. PhysicalDeviceImageDrmFormatModifierInfoEXT &
  57054. setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  57055. {
  57056. queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
  57057. pQueueFamilyIndices = queueFamilyIndices_.data();
  57058. return *this;
  57059. }
  57060. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  57061. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57062. operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  57063. {
  57064. return *reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT *>( this );
  57065. }
  57066. operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT
  57067. {
  57068. return *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT *>( this );
  57069. }
  57070. #if defined( VULKAN_HPP_USE_REFLECT )
  57071. # if 14 <= VULKAN_HPP_CPP_VERSION
  57072. auto
  57073. # else
  57074. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  57075. const void * const &,
  57076. uint64_t const &,
  57077. VULKAN_HPP_NAMESPACE::SharingMode const &,
  57078. uint32_t const &,
  57079. const uint32_t * const &>
  57080. # endif
  57081. reflect() const VULKAN_HPP_NOEXCEPT
  57082. {
  57083. return std::tie( sType, pNext, drmFormatModifier, sharingMode, queueFamilyIndexCount, pQueueFamilyIndices );
  57084. }
  57085. #endif
  57086. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57087. auto operator<=>( PhysicalDeviceImageDrmFormatModifierInfoEXT const & ) const = default;
  57088. #else
  57089. bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57090. {
  57091. # if defined( VULKAN_HPP_USE_REFLECT )
  57092. return this->reflect() == rhs.reflect();
  57093. # else
  57094. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifier == rhs.drmFormatModifier ) && ( sharingMode == rhs.sharingMode ) &&
  57095. ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
  57096. # endif
  57097. }
  57098. bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57099. {
  57100. return !operator==( rhs );
  57101. }
  57102. #endif
  57103. public:
  57104. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
  57105. const void * pNext = {};
  57106. uint64_t drmFormatModifier = {};
  57107. VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
  57108. uint32_t queueFamilyIndexCount = {};
  57109. const uint32_t * pQueueFamilyIndices = {};
  57110. };
  57111. template <>
  57112. struct CppType<StructureType, StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT>
  57113. {
  57114. using Type = PhysicalDeviceImageDrmFormatModifierInfoEXT;
  57115. };
  57116. struct PhysicalDeviceImageFormatInfo2
  57117. {
  57118. using NativeType = VkPhysicalDeviceImageFormatInfo2;
  57119. static const bool allowDuplicate = false;
  57120. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageFormatInfo2;
  57121. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57122. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  57123. VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D,
  57124. VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
  57125. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
  57126. VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {},
  57127. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57128. : pNext( pNext_ )
  57129. , format( format_ )
  57130. , type( type_ )
  57131. , tiling( tiling_ )
  57132. , usage( usage_ )
  57133. , flags( flags_ )
  57134. {
  57135. }
  57136. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57137. PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  57138. : PhysicalDeviceImageFormatInfo2( *reinterpret_cast<PhysicalDeviceImageFormatInfo2 const *>( &rhs ) )
  57139. {
  57140. }
  57141. PhysicalDeviceImageFormatInfo2 & operator=( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57142. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57143. PhysicalDeviceImageFormatInfo2 & operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  57144. {
  57145. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 const *>( &rhs );
  57146. return *this;
  57147. }
  57148. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57149. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57150. {
  57151. pNext = pNext_;
  57152. return *this;
  57153. }
  57154. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  57155. {
  57156. format = format_;
  57157. return *this;
  57158. }
  57159. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
  57160. {
  57161. type = type_;
  57162. return *this;
  57163. }
  57164. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
  57165. {
  57166. tiling = tiling_;
  57167. return *this;
  57168. }
  57169. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  57170. {
  57171. usage = usage_;
  57172. return *this;
  57173. }
  57174. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  57175. {
  57176. flags = flags_;
  57177. return *this;
  57178. }
  57179. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57180. operator VkPhysicalDeviceImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
  57181. {
  57182. return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( this );
  57183. }
  57184. operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
  57185. {
  57186. return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2 *>( this );
  57187. }
  57188. #if defined( VULKAN_HPP_USE_REFLECT )
  57189. # if 14 <= VULKAN_HPP_CPP_VERSION
  57190. auto
  57191. # else
  57192. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  57193. const void * const &,
  57194. VULKAN_HPP_NAMESPACE::Format const &,
  57195. VULKAN_HPP_NAMESPACE::ImageType const &,
  57196. VULKAN_HPP_NAMESPACE::ImageTiling const &,
  57197. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  57198. VULKAN_HPP_NAMESPACE::ImageCreateFlags const &>
  57199. # endif
  57200. reflect() const VULKAN_HPP_NOEXCEPT
  57201. {
  57202. return std::tie( sType, pNext, format, type, tiling, usage, flags );
  57203. }
  57204. #endif
  57205. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57206. auto operator<=>( PhysicalDeviceImageFormatInfo2 const & ) const = default;
  57207. #else
  57208. bool operator==( PhysicalDeviceImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  57209. {
  57210. # if defined( VULKAN_HPP_USE_REFLECT )
  57211. return this->reflect() == rhs.reflect();
  57212. # else
  57213. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( type == rhs.type ) && ( tiling == rhs.tiling ) &&
  57214. ( usage == rhs.usage ) && ( flags == rhs.flags );
  57215. # endif
  57216. }
  57217. bool operator!=( PhysicalDeviceImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  57218. {
  57219. return !operator==( rhs );
  57220. }
  57221. #endif
  57222. public:
  57223. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2;
  57224. const void * pNext = {};
  57225. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  57226. VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
  57227. VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
  57228. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
  57229. VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {};
  57230. };
  57231. template <>
  57232. struct CppType<StructureType, StructureType::ePhysicalDeviceImageFormatInfo2>
  57233. {
  57234. using Type = PhysicalDeviceImageFormatInfo2;
  57235. };
  57236. using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
  57237. struct PhysicalDeviceImageProcessing2FeaturesQCOM
  57238. {
  57239. using NativeType = VkPhysicalDeviceImageProcessing2FeaturesQCOM;
  57240. static const bool allowDuplicate = false;
  57241. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM;
  57242. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57243. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2FeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2_ = {},
  57244. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57245. : pNext( pNext_ )
  57246. , textureBlockMatch2( textureBlockMatch2_ )
  57247. {
  57248. }
  57249. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2FeaturesQCOM( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57250. PhysicalDeviceImageProcessing2FeaturesQCOM( VkPhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  57251. : PhysicalDeviceImageProcessing2FeaturesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessing2FeaturesQCOM const *>( &rhs ) )
  57252. {
  57253. }
  57254. PhysicalDeviceImageProcessing2FeaturesQCOM & operator=( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57255. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57256. PhysicalDeviceImageProcessing2FeaturesQCOM & operator=( VkPhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  57257. {
  57258. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM const *>( &rhs );
  57259. return *this;
  57260. }
  57261. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57262. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessing2FeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57263. {
  57264. pNext = pNext_;
  57265. return *this;
  57266. }
  57267. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessing2FeaturesQCOM &
  57268. setTextureBlockMatch2( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2_ ) VULKAN_HPP_NOEXCEPT
  57269. {
  57270. textureBlockMatch2 = textureBlockMatch2_;
  57271. return *this;
  57272. }
  57273. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57274. operator VkPhysicalDeviceImageProcessing2FeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  57275. {
  57276. return *reinterpret_cast<const VkPhysicalDeviceImageProcessing2FeaturesQCOM *>( this );
  57277. }
  57278. operator VkPhysicalDeviceImageProcessing2FeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  57279. {
  57280. return *reinterpret_cast<VkPhysicalDeviceImageProcessing2FeaturesQCOM *>( this );
  57281. }
  57282. #if defined( VULKAN_HPP_USE_REFLECT )
  57283. # if 14 <= VULKAN_HPP_CPP_VERSION
  57284. auto
  57285. # else
  57286. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  57287. # endif
  57288. reflect() const VULKAN_HPP_NOEXCEPT
  57289. {
  57290. return std::tie( sType, pNext, textureBlockMatch2 );
  57291. }
  57292. #endif
  57293. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57294. auto operator<=>( PhysicalDeviceImageProcessing2FeaturesQCOM const & ) const = default;
  57295. #else
  57296. bool operator==( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  57297. {
  57298. # if defined( VULKAN_HPP_USE_REFLECT )
  57299. return this->reflect() == rhs.reflect();
  57300. # else
  57301. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( textureBlockMatch2 == rhs.textureBlockMatch2 );
  57302. # endif
  57303. }
  57304. bool operator!=( PhysicalDeviceImageProcessing2FeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  57305. {
  57306. return !operator==( rhs );
  57307. }
  57308. #endif
  57309. public:
  57310. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM;
  57311. void * pNext = {};
  57312. VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch2 = {};
  57313. };
  57314. template <>
  57315. struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessing2FeaturesQCOM>
  57316. {
  57317. using Type = PhysicalDeviceImageProcessing2FeaturesQCOM;
  57318. };
  57319. struct PhysicalDeviceImageProcessing2PropertiesQCOM
  57320. {
  57321. using NativeType = VkPhysicalDeviceImageProcessing2PropertiesQCOM;
  57322. static const bool allowDuplicate = false;
  57323. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM;
  57324. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57325. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2PropertiesQCOM( VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchWindow_ = {},
  57326. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57327. : pNext( pNext_ )
  57328. , maxBlockMatchWindow( maxBlockMatchWindow_ )
  57329. {
  57330. }
  57331. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessing2PropertiesQCOM( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57332. PhysicalDeviceImageProcessing2PropertiesQCOM( VkPhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  57333. : PhysicalDeviceImageProcessing2PropertiesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessing2PropertiesQCOM const *>( &rhs ) )
  57334. {
  57335. }
  57336. PhysicalDeviceImageProcessing2PropertiesQCOM & operator=( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57337. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57338. PhysicalDeviceImageProcessing2PropertiesQCOM & operator=( VkPhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  57339. {
  57340. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM const *>( &rhs );
  57341. return *this;
  57342. }
  57343. operator VkPhysicalDeviceImageProcessing2PropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
  57344. {
  57345. return *reinterpret_cast<const VkPhysicalDeviceImageProcessing2PropertiesQCOM *>( this );
  57346. }
  57347. operator VkPhysicalDeviceImageProcessing2PropertiesQCOM &() VULKAN_HPP_NOEXCEPT
  57348. {
  57349. return *reinterpret_cast<VkPhysicalDeviceImageProcessing2PropertiesQCOM *>( this );
  57350. }
  57351. #if defined( VULKAN_HPP_USE_REFLECT )
  57352. # if 14 <= VULKAN_HPP_CPP_VERSION
  57353. auto
  57354. # else
  57355. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &>
  57356. # endif
  57357. reflect() const VULKAN_HPP_NOEXCEPT
  57358. {
  57359. return std::tie( sType, pNext, maxBlockMatchWindow );
  57360. }
  57361. #endif
  57362. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57363. auto operator<=>( PhysicalDeviceImageProcessing2PropertiesQCOM const & ) const = default;
  57364. #else
  57365. bool operator==( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  57366. {
  57367. # if defined( VULKAN_HPP_USE_REFLECT )
  57368. return this->reflect() == rhs.reflect();
  57369. # else
  57370. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxBlockMatchWindow == rhs.maxBlockMatchWindow );
  57371. # endif
  57372. }
  57373. bool operator!=( PhysicalDeviceImageProcessing2PropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  57374. {
  57375. return !operator==( rhs );
  57376. }
  57377. #endif
  57378. public:
  57379. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM;
  57380. void * pNext = {};
  57381. VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchWindow = {};
  57382. };
  57383. template <>
  57384. struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessing2PropertiesQCOM>
  57385. {
  57386. using Type = PhysicalDeviceImageProcessing2PropertiesQCOM;
  57387. };
  57388. struct PhysicalDeviceImageProcessingFeaturesQCOM
  57389. {
  57390. using NativeType = VkPhysicalDeviceImageProcessingFeaturesQCOM;
  57391. static const bool allowDuplicate = false;
  57392. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM;
  57393. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57394. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 textureSampleWeighted_ = {},
  57395. VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter_ = {},
  57396. VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch_ = {},
  57397. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57398. : pNext( pNext_ )
  57399. , textureSampleWeighted( textureSampleWeighted_ )
  57400. , textureBoxFilter( textureBoxFilter_ )
  57401. , textureBlockMatch( textureBlockMatch_ )
  57402. {
  57403. }
  57404. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingFeaturesQCOM( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57405. PhysicalDeviceImageProcessingFeaturesQCOM( VkPhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  57406. : PhysicalDeviceImageProcessingFeaturesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessingFeaturesQCOM const *>( &rhs ) )
  57407. {
  57408. }
  57409. PhysicalDeviceImageProcessingFeaturesQCOM & operator=( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57410. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57411. PhysicalDeviceImageProcessingFeaturesQCOM & operator=( VkPhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  57412. {
  57413. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM const *>( &rhs );
  57414. return *this;
  57415. }
  57416. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57417. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57418. {
  57419. pNext = pNext_;
  57420. return *this;
  57421. }
  57422. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM &
  57423. setTextureSampleWeighted( VULKAN_HPP_NAMESPACE::Bool32 textureSampleWeighted_ ) VULKAN_HPP_NOEXCEPT
  57424. {
  57425. textureSampleWeighted = textureSampleWeighted_;
  57426. return *this;
  57427. }
  57428. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM &
  57429. setTextureBoxFilter( VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter_ ) VULKAN_HPP_NOEXCEPT
  57430. {
  57431. textureBoxFilter = textureBoxFilter_;
  57432. return *this;
  57433. }
  57434. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageProcessingFeaturesQCOM &
  57435. setTextureBlockMatch( VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch_ ) VULKAN_HPP_NOEXCEPT
  57436. {
  57437. textureBlockMatch = textureBlockMatch_;
  57438. return *this;
  57439. }
  57440. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57441. operator VkPhysicalDeviceImageProcessingFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  57442. {
  57443. return *reinterpret_cast<const VkPhysicalDeviceImageProcessingFeaturesQCOM *>( this );
  57444. }
  57445. operator VkPhysicalDeviceImageProcessingFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  57446. {
  57447. return *reinterpret_cast<VkPhysicalDeviceImageProcessingFeaturesQCOM *>( this );
  57448. }
  57449. #if defined( VULKAN_HPP_USE_REFLECT )
  57450. # if 14 <= VULKAN_HPP_CPP_VERSION
  57451. auto
  57452. # else
  57453. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  57454. void * const &,
  57455. VULKAN_HPP_NAMESPACE::Bool32 const &,
  57456. VULKAN_HPP_NAMESPACE::Bool32 const &,
  57457. VULKAN_HPP_NAMESPACE::Bool32 const &>
  57458. # endif
  57459. reflect() const VULKAN_HPP_NOEXCEPT
  57460. {
  57461. return std::tie( sType, pNext, textureSampleWeighted, textureBoxFilter, textureBlockMatch );
  57462. }
  57463. #endif
  57464. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57465. auto operator<=>( PhysicalDeviceImageProcessingFeaturesQCOM const & ) const = default;
  57466. #else
  57467. bool operator==( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  57468. {
  57469. # if defined( VULKAN_HPP_USE_REFLECT )
  57470. return this->reflect() == rhs.reflect();
  57471. # else
  57472. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( textureSampleWeighted == rhs.textureSampleWeighted ) &&
  57473. ( textureBoxFilter == rhs.textureBoxFilter ) && ( textureBlockMatch == rhs.textureBlockMatch );
  57474. # endif
  57475. }
  57476. bool operator!=( PhysicalDeviceImageProcessingFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  57477. {
  57478. return !operator==( rhs );
  57479. }
  57480. #endif
  57481. public:
  57482. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM;
  57483. void * pNext = {};
  57484. VULKAN_HPP_NAMESPACE::Bool32 textureSampleWeighted = {};
  57485. VULKAN_HPP_NAMESPACE::Bool32 textureBoxFilter = {};
  57486. VULKAN_HPP_NAMESPACE::Bool32 textureBlockMatch = {};
  57487. };
  57488. template <>
  57489. struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM>
  57490. {
  57491. using Type = PhysicalDeviceImageProcessingFeaturesQCOM;
  57492. };
  57493. struct PhysicalDeviceImageProcessingPropertiesQCOM
  57494. {
  57495. using NativeType = VkPhysicalDeviceImageProcessingPropertiesQCOM;
  57496. static const bool allowDuplicate = false;
  57497. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM;
  57498. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57499. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingPropertiesQCOM( uint32_t maxWeightFilterPhases_ = {},
  57500. VULKAN_HPP_NAMESPACE::Extent2D maxWeightFilterDimension_ = {},
  57501. VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchRegion_ = {},
  57502. VULKAN_HPP_NAMESPACE::Extent2D maxBoxFilterBlockSize_ = {},
  57503. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57504. : pNext( pNext_ )
  57505. , maxWeightFilterPhases( maxWeightFilterPhases_ )
  57506. , maxWeightFilterDimension( maxWeightFilterDimension_ )
  57507. , maxBlockMatchRegion( maxBlockMatchRegion_ )
  57508. , maxBoxFilterBlockSize( maxBoxFilterBlockSize_ )
  57509. {
  57510. }
  57511. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageProcessingPropertiesQCOM( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57512. PhysicalDeviceImageProcessingPropertiesQCOM( VkPhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  57513. : PhysicalDeviceImageProcessingPropertiesQCOM( *reinterpret_cast<PhysicalDeviceImageProcessingPropertiesQCOM const *>( &rhs ) )
  57514. {
  57515. }
  57516. PhysicalDeviceImageProcessingPropertiesQCOM & operator=( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57517. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57518. PhysicalDeviceImageProcessingPropertiesQCOM & operator=( VkPhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  57519. {
  57520. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM const *>( &rhs );
  57521. return *this;
  57522. }
  57523. operator VkPhysicalDeviceImageProcessingPropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
  57524. {
  57525. return *reinterpret_cast<const VkPhysicalDeviceImageProcessingPropertiesQCOM *>( this );
  57526. }
  57527. operator VkPhysicalDeviceImageProcessingPropertiesQCOM &() VULKAN_HPP_NOEXCEPT
  57528. {
  57529. return *reinterpret_cast<VkPhysicalDeviceImageProcessingPropertiesQCOM *>( this );
  57530. }
  57531. #if defined( VULKAN_HPP_USE_REFLECT )
  57532. # if 14 <= VULKAN_HPP_CPP_VERSION
  57533. auto
  57534. # else
  57535. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  57536. void * const &,
  57537. uint32_t const &,
  57538. VULKAN_HPP_NAMESPACE::Extent2D const &,
  57539. VULKAN_HPP_NAMESPACE::Extent2D const &,
  57540. VULKAN_HPP_NAMESPACE::Extent2D const &>
  57541. # endif
  57542. reflect() const VULKAN_HPP_NOEXCEPT
  57543. {
  57544. return std::tie( sType, pNext, maxWeightFilterPhases, maxWeightFilterDimension, maxBlockMatchRegion, maxBoxFilterBlockSize );
  57545. }
  57546. #endif
  57547. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57548. auto operator<=>( PhysicalDeviceImageProcessingPropertiesQCOM const & ) const = default;
  57549. #else
  57550. bool operator==( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  57551. {
  57552. # if defined( VULKAN_HPP_USE_REFLECT )
  57553. return this->reflect() == rhs.reflect();
  57554. # else
  57555. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxWeightFilterPhases == rhs.maxWeightFilterPhases ) &&
  57556. ( maxWeightFilterDimension == rhs.maxWeightFilterDimension ) && ( maxBlockMatchRegion == rhs.maxBlockMatchRegion ) &&
  57557. ( maxBoxFilterBlockSize == rhs.maxBoxFilterBlockSize );
  57558. # endif
  57559. }
  57560. bool operator!=( PhysicalDeviceImageProcessingPropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  57561. {
  57562. return !operator==( rhs );
  57563. }
  57564. #endif
  57565. public:
  57566. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM;
  57567. void * pNext = {};
  57568. uint32_t maxWeightFilterPhases = {};
  57569. VULKAN_HPP_NAMESPACE::Extent2D maxWeightFilterDimension = {};
  57570. VULKAN_HPP_NAMESPACE::Extent2D maxBlockMatchRegion = {};
  57571. VULKAN_HPP_NAMESPACE::Extent2D maxBoxFilterBlockSize = {};
  57572. };
  57573. template <>
  57574. struct CppType<StructureType, StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM>
  57575. {
  57576. using Type = PhysicalDeviceImageProcessingPropertiesQCOM;
  57577. };
  57578. struct PhysicalDeviceImageRobustnessFeatures
  57579. {
  57580. using NativeType = VkPhysicalDeviceImageRobustnessFeatures;
  57581. static const bool allowDuplicate = false;
  57582. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageRobustnessFeatures;
  57583. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57584. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeatures( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {},
  57585. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57586. : pNext( pNext_ )
  57587. , robustImageAccess( robustImageAccess_ )
  57588. {
  57589. }
  57590. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeatures( PhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57591. PhysicalDeviceImageRobustnessFeatures( VkPhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  57592. : PhysicalDeviceImageRobustnessFeatures( *reinterpret_cast<PhysicalDeviceImageRobustnessFeatures const *>( &rhs ) )
  57593. {
  57594. }
  57595. PhysicalDeviceImageRobustnessFeatures & operator=( PhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57596. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57597. PhysicalDeviceImageRobustnessFeatures & operator=( VkPhysicalDeviceImageRobustnessFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  57598. {
  57599. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures const *>( &rhs );
  57600. return *this;
  57601. }
  57602. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57603. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageRobustnessFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57604. {
  57605. pNext = pNext_;
  57606. return *this;
  57607. }
  57608. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageRobustnessFeatures & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT
  57609. {
  57610. robustImageAccess = robustImageAccess_;
  57611. return *this;
  57612. }
  57613. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57614. operator VkPhysicalDeviceImageRobustnessFeatures const &() const VULKAN_HPP_NOEXCEPT
  57615. {
  57616. return *reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures *>( this );
  57617. }
  57618. operator VkPhysicalDeviceImageRobustnessFeatures &() VULKAN_HPP_NOEXCEPT
  57619. {
  57620. return *reinterpret_cast<VkPhysicalDeviceImageRobustnessFeatures *>( this );
  57621. }
  57622. #if defined( VULKAN_HPP_USE_REFLECT )
  57623. # if 14 <= VULKAN_HPP_CPP_VERSION
  57624. auto
  57625. # else
  57626. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  57627. # endif
  57628. reflect() const VULKAN_HPP_NOEXCEPT
  57629. {
  57630. return std::tie( sType, pNext, robustImageAccess );
  57631. }
  57632. #endif
  57633. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57634. auto operator<=>( PhysicalDeviceImageRobustnessFeatures const & ) const = default;
  57635. #else
  57636. bool operator==( PhysicalDeviceImageRobustnessFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  57637. {
  57638. # if defined( VULKAN_HPP_USE_REFLECT )
  57639. return this->reflect() == rhs.reflect();
  57640. # else
  57641. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( robustImageAccess == rhs.robustImageAccess );
  57642. # endif
  57643. }
  57644. bool operator!=( PhysicalDeviceImageRobustnessFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  57645. {
  57646. return !operator==( rhs );
  57647. }
  57648. #endif
  57649. public:
  57650. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageRobustnessFeatures;
  57651. void * pNext = {};
  57652. VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {};
  57653. };
  57654. template <>
  57655. struct CppType<StructureType, StructureType::ePhysicalDeviceImageRobustnessFeatures>
  57656. {
  57657. using Type = PhysicalDeviceImageRobustnessFeatures;
  57658. };
  57659. using PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures;
  57660. struct PhysicalDeviceImageSlicedViewOf3DFeaturesEXT
  57661. {
  57662. using NativeType = VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
  57663. static const bool allowDuplicate = false;
  57664. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
  57665. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57666. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 imageSlicedViewOf3D_ = {},
  57667. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57668. : pNext( pNext_ )
  57669. , imageSlicedViewOf3D( imageSlicedViewOf3D_ )
  57670. {
  57671. }
  57672. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57673. PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57674. : PhysicalDeviceImageSlicedViewOf3DFeaturesEXT( *reinterpret_cast<PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const *>( &rhs ) )
  57675. {
  57676. }
  57677. PhysicalDeviceImageSlicedViewOf3DFeaturesEXT & operator=( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57678. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57679. PhysicalDeviceImageSlicedViewOf3DFeaturesEXT & operator=( VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57680. {
  57681. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const *>( &rhs );
  57682. return *this;
  57683. }
  57684. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57685. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageSlicedViewOf3DFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57686. {
  57687. pNext = pNext_;
  57688. return *this;
  57689. }
  57690. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageSlicedViewOf3DFeaturesEXT &
  57691. setImageSlicedViewOf3D( VULKAN_HPP_NAMESPACE::Bool32 imageSlicedViewOf3D_ ) VULKAN_HPP_NOEXCEPT
  57692. {
  57693. imageSlicedViewOf3D = imageSlicedViewOf3D_;
  57694. return *this;
  57695. }
  57696. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57697. operator VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  57698. {
  57699. return *reinterpret_cast<const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT *>( this );
  57700. }
  57701. operator VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  57702. {
  57703. return *reinterpret_cast<VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT *>( this );
  57704. }
  57705. #if defined( VULKAN_HPP_USE_REFLECT )
  57706. # if 14 <= VULKAN_HPP_CPP_VERSION
  57707. auto
  57708. # else
  57709. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  57710. # endif
  57711. reflect() const VULKAN_HPP_NOEXCEPT
  57712. {
  57713. return std::tie( sType, pNext, imageSlicedViewOf3D );
  57714. }
  57715. #endif
  57716. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57717. auto operator<=>( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & ) const = default;
  57718. #else
  57719. bool operator==( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57720. {
  57721. # if defined( VULKAN_HPP_USE_REFLECT )
  57722. return this->reflect() == rhs.reflect();
  57723. # else
  57724. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageSlicedViewOf3D == rhs.imageSlicedViewOf3D );
  57725. # endif
  57726. }
  57727. bool operator!=( PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57728. {
  57729. return !operator==( rhs );
  57730. }
  57731. #endif
  57732. public:
  57733. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
  57734. void * pNext = {};
  57735. VULKAN_HPP_NAMESPACE::Bool32 imageSlicedViewOf3D = {};
  57736. };
  57737. template <>
  57738. struct CppType<StructureType, StructureType::ePhysicalDeviceImageSlicedViewOf3DFeaturesEXT>
  57739. {
  57740. using Type = PhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
  57741. };
  57742. struct PhysicalDeviceImageViewImageFormatInfoEXT
  57743. {
  57744. using NativeType = VkPhysicalDeviceImageViewImageFormatInfoEXT;
  57745. static const bool allowDuplicate = false;
  57746. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
  57747. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57748. VULKAN_HPP_CONSTEXPR
  57749. PhysicalDeviceImageViewImageFormatInfoEXT( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D,
  57750. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57751. : pNext( pNext_ )
  57752. , imageViewType( imageViewType_ )
  57753. {
  57754. }
  57755. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57756. PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57757. : PhysicalDeviceImageViewImageFormatInfoEXT( *reinterpret_cast<PhysicalDeviceImageViewImageFormatInfoEXT const *>( &rhs ) )
  57758. {
  57759. }
  57760. PhysicalDeviceImageViewImageFormatInfoEXT & operator=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57761. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57762. PhysicalDeviceImageViewImageFormatInfoEXT & operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57763. {
  57764. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT const *>( &rhs );
  57765. return *this;
  57766. }
  57767. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57768. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57769. {
  57770. pNext = pNext_;
  57771. return *this;
  57772. }
  57773. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewImageFormatInfoEXT &
  57774. setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT
  57775. {
  57776. imageViewType = imageViewType_;
  57777. return *this;
  57778. }
  57779. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57780. operator VkPhysicalDeviceImageViewImageFormatInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  57781. {
  57782. return *reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT *>( this );
  57783. }
  57784. operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT
  57785. {
  57786. return *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT *>( this );
  57787. }
  57788. #if defined( VULKAN_HPP_USE_REFLECT )
  57789. # if 14 <= VULKAN_HPP_CPP_VERSION
  57790. auto
  57791. # else
  57792. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageViewType const &>
  57793. # endif
  57794. reflect() const VULKAN_HPP_NOEXCEPT
  57795. {
  57796. return std::tie( sType, pNext, imageViewType );
  57797. }
  57798. #endif
  57799. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57800. auto operator<=>( PhysicalDeviceImageViewImageFormatInfoEXT const & ) const = default;
  57801. #else
  57802. bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57803. {
  57804. # if defined( VULKAN_HPP_USE_REFLECT )
  57805. return this->reflect() == rhs.reflect();
  57806. # else
  57807. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageViewType == rhs.imageViewType );
  57808. # endif
  57809. }
  57810. bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57811. {
  57812. return !operator==( rhs );
  57813. }
  57814. #endif
  57815. public:
  57816. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
  57817. void * pNext = {};
  57818. VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D;
  57819. };
  57820. template <>
  57821. struct CppType<StructureType, StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT>
  57822. {
  57823. using Type = PhysicalDeviceImageViewImageFormatInfoEXT;
  57824. };
  57825. struct PhysicalDeviceImageViewMinLodFeaturesEXT
  57826. {
  57827. using NativeType = VkPhysicalDeviceImageViewMinLodFeaturesEXT;
  57828. static const bool allowDuplicate = false;
  57829. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewMinLodFeaturesEXT;
  57830. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57831. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewMinLodFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 minLod_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57832. : pNext( pNext_ )
  57833. , minLod( minLod_ )
  57834. {
  57835. }
  57836. VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewMinLodFeaturesEXT( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57837. PhysicalDeviceImageViewMinLodFeaturesEXT( VkPhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57838. : PhysicalDeviceImageViewMinLodFeaturesEXT( *reinterpret_cast<PhysicalDeviceImageViewMinLodFeaturesEXT const *>( &rhs ) )
  57839. {
  57840. }
  57841. PhysicalDeviceImageViewMinLodFeaturesEXT & operator=( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57842. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57843. PhysicalDeviceImageViewMinLodFeaturesEXT & operator=( VkPhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  57844. {
  57845. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT const *>( &rhs );
  57846. return *this;
  57847. }
  57848. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57849. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewMinLodFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57850. {
  57851. pNext = pNext_;
  57852. return *this;
  57853. }
  57854. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewMinLodFeaturesEXT & setMinLod( VULKAN_HPP_NAMESPACE::Bool32 minLod_ ) VULKAN_HPP_NOEXCEPT
  57855. {
  57856. minLod = minLod_;
  57857. return *this;
  57858. }
  57859. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57860. operator VkPhysicalDeviceImageViewMinLodFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  57861. {
  57862. return *reinterpret_cast<const VkPhysicalDeviceImageViewMinLodFeaturesEXT *>( this );
  57863. }
  57864. operator VkPhysicalDeviceImageViewMinLodFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  57865. {
  57866. return *reinterpret_cast<VkPhysicalDeviceImageViewMinLodFeaturesEXT *>( this );
  57867. }
  57868. #if defined( VULKAN_HPP_USE_REFLECT )
  57869. # if 14 <= VULKAN_HPP_CPP_VERSION
  57870. auto
  57871. # else
  57872. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  57873. # endif
  57874. reflect() const VULKAN_HPP_NOEXCEPT
  57875. {
  57876. return std::tie( sType, pNext, minLod );
  57877. }
  57878. #endif
  57879. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57880. auto operator<=>( PhysicalDeviceImageViewMinLodFeaturesEXT const & ) const = default;
  57881. #else
  57882. bool operator==( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57883. {
  57884. # if defined( VULKAN_HPP_USE_REFLECT )
  57885. return this->reflect() == rhs.reflect();
  57886. # else
  57887. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minLod == rhs.minLod );
  57888. # endif
  57889. }
  57890. bool operator!=( PhysicalDeviceImageViewMinLodFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  57891. {
  57892. return !operator==( rhs );
  57893. }
  57894. #endif
  57895. public:
  57896. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewMinLodFeaturesEXT;
  57897. void * pNext = {};
  57898. VULKAN_HPP_NAMESPACE::Bool32 minLod = {};
  57899. };
  57900. template <>
  57901. struct CppType<StructureType, StructureType::ePhysicalDeviceImageViewMinLodFeaturesEXT>
  57902. {
  57903. using Type = PhysicalDeviceImageViewMinLodFeaturesEXT;
  57904. };
  57905. struct PhysicalDeviceImagelessFramebufferFeatures
  57906. {
  57907. using NativeType = VkPhysicalDeviceImagelessFramebufferFeatures;
  57908. static const bool allowDuplicate = false;
  57909. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
  57910. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57911. VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {},
  57912. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57913. : pNext( pNext_ )
  57914. , imagelessFramebuffer( imagelessFramebuffer_ )
  57915. {
  57916. }
  57917. VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57918. PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  57919. : PhysicalDeviceImagelessFramebufferFeatures( *reinterpret_cast<PhysicalDeviceImagelessFramebufferFeatures const *>( &rhs ) )
  57920. {
  57921. }
  57922. PhysicalDeviceImagelessFramebufferFeatures & operator=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  57923. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  57924. PhysicalDeviceImagelessFramebufferFeatures & operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  57925. {
  57926. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures const *>( &rhs );
  57927. return *this;
  57928. }
  57929. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  57930. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImagelessFramebufferFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  57931. {
  57932. pNext = pNext_;
  57933. return *this;
  57934. }
  57935. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImagelessFramebufferFeatures &
  57936. setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
  57937. {
  57938. imagelessFramebuffer = imagelessFramebuffer_;
  57939. return *this;
  57940. }
  57941. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  57942. operator VkPhysicalDeviceImagelessFramebufferFeatures const &() const VULKAN_HPP_NOEXCEPT
  57943. {
  57944. return *reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures *>( this );
  57945. }
  57946. operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT
  57947. {
  57948. return *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures *>( this );
  57949. }
  57950. #if defined( VULKAN_HPP_USE_REFLECT )
  57951. # if 14 <= VULKAN_HPP_CPP_VERSION
  57952. auto
  57953. # else
  57954. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  57955. # endif
  57956. reflect() const VULKAN_HPP_NOEXCEPT
  57957. {
  57958. return std::tie( sType, pNext, imagelessFramebuffer );
  57959. }
  57960. #endif
  57961. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  57962. auto operator<=>( PhysicalDeviceImagelessFramebufferFeatures const & ) const = default;
  57963. #else
  57964. bool operator==( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  57965. {
  57966. # if defined( VULKAN_HPP_USE_REFLECT )
  57967. return this->reflect() == rhs.reflect();
  57968. # else
  57969. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imagelessFramebuffer == rhs.imagelessFramebuffer );
  57970. # endif
  57971. }
  57972. bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  57973. {
  57974. return !operator==( rhs );
  57975. }
  57976. #endif
  57977. public:
  57978. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures;
  57979. void * pNext = {};
  57980. VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
  57981. };
  57982. template <>
  57983. struct CppType<StructureType, StructureType::ePhysicalDeviceImagelessFramebufferFeatures>
  57984. {
  57985. using Type = PhysicalDeviceImagelessFramebufferFeatures;
  57986. };
  57987. using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
  57988. struct PhysicalDeviceIndexTypeUint8FeaturesEXT
  57989. {
  57990. using NativeType = VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
  57991. static const bool allowDuplicate = false;
  57992. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
  57993. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  57994. VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {},
  57995. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  57996. : pNext( pNext_ )
  57997. , indexTypeUint8( indexTypeUint8_ )
  57998. {
  57999. }
  58000. VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58001. PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  58002. : PhysicalDeviceIndexTypeUint8FeaturesEXT( *reinterpret_cast<PhysicalDeviceIndexTypeUint8FeaturesEXT const *>( &rhs ) )
  58003. {
  58004. }
  58005. PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58006. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  58007. PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  58008. {
  58009. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT const *>( &rhs );
  58010. return *this;
  58011. }
  58012. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  58013. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  58014. {
  58015. pNext = pNext_;
  58016. return *this;
  58017. }
  58018. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT
  58019. {
  58020. indexTypeUint8 = indexTypeUint8_;
  58021. return *this;
  58022. }
  58023. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  58024. operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  58025. {
  58026. return *reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT *>( this );
  58027. }
  58028. operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  58029. {
  58030. return *reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT *>( this );
  58031. }
  58032. #if defined( VULKAN_HPP_USE_REFLECT )
  58033. # if 14 <= VULKAN_HPP_CPP_VERSION
  58034. auto
  58035. # else
  58036. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  58037. # endif
  58038. reflect() const VULKAN_HPP_NOEXCEPT
  58039. {
  58040. return std::tie( sType, pNext, indexTypeUint8 );
  58041. }
  58042. #endif
  58043. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  58044. auto operator<=>( PhysicalDeviceIndexTypeUint8FeaturesEXT const & ) const = default;
  58045. #else
  58046. bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  58047. {
  58048. # if defined( VULKAN_HPP_USE_REFLECT )
  58049. return this->reflect() == rhs.reflect();
  58050. # else
  58051. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( indexTypeUint8 == rhs.indexTypeUint8 );
  58052. # endif
  58053. }
  58054. bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  58055. {
  58056. return !operator==( rhs );
  58057. }
  58058. #endif
  58059. public:
  58060. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT;
  58061. void * pNext = {};
  58062. VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {};
  58063. };
  58064. template <>
  58065. struct CppType<StructureType, StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT>
  58066. {
  58067. using Type = PhysicalDeviceIndexTypeUint8FeaturesEXT;
  58068. };
  58069. struct PhysicalDeviceInheritedViewportScissorFeaturesNV
  58070. {
  58071. using NativeType = VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
  58072. static const bool allowDuplicate = false;
  58073. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV;
  58074. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  58075. VULKAN_HPP_CONSTEXPR PhysicalDeviceInheritedViewportScissorFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D_ = {},
  58076. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  58077. : pNext( pNext_ )
  58078. , inheritedViewportScissor2D( inheritedViewportScissor2D_ )
  58079. {
  58080. }
  58081. VULKAN_HPP_CONSTEXPR
  58082. PhysicalDeviceInheritedViewportScissorFeaturesNV( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58083. PhysicalDeviceInheritedViewportScissorFeaturesNV( VkPhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  58084. : PhysicalDeviceInheritedViewportScissorFeaturesNV( *reinterpret_cast<PhysicalDeviceInheritedViewportScissorFeaturesNV const *>( &rhs ) )
  58085. {
  58086. }
  58087. PhysicalDeviceInheritedViewportScissorFeaturesNV & operator=( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58088. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  58089. PhysicalDeviceInheritedViewportScissorFeaturesNV & operator=( VkPhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  58090. {
  58091. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV const *>( &rhs );
  58092. return *this;
  58093. }
  58094. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  58095. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInheritedViewportScissorFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  58096. {
  58097. pNext = pNext_;
  58098. return *this;
  58099. }
  58100. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInheritedViewportScissorFeaturesNV &
  58101. setInheritedViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D_ ) VULKAN_HPP_NOEXCEPT
  58102. {
  58103. inheritedViewportScissor2D = inheritedViewportScissor2D_;
  58104. return *this;
  58105. }
  58106. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  58107. operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  58108. {
  58109. return *reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV *>( this );
  58110. }
  58111. operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT
  58112. {
  58113. return *reinterpret_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV *>( this );
  58114. }
  58115. #if defined( VULKAN_HPP_USE_REFLECT )
  58116. # if 14 <= VULKAN_HPP_CPP_VERSION
  58117. auto
  58118. # else
  58119. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  58120. # endif
  58121. reflect() const VULKAN_HPP_NOEXCEPT
  58122. {
  58123. return std::tie( sType, pNext, inheritedViewportScissor2D );
  58124. }
  58125. #endif
  58126. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  58127. auto operator<=>( PhysicalDeviceInheritedViewportScissorFeaturesNV const & ) const = default;
  58128. #else
  58129. bool operator==( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  58130. {
  58131. # if defined( VULKAN_HPP_USE_REFLECT )
  58132. return this->reflect() == rhs.reflect();
  58133. # else
  58134. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( inheritedViewportScissor2D == rhs.inheritedViewportScissor2D );
  58135. # endif
  58136. }
  58137. bool operator!=( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  58138. {
  58139. return !operator==( rhs );
  58140. }
  58141. #endif
  58142. public:
  58143. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV;
  58144. void * pNext = {};
  58145. VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D = {};
  58146. };
  58147. template <>
  58148. struct CppType<StructureType, StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV>
  58149. {
  58150. using Type = PhysicalDeviceInheritedViewportScissorFeaturesNV;
  58151. };
  58152. struct PhysicalDeviceInlineUniformBlockFeatures
  58153. {
  58154. using NativeType = VkPhysicalDeviceInlineUniformBlockFeatures;
  58155. static const bool allowDuplicate = false;
  58156. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockFeatures;
  58157. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  58158. VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeatures( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {},
  58159. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {},
  58160. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  58161. : pNext( pNext_ )
  58162. , inlineUniformBlock( inlineUniformBlock_ )
  58163. , descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
  58164. {
  58165. }
  58166. VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeatures( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58167. PhysicalDeviceInlineUniformBlockFeatures( VkPhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  58168. : PhysicalDeviceInlineUniformBlockFeatures( *reinterpret_cast<PhysicalDeviceInlineUniformBlockFeatures const *>( &rhs ) )
  58169. {
  58170. }
  58171. PhysicalDeviceInlineUniformBlockFeatures & operator=( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58172. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  58173. PhysicalDeviceInlineUniformBlockFeatures & operator=( VkPhysicalDeviceInlineUniformBlockFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  58174. {
  58175. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures const *>( &rhs );
  58176. return *this;
  58177. }
  58178. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  58179. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  58180. {
  58181. pNext = pNext_;
  58182. return *this;
  58183. }
  58184. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeatures &
  58185. setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
  58186. {
  58187. inlineUniformBlock = inlineUniformBlock_;
  58188. return *this;
  58189. }
  58190. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeatures & setDescriptorBindingInlineUniformBlockUpdateAfterBind(
  58191. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  58192. {
  58193. descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
  58194. return *this;
  58195. }
  58196. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  58197. operator VkPhysicalDeviceInlineUniformBlockFeatures const &() const VULKAN_HPP_NOEXCEPT
  58198. {
  58199. return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures *>( this );
  58200. }
  58201. operator VkPhysicalDeviceInlineUniformBlockFeatures &() VULKAN_HPP_NOEXCEPT
  58202. {
  58203. return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeatures *>( this );
  58204. }
  58205. #if defined( VULKAN_HPP_USE_REFLECT )
  58206. # if 14 <= VULKAN_HPP_CPP_VERSION
  58207. auto
  58208. # else
  58209. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  58210. # endif
  58211. reflect() const VULKAN_HPP_NOEXCEPT
  58212. {
  58213. return std::tie( sType, pNext, inlineUniformBlock, descriptorBindingInlineUniformBlockUpdateAfterBind );
  58214. }
  58215. #endif
  58216. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  58217. auto operator<=>( PhysicalDeviceInlineUniformBlockFeatures const & ) const = default;
  58218. #else
  58219. bool operator==( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  58220. {
  58221. # if defined( VULKAN_HPP_USE_REFLECT )
  58222. return this->reflect() == rhs.reflect();
  58223. # else
  58224. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( inlineUniformBlock == rhs.inlineUniformBlock ) &&
  58225. ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind );
  58226. # endif
  58227. }
  58228. bool operator!=( PhysicalDeviceInlineUniformBlockFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  58229. {
  58230. return !operator==( rhs );
  58231. }
  58232. #endif
  58233. public:
  58234. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeatures;
  58235. void * pNext = {};
  58236. VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {};
  58237. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {};
  58238. };
  58239. template <>
  58240. struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockFeatures>
  58241. {
  58242. using Type = PhysicalDeviceInlineUniformBlockFeatures;
  58243. };
  58244. using PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures;
  58245. struct PhysicalDeviceInlineUniformBlockProperties
  58246. {
  58247. using NativeType = VkPhysicalDeviceInlineUniformBlockProperties;
  58248. static const bool allowDuplicate = false;
  58249. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockProperties;
  58250. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  58251. VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockProperties( uint32_t maxInlineUniformBlockSize_ = {},
  58252. uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {},
  58253. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {},
  58254. uint32_t maxDescriptorSetInlineUniformBlocks_ = {},
  58255. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {},
  58256. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  58257. : pNext( pNext_ )
  58258. , maxInlineUniformBlockSize( maxInlineUniformBlockSize_ )
  58259. , maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ )
  58260. , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ )
  58261. , maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ )
  58262. , maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
  58263. {
  58264. }
  58265. VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockProperties( PhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58266. PhysicalDeviceInlineUniformBlockProperties( VkPhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  58267. : PhysicalDeviceInlineUniformBlockProperties( *reinterpret_cast<PhysicalDeviceInlineUniformBlockProperties const *>( &rhs ) )
  58268. {
  58269. }
  58270. PhysicalDeviceInlineUniformBlockProperties & operator=( PhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58271. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  58272. PhysicalDeviceInlineUniformBlockProperties & operator=( VkPhysicalDeviceInlineUniformBlockProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  58273. {
  58274. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties const *>( &rhs );
  58275. return *this;
  58276. }
  58277. operator VkPhysicalDeviceInlineUniformBlockProperties const &() const VULKAN_HPP_NOEXCEPT
  58278. {
  58279. return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockProperties *>( this );
  58280. }
  58281. operator VkPhysicalDeviceInlineUniformBlockProperties &() VULKAN_HPP_NOEXCEPT
  58282. {
  58283. return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockProperties *>( this );
  58284. }
  58285. #if defined( VULKAN_HPP_USE_REFLECT )
  58286. # if 14 <= VULKAN_HPP_CPP_VERSION
  58287. auto
  58288. # else
  58289. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  58290. void * const &,
  58291. uint32_t const &,
  58292. uint32_t const &,
  58293. uint32_t const &,
  58294. uint32_t const &,
  58295. uint32_t const &>
  58296. # endif
  58297. reflect() const VULKAN_HPP_NOEXCEPT
  58298. {
  58299. return std::tie( sType,
  58300. pNext,
  58301. maxInlineUniformBlockSize,
  58302. maxPerStageDescriptorInlineUniformBlocks,
  58303. maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
  58304. maxDescriptorSetInlineUniformBlocks,
  58305. maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
  58306. }
  58307. #endif
  58308. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  58309. auto operator<=>( PhysicalDeviceInlineUniformBlockProperties const & ) const = default;
  58310. #else
  58311. bool operator==( PhysicalDeviceInlineUniformBlockProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  58312. {
  58313. # if defined( VULKAN_HPP_USE_REFLECT )
  58314. return this->reflect() == rhs.reflect();
  58315. # else
  58316. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize ) &&
  58317. ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks ) &&
  58318. ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks ) &&
  58319. ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks ) &&
  58320. ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
  58321. # endif
  58322. }
  58323. bool operator!=( PhysicalDeviceInlineUniformBlockProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  58324. {
  58325. return !operator==( rhs );
  58326. }
  58327. #endif
  58328. public:
  58329. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockProperties;
  58330. void * pNext = {};
  58331. uint32_t maxInlineUniformBlockSize = {};
  58332. uint32_t maxPerStageDescriptorInlineUniformBlocks = {};
  58333. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {};
  58334. uint32_t maxDescriptorSetInlineUniformBlocks = {};
  58335. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {};
  58336. };
  58337. template <>
  58338. struct CppType<StructureType, StructureType::ePhysicalDeviceInlineUniformBlockProperties>
  58339. {
  58340. using Type = PhysicalDeviceInlineUniformBlockProperties;
  58341. };
  58342. using PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockProperties;
  58343. struct PhysicalDeviceInvocationMaskFeaturesHUAWEI
  58344. {
  58345. using NativeType = VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
  58346. static const bool allowDuplicate = false;
  58347. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI;
  58348. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  58349. VULKAN_HPP_CONSTEXPR PhysicalDeviceInvocationMaskFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 invocationMask_ = {},
  58350. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  58351. : pNext( pNext_ )
  58352. , invocationMask( invocationMask_ )
  58353. {
  58354. }
  58355. VULKAN_HPP_CONSTEXPR PhysicalDeviceInvocationMaskFeaturesHUAWEI( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58356. PhysicalDeviceInvocationMaskFeaturesHUAWEI( VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  58357. : PhysicalDeviceInvocationMaskFeaturesHUAWEI( *reinterpret_cast<PhysicalDeviceInvocationMaskFeaturesHUAWEI const *>( &rhs ) )
  58358. {
  58359. }
  58360. PhysicalDeviceInvocationMaskFeaturesHUAWEI & operator=( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58361. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  58362. PhysicalDeviceInvocationMaskFeaturesHUAWEI & operator=( VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  58363. {
  58364. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI const *>( &rhs );
  58365. return *this;
  58366. }
  58367. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  58368. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInvocationMaskFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  58369. {
  58370. pNext = pNext_;
  58371. return *this;
  58372. }
  58373. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInvocationMaskFeaturesHUAWEI & setInvocationMask( VULKAN_HPP_NAMESPACE::Bool32 invocationMask_ ) VULKAN_HPP_NOEXCEPT
  58374. {
  58375. invocationMask = invocationMask_;
  58376. return *this;
  58377. }
  58378. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  58379. operator VkPhysicalDeviceInvocationMaskFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
  58380. {
  58381. return *reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI *>( this );
  58382. }
  58383. operator VkPhysicalDeviceInvocationMaskFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
  58384. {
  58385. return *reinterpret_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI *>( this );
  58386. }
  58387. #if defined( VULKAN_HPP_USE_REFLECT )
  58388. # if 14 <= VULKAN_HPP_CPP_VERSION
  58389. auto
  58390. # else
  58391. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  58392. # endif
  58393. reflect() const VULKAN_HPP_NOEXCEPT
  58394. {
  58395. return std::tie( sType, pNext, invocationMask );
  58396. }
  58397. #endif
  58398. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  58399. auto operator<=>( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & ) const = default;
  58400. #else
  58401. bool operator==( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  58402. {
  58403. # if defined( VULKAN_HPP_USE_REFLECT )
  58404. return this->reflect() == rhs.reflect();
  58405. # else
  58406. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( invocationMask == rhs.invocationMask );
  58407. # endif
  58408. }
  58409. bool operator!=( PhysicalDeviceInvocationMaskFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  58410. {
  58411. return !operator==( rhs );
  58412. }
  58413. #endif
  58414. public:
  58415. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI;
  58416. void * pNext = {};
  58417. VULKAN_HPP_NAMESPACE::Bool32 invocationMask = {};
  58418. };
  58419. template <>
  58420. struct CppType<StructureType, StructureType::ePhysicalDeviceInvocationMaskFeaturesHUAWEI>
  58421. {
  58422. using Type = PhysicalDeviceInvocationMaskFeaturesHUAWEI;
  58423. };
  58424. struct PhysicalDeviceLayeredDriverPropertiesMSFT
  58425. {
  58426. using NativeType = VkPhysicalDeviceLayeredDriverPropertiesMSFT;
  58427. static const bool allowDuplicate = false;
  58428. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT;
  58429. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  58430. VULKAN_HPP_CONSTEXPR PhysicalDeviceLayeredDriverPropertiesMSFT(
  58431. VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT underlyingAPI_ = VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT::eNone,
  58432. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  58433. : pNext( pNext_ )
  58434. , underlyingAPI( underlyingAPI_ )
  58435. {
  58436. }
  58437. VULKAN_HPP_CONSTEXPR PhysicalDeviceLayeredDriverPropertiesMSFT( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58438. PhysicalDeviceLayeredDriverPropertiesMSFT( VkPhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT
  58439. : PhysicalDeviceLayeredDriverPropertiesMSFT( *reinterpret_cast<PhysicalDeviceLayeredDriverPropertiesMSFT const *>( &rhs ) )
  58440. {
  58441. }
  58442. PhysicalDeviceLayeredDriverPropertiesMSFT & operator=( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58443. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  58444. PhysicalDeviceLayeredDriverPropertiesMSFT & operator=( VkPhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) VULKAN_HPP_NOEXCEPT
  58445. {
  58446. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT const *>( &rhs );
  58447. return *this;
  58448. }
  58449. operator VkPhysicalDeviceLayeredDriverPropertiesMSFT const &() const VULKAN_HPP_NOEXCEPT
  58450. {
  58451. return *reinterpret_cast<const VkPhysicalDeviceLayeredDriverPropertiesMSFT *>( this );
  58452. }
  58453. operator VkPhysicalDeviceLayeredDriverPropertiesMSFT &() VULKAN_HPP_NOEXCEPT
  58454. {
  58455. return *reinterpret_cast<VkPhysicalDeviceLayeredDriverPropertiesMSFT *>( this );
  58456. }
  58457. #if defined( VULKAN_HPP_USE_REFLECT )
  58458. # if 14 <= VULKAN_HPP_CPP_VERSION
  58459. auto
  58460. # else
  58461. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT const &>
  58462. # endif
  58463. reflect() const VULKAN_HPP_NOEXCEPT
  58464. {
  58465. return std::tie( sType, pNext, underlyingAPI );
  58466. }
  58467. #endif
  58468. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  58469. auto operator<=>( PhysicalDeviceLayeredDriverPropertiesMSFT const & ) const = default;
  58470. #else
  58471. bool operator==( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) const VULKAN_HPP_NOEXCEPT
  58472. {
  58473. # if defined( VULKAN_HPP_USE_REFLECT )
  58474. return this->reflect() == rhs.reflect();
  58475. # else
  58476. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( underlyingAPI == rhs.underlyingAPI );
  58477. # endif
  58478. }
  58479. bool operator!=( PhysicalDeviceLayeredDriverPropertiesMSFT const & rhs ) const VULKAN_HPP_NOEXCEPT
  58480. {
  58481. return !operator==( rhs );
  58482. }
  58483. #endif
  58484. public:
  58485. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT;
  58486. void * pNext = {};
  58487. VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT underlyingAPI = VULKAN_HPP_NAMESPACE::LayeredDriverUnderlyingApiMSFT::eNone;
  58488. };
  58489. template <>
  58490. struct CppType<StructureType, StructureType::ePhysicalDeviceLayeredDriverPropertiesMSFT>
  58491. {
  58492. using Type = PhysicalDeviceLayeredDriverPropertiesMSFT;
  58493. };
  58494. struct PhysicalDeviceLegacyDitheringFeaturesEXT
  58495. {
  58496. using NativeType = VkPhysicalDeviceLegacyDitheringFeaturesEXT;
  58497. static const bool allowDuplicate = false;
  58498. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLegacyDitheringFeaturesEXT;
  58499. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  58500. VULKAN_HPP_CONSTEXPR PhysicalDeviceLegacyDitheringFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 legacyDithering_ = {},
  58501. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  58502. : pNext( pNext_ )
  58503. , legacyDithering( legacyDithering_ )
  58504. {
  58505. }
  58506. VULKAN_HPP_CONSTEXPR PhysicalDeviceLegacyDitheringFeaturesEXT( PhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58507. PhysicalDeviceLegacyDitheringFeaturesEXT( VkPhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  58508. : PhysicalDeviceLegacyDitheringFeaturesEXT( *reinterpret_cast<PhysicalDeviceLegacyDitheringFeaturesEXT const *>( &rhs ) )
  58509. {
  58510. }
  58511. PhysicalDeviceLegacyDitheringFeaturesEXT & operator=( PhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58512. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  58513. PhysicalDeviceLegacyDitheringFeaturesEXT & operator=( VkPhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  58514. {
  58515. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT const *>( &rhs );
  58516. return *this;
  58517. }
  58518. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  58519. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLegacyDitheringFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  58520. {
  58521. pNext = pNext_;
  58522. return *this;
  58523. }
  58524. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLegacyDitheringFeaturesEXT & setLegacyDithering( VULKAN_HPP_NAMESPACE::Bool32 legacyDithering_ ) VULKAN_HPP_NOEXCEPT
  58525. {
  58526. legacyDithering = legacyDithering_;
  58527. return *this;
  58528. }
  58529. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  58530. operator VkPhysicalDeviceLegacyDitheringFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  58531. {
  58532. return *reinterpret_cast<const VkPhysicalDeviceLegacyDitheringFeaturesEXT *>( this );
  58533. }
  58534. operator VkPhysicalDeviceLegacyDitheringFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  58535. {
  58536. return *reinterpret_cast<VkPhysicalDeviceLegacyDitheringFeaturesEXT *>( this );
  58537. }
  58538. #if defined( VULKAN_HPP_USE_REFLECT )
  58539. # if 14 <= VULKAN_HPP_CPP_VERSION
  58540. auto
  58541. # else
  58542. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  58543. # endif
  58544. reflect() const VULKAN_HPP_NOEXCEPT
  58545. {
  58546. return std::tie( sType, pNext, legacyDithering );
  58547. }
  58548. #endif
  58549. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  58550. auto operator<=>( PhysicalDeviceLegacyDitheringFeaturesEXT const & ) const = default;
  58551. #else
  58552. bool operator==( PhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  58553. {
  58554. # if defined( VULKAN_HPP_USE_REFLECT )
  58555. return this->reflect() == rhs.reflect();
  58556. # else
  58557. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( legacyDithering == rhs.legacyDithering );
  58558. # endif
  58559. }
  58560. bool operator!=( PhysicalDeviceLegacyDitheringFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  58561. {
  58562. return !operator==( rhs );
  58563. }
  58564. #endif
  58565. public:
  58566. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLegacyDitheringFeaturesEXT;
  58567. void * pNext = {};
  58568. VULKAN_HPP_NAMESPACE::Bool32 legacyDithering = {};
  58569. };
  58570. template <>
  58571. struct CppType<StructureType, StructureType::ePhysicalDeviceLegacyDitheringFeaturesEXT>
  58572. {
  58573. using Type = PhysicalDeviceLegacyDitheringFeaturesEXT;
  58574. };
  58575. struct PhysicalDeviceLimits
  58576. {
  58577. using NativeType = VkPhysicalDeviceLimits;
  58578. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  58579. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( uint32_t maxImageDimension1D_ = {},
  58580. uint32_t maxImageDimension2D_ = {},
  58581. uint32_t maxImageDimension3D_ = {},
  58582. uint32_t maxImageDimensionCube_ = {},
  58583. uint32_t maxImageArrayLayers_ = {},
  58584. uint32_t maxTexelBufferElements_ = {},
  58585. uint32_t maxUniformBufferRange_ = {},
  58586. uint32_t maxStorageBufferRange_ = {},
  58587. uint32_t maxPushConstantsSize_ = {},
  58588. uint32_t maxMemoryAllocationCount_ = {},
  58589. uint32_t maxSamplerAllocationCount_ = {},
  58590. VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity_ = {},
  58591. VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize_ = {},
  58592. uint32_t maxBoundDescriptorSets_ = {},
  58593. uint32_t maxPerStageDescriptorSamplers_ = {},
  58594. uint32_t maxPerStageDescriptorUniformBuffers_ = {},
  58595. uint32_t maxPerStageDescriptorStorageBuffers_ = {},
  58596. uint32_t maxPerStageDescriptorSampledImages_ = {},
  58597. uint32_t maxPerStageDescriptorStorageImages_ = {},
  58598. uint32_t maxPerStageDescriptorInputAttachments_ = {},
  58599. uint32_t maxPerStageResources_ = {},
  58600. uint32_t maxDescriptorSetSamplers_ = {},
  58601. uint32_t maxDescriptorSetUniformBuffers_ = {},
  58602. uint32_t maxDescriptorSetUniformBuffersDynamic_ = {},
  58603. uint32_t maxDescriptorSetStorageBuffers_ = {},
  58604. uint32_t maxDescriptorSetStorageBuffersDynamic_ = {},
  58605. uint32_t maxDescriptorSetSampledImages_ = {},
  58606. uint32_t maxDescriptorSetStorageImages_ = {},
  58607. uint32_t maxDescriptorSetInputAttachments_ = {},
  58608. uint32_t maxVertexInputAttributes_ = {},
  58609. uint32_t maxVertexInputBindings_ = {},
  58610. uint32_t maxVertexInputAttributeOffset_ = {},
  58611. uint32_t maxVertexInputBindingStride_ = {},
  58612. uint32_t maxVertexOutputComponents_ = {},
  58613. uint32_t maxTessellationGenerationLevel_ = {},
  58614. uint32_t maxTessellationPatchSize_ = {},
  58615. uint32_t maxTessellationControlPerVertexInputComponents_ = {},
  58616. uint32_t maxTessellationControlPerVertexOutputComponents_ = {},
  58617. uint32_t maxTessellationControlPerPatchOutputComponents_ = {},
  58618. uint32_t maxTessellationControlTotalOutputComponents_ = {},
  58619. uint32_t maxTessellationEvaluationInputComponents_ = {},
  58620. uint32_t maxTessellationEvaluationOutputComponents_ = {},
  58621. uint32_t maxGeometryShaderInvocations_ = {},
  58622. uint32_t maxGeometryInputComponents_ = {},
  58623. uint32_t maxGeometryOutputComponents_ = {},
  58624. uint32_t maxGeometryOutputVertices_ = {},
  58625. uint32_t maxGeometryTotalOutputComponents_ = {},
  58626. uint32_t maxFragmentInputComponents_ = {},
  58627. uint32_t maxFragmentOutputAttachments_ = {},
  58628. uint32_t maxFragmentDualSrcAttachments_ = {},
  58629. uint32_t maxFragmentCombinedOutputResources_ = {},
  58630. uint32_t maxComputeSharedMemorySize_ = {},
  58631. std::array<uint32_t, 3> const & maxComputeWorkGroupCount_ = {},
  58632. uint32_t maxComputeWorkGroupInvocations_ = {},
  58633. std::array<uint32_t, 3> const & maxComputeWorkGroupSize_ = {},
  58634. uint32_t subPixelPrecisionBits_ = {},
  58635. uint32_t subTexelPrecisionBits_ = {},
  58636. uint32_t mipmapPrecisionBits_ = {},
  58637. uint32_t maxDrawIndexedIndexValue_ = {},
  58638. uint32_t maxDrawIndirectCount_ = {},
  58639. float maxSamplerLodBias_ = {},
  58640. float maxSamplerAnisotropy_ = {},
  58641. uint32_t maxViewports_ = {},
  58642. std::array<uint32_t, 2> const & maxViewportDimensions_ = {},
  58643. std::array<float, 2> const & viewportBoundsRange_ = {},
  58644. uint32_t viewportSubPixelBits_ = {},
  58645. size_t minMemoryMapAlignment_ = {},
  58646. VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment_ = {},
  58647. VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment_ = {},
  58648. VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment_ = {},
  58649. int32_t minTexelOffset_ = {},
  58650. uint32_t maxTexelOffset_ = {},
  58651. int32_t minTexelGatherOffset_ = {},
  58652. uint32_t maxTexelGatherOffset_ = {},
  58653. float minInterpolationOffset_ = {},
  58654. float maxInterpolationOffset_ = {},
  58655. uint32_t subPixelInterpolationOffsetBits_ = {},
  58656. uint32_t maxFramebufferWidth_ = {},
  58657. uint32_t maxFramebufferHeight_ = {},
  58658. uint32_t maxFramebufferLayers_ = {},
  58659. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts_ = {},
  58660. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts_ = {},
  58661. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts_ = {},
  58662. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts_ = {},
  58663. uint32_t maxColorAttachments_ = {},
  58664. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts_ = {},
  58665. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts_ = {},
  58666. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts_ = {},
  58667. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts_ = {},
  58668. VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts_ = {},
  58669. uint32_t maxSampleMaskWords_ = {},
  58670. VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics_ = {},
  58671. float timestampPeriod_ = {},
  58672. uint32_t maxClipDistances_ = {},
  58673. uint32_t maxCullDistances_ = {},
  58674. uint32_t maxCombinedClipAndCullDistances_ = {},
  58675. uint32_t discreteQueuePriorities_ = {},
  58676. std::array<float, 2> const & pointSizeRange_ = {},
  58677. std::array<float, 2> const & lineWidthRange_ = {},
  58678. float pointSizeGranularity_ = {},
  58679. float lineWidthGranularity_ = {},
  58680. VULKAN_HPP_NAMESPACE::Bool32 strictLines_ = {},
  58681. VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations_ = {},
  58682. VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment_ = {},
  58683. VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment_ = {},
  58684. VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize_ = {} ) VULKAN_HPP_NOEXCEPT
  58685. : maxImageDimension1D( maxImageDimension1D_ )
  58686. , maxImageDimension2D( maxImageDimension2D_ )
  58687. , maxImageDimension3D( maxImageDimension3D_ )
  58688. , maxImageDimensionCube( maxImageDimensionCube_ )
  58689. , maxImageArrayLayers( maxImageArrayLayers_ )
  58690. , maxTexelBufferElements( maxTexelBufferElements_ )
  58691. , maxUniformBufferRange( maxUniformBufferRange_ )
  58692. , maxStorageBufferRange( maxStorageBufferRange_ )
  58693. , maxPushConstantsSize( maxPushConstantsSize_ )
  58694. , maxMemoryAllocationCount( maxMemoryAllocationCount_ )
  58695. , maxSamplerAllocationCount( maxSamplerAllocationCount_ )
  58696. , bufferImageGranularity( bufferImageGranularity_ )
  58697. , sparseAddressSpaceSize( sparseAddressSpaceSize_ )
  58698. , maxBoundDescriptorSets( maxBoundDescriptorSets_ )
  58699. , maxPerStageDescriptorSamplers( maxPerStageDescriptorSamplers_ )
  58700. , maxPerStageDescriptorUniformBuffers( maxPerStageDescriptorUniformBuffers_ )
  58701. , maxPerStageDescriptorStorageBuffers( maxPerStageDescriptorStorageBuffers_ )
  58702. , maxPerStageDescriptorSampledImages( maxPerStageDescriptorSampledImages_ )
  58703. , maxPerStageDescriptorStorageImages( maxPerStageDescriptorStorageImages_ )
  58704. , maxPerStageDescriptorInputAttachments( maxPerStageDescriptorInputAttachments_ )
  58705. , maxPerStageResources( maxPerStageResources_ )
  58706. , maxDescriptorSetSamplers( maxDescriptorSetSamplers_ )
  58707. , maxDescriptorSetUniformBuffers( maxDescriptorSetUniformBuffers_ )
  58708. , maxDescriptorSetUniformBuffersDynamic( maxDescriptorSetUniformBuffersDynamic_ )
  58709. , maxDescriptorSetStorageBuffers( maxDescriptorSetStorageBuffers_ )
  58710. , maxDescriptorSetStorageBuffersDynamic( maxDescriptorSetStorageBuffersDynamic_ )
  58711. , maxDescriptorSetSampledImages( maxDescriptorSetSampledImages_ )
  58712. , maxDescriptorSetStorageImages( maxDescriptorSetStorageImages_ )
  58713. , maxDescriptorSetInputAttachments( maxDescriptorSetInputAttachments_ )
  58714. , maxVertexInputAttributes( maxVertexInputAttributes_ )
  58715. , maxVertexInputBindings( maxVertexInputBindings_ )
  58716. , maxVertexInputAttributeOffset( maxVertexInputAttributeOffset_ )
  58717. , maxVertexInputBindingStride( maxVertexInputBindingStride_ )
  58718. , maxVertexOutputComponents( maxVertexOutputComponents_ )
  58719. , maxTessellationGenerationLevel( maxTessellationGenerationLevel_ )
  58720. , maxTessellationPatchSize( maxTessellationPatchSize_ )
  58721. , maxTessellationControlPerVertexInputComponents( maxTessellationControlPerVertexInputComponents_ )
  58722. , maxTessellationControlPerVertexOutputComponents( maxTessellationControlPerVertexOutputComponents_ )
  58723. , maxTessellationControlPerPatchOutputComponents( maxTessellationControlPerPatchOutputComponents_ )
  58724. , maxTessellationControlTotalOutputComponents( maxTessellationControlTotalOutputComponents_ )
  58725. , maxTessellationEvaluationInputComponents( maxTessellationEvaluationInputComponents_ )
  58726. , maxTessellationEvaluationOutputComponents( maxTessellationEvaluationOutputComponents_ )
  58727. , maxGeometryShaderInvocations( maxGeometryShaderInvocations_ )
  58728. , maxGeometryInputComponents( maxGeometryInputComponents_ )
  58729. , maxGeometryOutputComponents( maxGeometryOutputComponents_ )
  58730. , maxGeometryOutputVertices( maxGeometryOutputVertices_ )
  58731. , maxGeometryTotalOutputComponents( maxGeometryTotalOutputComponents_ )
  58732. , maxFragmentInputComponents( maxFragmentInputComponents_ )
  58733. , maxFragmentOutputAttachments( maxFragmentOutputAttachments_ )
  58734. , maxFragmentDualSrcAttachments( maxFragmentDualSrcAttachments_ )
  58735. , maxFragmentCombinedOutputResources( maxFragmentCombinedOutputResources_ )
  58736. , maxComputeSharedMemorySize( maxComputeSharedMemorySize_ )
  58737. , maxComputeWorkGroupCount( maxComputeWorkGroupCount_ )
  58738. , maxComputeWorkGroupInvocations( maxComputeWorkGroupInvocations_ )
  58739. , maxComputeWorkGroupSize( maxComputeWorkGroupSize_ )
  58740. , subPixelPrecisionBits( subPixelPrecisionBits_ )
  58741. , subTexelPrecisionBits( subTexelPrecisionBits_ )
  58742. , mipmapPrecisionBits( mipmapPrecisionBits_ )
  58743. , maxDrawIndexedIndexValue( maxDrawIndexedIndexValue_ )
  58744. , maxDrawIndirectCount( maxDrawIndirectCount_ )
  58745. , maxSamplerLodBias( maxSamplerLodBias_ )
  58746. , maxSamplerAnisotropy( maxSamplerAnisotropy_ )
  58747. , maxViewports( maxViewports_ )
  58748. , maxViewportDimensions( maxViewportDimensions_ )
  58749. , viewportBoundsRange( viewportBoundsRange_ )
  58750. , viewportSubPixelBits( viewportSubPixelBits_ )
  58751. , minMemoryMapAlignment( minMemoryMapAlignment_ )
  58752. , minTexelBufferOffsetAlignment( minTexelBufferOffsetAlignment_ )
  58753. , minUniformBufferOffsetAlignment( minUniformBufferOffsetAlignment_ )
  58754. , minStorageBufferOffsetAlignment( minStorageBufferOffsetAlignment_ )
  58755. , minTexelOffset( minTexelOffset_ )
  58756. , maxTexelOffset( maxTexelOffset_ )
  58757. , minTexelGatherOffset( minTexelGatherOffset_ )
  58758. , maxTexelGatherOffset( maxTexelGatherOffset_ )
  58759. , minInterpolationOffset( minInterpolationOffset_ )
  58760. , maxInterpolationOffset( maxInterpolationOffset_ )
  58761. , subPixelInterpolationOffsetBits( subPixelInterpolationOffsetBits_ )
  58762. , maxFramebufferWidth( maxFramebufferWidth_ )
  58763. , maxFramebufferHeight( maxFramebufferHeight_ )
  58764. , maxFramebufferLayers( maxFramebufferLayers_ )
  58765. , framebufferColorSampleCounts( framebufferColorSampleCounts_ )
  58766. , framebufferDepthSampleCounts( framebufferDepthSampleCounts_ )
  58767. , framebufferStencilSampleCounts( framebufferStencilSampleCounts_ )
  58768. , framebufferNoAttachmentsSampleCounts( framebufferNoAttachmentsSampleCounts_ )
  58769. , maxColorAttachments( maxColorAttachments_ )
  58770. , sampledImageColorSampleCounts( sampledImageColorSampleCounts_ )
  58771. , sampledImageIntegerSampleCounts( sampledImageIntegerSampleCounts_ )
  58772. , sampledImageDepthSampleCounts( sampledImageDepthSampleCounts_ )
  58773. , sampledImageStencilSampleCounts( sampledImageStencilSampleCounts_ )
  58774. , storageImageSampleCounts( storageImageSampleCounts_ )
  58775. , maxSampleMaskWords( maxSampleMaskWords_ )
  58776. , timestampComputeAndGraphics( timestampComputeAndGraphics_ )
  58777. , timestampPeriod( timestampPeriod_ )
  58778. , maxClipDistances( maxClipDistances_ )
  58779. , maxCullDistances( maxCullDistances_ )
  58780. , maxCombinedClipAndCullDistances( maxCombinedClipAndCullDistances_ )
  58781. , discreteQueuePriorities( discreteQueuePriorities_ )
  58782. , pointSizeRange( pointSizeRange_ )
  58783. , lineWidthRange( lineWidthRange_ )
  58784. , pointSizeGranularity( pointSizeGranularity_ )
  58785. , lineWidthGranularity( lineWidthGranularity_ )
  58786. , strictLines( strictLines_ )
  58787. , standardSampleLocations( standardSampleLocations_ )
  58788. , optimalBufferCopyOffsetAlignment( optimalBufferCopyOffsetAlignment_ )
  58789. , optimalBufferCopyRowPitchAlignment( optimalBufferCopyRowPitchAlignment_ )
  58790. , nonCoherentAtomSize( nonCoherentAtomSize_ )
  58791. {
  58792. }
  58793. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58794. PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
  58795. : PhysicalDeviceLimits( *reinterpret_cast<PhysicalDeviceLimits const *>( &rhs ) )
  58796. {
  58797. }
  58798. PhysicalDeviceLimits & operator=( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  58799. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  58800. PhysicalDeviceLimits & operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT
  58801. {
  58802. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const *>( &rhs );
  58803. return *this;
  58804. }
  58805. operator VkPhysicalDeviceLimits const &() const VULKAN_HPP_NOEXCEPT
  58806. {
  58807. return *reinterpret_cast<const VkPhysicalDeviceLimits *>( this );
  58808. }
  58809. operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT
  58810. {
  58811. return *reinterpret_cast<VkPhysicalDeviceLimits *>( this );
  58812. }
  58813. #if defined( VULKAN_HPP_USE_REFLECT )
  58814. # if 14 <= VULKAN_HPP_CPP_VERSION
  58815. auto
  58816. # else
  58817. std::tuple<uint32_t const &,
  58818. uint32_t const &,
  58819. uint32_t const &,
  58820. uint32_t const &,
  58821. uint32_t const &,
  58822. uint32_t const &,
  58823. uint32_t const &,
  58824. uint32_t const &,
  58825. uint32_t const &,
  58826. uint32_t const &,
  58827. uint32_t const &,
  58828. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  58829. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  58830. uint32_t const &,
  58831. uint32_t const &,
  58832. uint32_t const &,
  58833. uint32_t const &,
  58834. uint32_t const &,
  58835. uint32_t const &,
  58836. uint32_t const &,
  58837. uint32_t const &,
  58838. uint32_t const &,
  58839. uint32_t const &,
  58840. uint32_t const &,
  58841. uint32_t const &,
  58842. uint32_t const &,
  58843. uint32_t const &,
  58844. uint32_t const &,
  58845. uint32_t const &,
  58846. uint32_t const &,
  58847. uint32_t const &,
  58848. uint32_t const &,
  58849. uint32_t const &,
  58850. uint32_t const &,
  58851. uint32_t const &,
  58852. uint32_t const &,
  58853. uint32_t const &,
  58854. uint32_t const &,
  58855. uint32_t const &,
  58856. uint32_t const &,
  58857. uint32_t const &,
  58858. uint32_t const &,
  58859. uint32_t const &,
  58860. uint32_t const &,
  58861. uint32_t const &,
  58862. uint32_t const &,
  58863. uint32_t const &,
  58864. uint32_t const &,
  58865. uint32_t const &,
  58866. uint32_t const &,
  58867. uint32_t const &,
  58868. uint32_t const &,
  58869. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  58870. uint32_t const &,
  58871. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  58872. uint32_t const &,
  58873. uint32_t const &,
  58874. uint32_t const &,
  58875. uint32_t const &,
  58876. uint32_t const &,
  58877. float const &,
  58878. float const &,
  58879. uint32_t const &,
  58880. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 2> const &,
  58881. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &,
  58882. uint32_t const &,
  58883. size_t const &,
  58884. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  58885. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  58886. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  58887. int32_t const &,
  58888. uint32_t const &,
  58889. int32_t const &,
  58890. uint32_t const &,
  58891. float const &,
  58892. float const &,
  58893. uint32_t const &,
  58894. uint32_t const &,
  58895. uint32_t const &,
  58896. uint32_t const &,
  58897. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  58898. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  58899. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  58900. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  58901. uint32_t const &,
  58902. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  58903. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  58904. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  58905. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  58906. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  58907. uint32_t const &,
  58908. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58909. float const &,
  58910. uint32_t const &,
  58911. uint32_t const &,
  58912. uint32_t const &,
  58913. uint32_t const &,
  58914. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &,
  58915. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &,
  58916. float const &,
  58917. float const &,
  58918. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58919. VULKAN_HPP_NAMESPACE::Bool32 const &,
  58920. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  58921. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  58922. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  58923. # endif
  58924. reflect() const VULKAN_HPP_NOEXCEPT
  58925. {
  58926. return std::tie( maxImageDimension1D,
  58927. maxImageDimension2D,
  58928. maxImageDimension3D,
  58929. maxImageDimensionCube,
  58930. maxImageArrayLayers,
  58931. maxTexelBufferElements,
  58932. maxUniformBufferRange,
  58933. maxStorageBufferRange,
  58934. maxPushConstantsSize,
  58935. maxMemoryAllocationCount,
  58936. maxSamplerAllocationCount,
  58937. bufferImageGranularity,
  58938. sparseAddressSpaceSize,
  58939. maxBoundDescriptorSets,
  58940. maxPerStageDescriptorSamplers,
  58941. maxPerStageDescriptorUniformBuffers,
  58942. maxPerStageDescriptorStorageBuffers,
  58943. maxPerStageDescriptorSampledImages,
  58944. maxPerStageDescriptorStorageImages,
  58945. maxPerStageDescriptorInputAttachments,
  58946. maxPerStageResources,
  58947. maxDescriptorSetSamplers,
  58948. maxDescriptorSetUniformBuffers,
  58949. maxDescriptorSetUniformBuffersDynamic,
  58950. maxDescriptorSetStorageBuffers,
  58951. maxDescriptorSetStorageBuffersDynamic,
  58952. maxDescriptorSetSampledImages,
  58953. maxDescriptorSetStorageImages,
  58954. maxDescriptorSetInputAttachments,
  58955. maxVertexInputAttributes,
  58956. maxVertexInputBindings,
  58957. maxVertexInputAttributeOffset,
  58958. maxVertexInputBindingStride,
  58959. maxVertexOutputComponents,
  58960. maxTessellationGenerationLevel,
  58961. maxTessellationPatchSize,
  58962. maxTessellationControlPerVertexInputComponents,
  58963. maxTessellationControlPerVertexOutputComponents,
  58964. maxTessellationControlPerPatchOutputComponents,
  58965. maxTessellationControlTotalOutputComponents,
  58966. maxTessellationEvaluationInputComponents,
  58967. maxTessellationEvaluationOutputComponents,
  58968. maxGeometryShaderInvocations,
  58969. maxGeometryInputComponents,
  58970. maxGeometryOutputComponents,
  58971. maxGeometryOutputVertices,
  58972. maxGeometryTotalOutputComponents,
  58973. maxFragmentInputComponents,
  58974. maxFragmentOutputAttachments,
  58975. maxFragmentDualSrcAttachments,
  58976. maxFragmentCombinedOutputResources,
  58977. maxComputeSharedMemorySize,
  58978. maxComputeWorkGroupCount,
  58979. maxComputeWorkGroupInvocations,
  58980. maxComputeWorkGroupSize,
  58981. subPixelPrecisionBits,
  58982. subTexelPrecisionBits,
  58983. mipmapPrecisionBits,
  58984. maxDrawIndexedIndexValue,
  58985. maxDrawIndirectCount,
  58986. maxSamplerLodBias,
  58987. maxSamplerAnisotropy,
  58988. maxViewports,
  58989. maxViewportDimensions,
  58990. viewportBoundsRange,
  58991. viewportSubPixelBits,
  58992. minMemoryMapAlignment,
  58993. minTexelBufferOffsetAlignment,
  58994. minUniformBufferOffsetAlignment,
  58995. minStorageBufferOffsetAlignment,
  58996. minTexelOffset,
  58997. maxTexelOffset,
  58998. minTexelGatherOffset,
  58999. maxTexelGatherOffset,
  59000. minInterpolationOffset,
  59001. maxInterpolationOffset,
  59002. subPixelInterpolationOffsetBits,
  59003. maxFramebufferWidth,
  59004. maxFramebufferHeight,
  59005. maxFramebufferLayers,
  59006. framebufferColorSampleCounts,
  59007. framebufferDepthSampleCounts,
  59008. framebufferStencilSampleCounts,
  59009. framebufferNoAttachmentsSampleCounts,
  59010. maxColorAttachments,
  59011. sampledImageColorSampleCounts,
  59012. sampledImageIntegerSampleCounts,
  59013. sampledImageDepthSampleCounts,
  59014. sampledImageStencilSampleCounts,
  59015. storageImageSampleCounts,
  59016. maxSampleMaskWords,
  59017. timestampComputeAndGraphics,
  59018. timestampPeriod,
  59019. maxClipDistances,
  59020. maxCullDistances,
  59021. maxCombinedClipAndCullDistances,
  59022. discreteQueuePriorities,
  59023. pointSizeRange,
  59024. lineWidthRange,
  59025. pointSizeGranularity,
  59026. lineWidthGranularity,
  59027. strictLines,
  59028. standardSampleLocations,
  59029. optimalBufferCopyOffsetAlignment,
  59030. optimalBufferCopyRowPitchAlignment,
  59031. nonCoherentAtomSize );
  59032. }
  59033. #endif
  59034. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59035. auto operator<=>( PhysicalDeviceLimits const & ) const = default;
  59036. #else
  59037. bool operator==( PhysicalDeviceLimits const & rhs ) const VULKAN_HPP_NOEXCEPT
  59038. {
  59039. # if defined( VULKAN_HPP_USE_REFLECT )
  59040. return this->reflect() == rhs.reflect();
  59041. # else
  59042. return ( maxImageDimension1D == rhs.maxImageDimension1D ) && ( maxImageDimension2D == rhs.maxImageDimension2D ) &&
  59043. ( maxImageDimension3D == rhs.maxImageDimension3D ) && ( maxImageDimensionCube == rhs.maxImageDimensionCube ) &&
  59044. ( maxImageArrayLayers == rhs.maxImageArrayLayers ) && ( maxTexelBufferElements == rhs.maxTexelBufferElements ) &&
  59045. ( maxUniformBufferRange == rhs.maxUniformBufferRange ) && ( maxStorageBufferRange == rhs.maxStorageBufferRange ) &&
  59046. ( maxPushConstantsSize == rhs.maxPushConstantsSize ) && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount ) &&
  59047. ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount ) && ( bufferImageGranularity == rhs.bufferImageGranularity ) &&
  59048. ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize ) && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets ) &&
  59049. ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers ) &&
  59050. ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers ) &&
  59051. ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers ) &&
  59052. ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages ) &&
  59053. ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages ) &&
  59054. ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments ) && ( maxPerStageResources == rhs.maxPerStageResources ) &&
  59055. ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers ) && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers ) &&
  59056. ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic ) &&
  59057. ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers ) &&
  59058. ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic ) &&
  59059. ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages ) && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages ) &&
  59060. ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments ) && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes ) &&
  59061. ( maxVertexInputBindings == rhs.maxVertexInputBindings ) && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset ) &&
  59062. ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride ) && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents ) &&
  59063. ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel ) && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize ) &&
  59064. ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents ) &&
  59065. ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents ) &&
  59066. ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents ) &&
  59067. ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents ) &&
  59068. ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents ) &&
  59069. ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents ) &&
  59070. ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations ) && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents ) &&
  59071. ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents ) && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices ) &&
  59072. ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents ) && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents ) &&
  59073. ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments ) && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments ) &&
  59074. ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources ) &&
  59075. ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize ) && ( maxComputeWorkGroupCount == rhs.maxComputeWorkGroupCount ) &&
  59076. ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations ) && ( maxComputeWorkGroupSize == rhs.maxComputeWorkGroupSize ) &&
  59077. ( subPixelPrecisionBits == rhs.subPixelPrecisionBits ) && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits ) &&
  59078. ( mipmapPrecisionBits == rhs.mipmapPrecisionBits ) && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue ) &&
  59079. ( maxDrawIndirectCount == rhs.maxDrawIndirectCount ) && ( maxSamplerLodBias == rhs.maxSamplerLodBias ) &&
  59080. ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy ) && ( maxViewports == rhs.maxViewports ) &&
  59081. ( maxViewportDimensions == rhs.maxViewportDimensions ) && ( viewportBoundsRange == rhs.viewportBoundsRange ) &&
  59082. ( viewportSubPixelBits == rhs.viewportSubPixelBits ) && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment ) &&
  59083. ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment ) &&
  59084. ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment ) &&
  59085. ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment ) && ( minTexelOffset == rhs.minTexelOffset ) &&
  59086. ( maxTexelOffset == rhs.maxTexelOffset ) && ( minTexelGatherOffset == rhs.minTexelGatherOffset ) &&
  59087. ( maxTexelGatherOffset == rhs.maxTexelGatherOffset ) && ( minInterpolationOffset == rhs.minInterpolationOffset ) &&
  59088. ( maxInterpolationOffset == rhs.maxInterpolationOffset ) && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits ) &&
  59089. ( maxFramebufferWidth == rhs.maxFramebufferWidth ) && ( maxFramebufferHeight == rhs.maxFramebufferHeight ) &&
  59090. ( maxFramebufferLayers == rhs.maxFramebufferLayers ) && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts ) &&
  59091. ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts ) && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts ) &&
  59092. ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts ) && ( maxColorAttachments == rhs.maxColorAttachments ) &&
  59093. ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts ) &&
  59094. ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts ) &&
  59095. ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts ) &&
  59096. ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts ) && ( storageImageSampleCounts == rhs.storageImageSampleCounts ) &&
  59097. ( maxSampleMaskWords == rhs.maxSampleMaskWords ) && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics ) &&
  59098. ( timestampPeriod == rhs.timestampPeriod ) && ( maxClipDistances == rhs.maxClipDistances ) && ( maxCullDistances == rhs.maxCullDistances ) &&
  59099. ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances ) && ( discreteQueuePriorities == rhs.discreteQueuePriorities ) &&
  59100. ( pointSizeRange == rhs.pointSizeRange ) && ( lineWidthRange == rhs.lineWidthRange ) && ( pointSizeGranularity == rhs.pointSizeGranularity ) &&
  59101. ( lineWidthGranularity == rhs.lineWidthGranularity ) && ( strictLines == rhs.strictLines ) &&
  59102. ( standardSampleLocations == rhs.standardSampleLocations ) && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment ) &&
  59103. ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment ) && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize );
  59104. # endif
  59105. }
  59106. bool operator!=( PhysicalDeviceLimits const & rhs ) const VULKAN_HPP_NOEXCEPT
  59107. {
  59108. return !operator==( rhs );
  59109. }
  59110. #endif
  59111. public:
  59112. uint32_t maxImageDimension1D = {};
  59113. uint32_t maxImageDimension2D = {};
  59114. uint32_t maxImageDimension3D = {};
  59115. uint32_t maxImageDimensionCube = {};
  59116. uint32_t maxImageArrayLayers = {};
  59117. uint32_t maxTexelBufferElements = {};
  59118. uint32_t maxUniformBufferRange = {};
  59119. uint32_t maxStorageBufferRange = {};
  59120. uint32_t maxPushConstantsSize = {};
  59121. uint32_t maxMemoryAllocationCount = {};
  59122. uint32_t maxSamplerAllocationCount = {};
  59123. VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {};
  59124. VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {};
  59125. uint32_t maxBoundDescriptorSets = {};
  59126. uint32_t maxPerStageDescriptorSamplers = {};
  59127. uint32_t maxPerStageDescriptorUniformBuffers = {};
  59128. uint32_t maxPerStageDescriptorStorageBuffers = {};
  59129. uint32_t maxPerStageDescriptorSampledImages = {};
  59130. uint32_t maxPerStageDescriptorStorageImages = {};
  59131. uint32_t maxPerStageDescriptorInputAttachments = {};
  59132. uint32_t maxPerStageResources = {};
  59133. uint32_t maxDescriptorSetSamplers = {};
  59134. uint32_t maxDescriptorSetUniformBuffers = {};
  59135. uint32_t maxDescriptorSetUniformBuffersDynamic = {};
  59136. uint32_t maxDescriptorSetStorageBuffers = {};
  59137. uint32_t maxDescriptorSetStorageBuffersDynamic = {};
  59138. uint32_t maxDescriptorSetSampledImages = {};
  59139. uint32_t maxDescriptorSetStorageImages = {};
  59140. uint32_t maxDescriptorSetInputAttachments = {};
  59141. uint32_t maxVertexInputAttributes = {};
  59142. uint32_t maxVertexInputBindings = {};
  59143. uint32_t maxVertexInputAttributeOffset = {};
  59144. uint32_t maxVertexInputBindingStride = {};
  59145. uint32_t maxVertexOutputComponents = {};
  59146. uint32_t maxTessellationGenerationLevel = {};
  59147. uint32_t maxTessellationPatchSize = {};
  59148. uint32_t maxTessellationControlPerVertexInputComponents = {};
  59149. uint32_t maxTessellationControlPerVertexOutputComponents = {};
  59150. uint32_t maxTessellationControlPerPatchOutputComponents = {};
  59151. uint32_t maxTessellationControlTotalOutputComponents = {};
  59152. uint32_t maxTessellationEvaluationInputComponents = {};
  59153. uint32_t maxTessellationEvaluationOutputComponents = {};
  59154. uint32_t maxGeometryShaderInvocations = {};
  59155. uint32_t maxGeometryInputComponents = {};
  59156. uint32_t maxGeometryOutputComponents = {};
  59157. uint32_t maxGeometryOutputVertices = {};
  59158. uint32_t maxGeometryTotalOutputComponents = {};
  59159. uint32_t maxFragmentInputComponents = {};
  59160. uint32_t maxFragmentOutputAttachments = {};
  59161. uint32_t maxFragmentDualSrcAttachments = {};
  59162. uint32_t maxFragmentCombinedOutputResources = {};
  59163. uint32_t maxComputeSharedMemorySize = {};
  59164. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupCount = {};
  59165. uint32_t maxComputeWorkGroupInvocations = {};
  59166. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxComputeWorkGroupSize = {};
  59167. uint32_t subPixelPrecisionBits = {};
  59168. uint32_t subTexelPrecisionBits = {};
  59169. uint32_t mipmapPrecisionBits = {};
  59170. uint32_t maxDrawIndexedIndexValue = {};
  59171. uint32_t maxDrawIndirectCount = {};
  59172. float maxSamplerLodBias = {};
  59173. float maxSamplerAnisotropy = {};
  59174. uint32_t maxViewports = {};
  59175. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 2> maxViewportDimensions = {};
  59176. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> viewportBoundsRange = {};
  59177. uint32_t viewportSubPixelBits = {};
  59178. size_t minMemoryMapAlignment = {};
  59179. VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {};
  59180. VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {};
  59181. VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {};
  59182. int32_t minTexelOffset = {};
  59183. uint32_t maxTexelOffset = {};
  59184. int32_t minTexelGatherOffset = {};
  59185. uint32_t maxTexelGatherOffset = {};
  59186. float minInterpolationOffset = {};
  59187. float maxInterpolationOffset = {};
  59188. uint32_t subPixelInterpolationOffsetBits = {};
  59189. uint32_t maxFramebufferWidth = {};
  59190. uint32_t maxFramebufferHeight = {};
  59191. uint32_t maxFramebufferLayers = {};
  59192. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {};
  59193. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {};
  59194. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {};
  59195. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {};
  59196. uint32_t maxColorAttachments = {};
  59197. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {};
  59198. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {};
  59199. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {};
  59200. VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {};
  59201. VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {};
  59202. uint32_t maxSampleMaskWords = {};
  59203. VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {};
  59204. float timestampPeriod = {};
  59205. uint32_t maxClipDistances = {};
  59206. uint32_t maxCullDistances = {};
  59207. uint32_t maxCombinedClipAndCullDistances = {};
  59208. uint32_t discreteQueuePriorities = {};
  59209. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> pointSizeRange = {};
  59210. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> lineWidthRange = {};
  59211. float pointSizeGranularity = {};
  59212. float lineWidthGranularity = {};
  59213. VULKAN_HPP_NAMESPACE::Bool32 strictLines = {};
  59214. VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {};
  59215. VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {};
  59216. VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {};
  59217. VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {};
  59218. };
  59219. struct PhysicalDeviceLineRasterizationFeaturesEXT
  59220. {
  59221. using NativeType = VkPhysicalDeviceLineRasterizationFeaturesEXT;
  59222. static const bool allowDuplicate = false;
  59223. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
  59224. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59225. VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ = {},
  59226. VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ = {},
  59227. VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ = {},
  59228. VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ = {},
  59229. VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ = {},
  59230. VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ = {},
  59231. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59232. : pNext( pNext_ )
  59233. , rectangularLines( rectangularLines_ )
  59234. , bresenhamLines( bresenhamLines_ )
  59235. , smoothLines( smoothLines_ )
  59236. , stippledRectangularLines( stippledRectangularLines_ )
  59237. , stippledBresenhamLines( stippledBresenhamLines_ )
  59238. , stippledSmoothLines( stippledSmoothLines_ )
  59239. {
  59240. }
  59241. VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59242. PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  59243. : PhysicalDeviceLineRasterizationFeaturesEXT( *reinterpret_cast<PhysicalDeviceLineRasterizationFeaturesEXT const *>( &rhs ) )
  59244. {
  59245. }
  59246. PhysicalDeviceLineRasterizationFeaturesEXT & operator=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59247. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59248. PhysicalDeviceLineRasterizationFeaturesEXT & operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  59249. {
  59250. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT const *>( &rhs );
  59251. return *this;
  59252. }
  59253. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  59254. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  59255. {
  59256. pNext = pNext_;
  59257. return *this;
  59258. }
  59259. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
  59260. setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT
  59261. {
  59262. rectangularLines = rectangularLines_;
  59263. return *this;
  59264. }
  59265. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT
  59266. {
  59267. bresenhamLines = bresenhamLines_;
  59268. return *this;
  59269. }
  59270. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT
  59271. {
  59272. smoothLines = smoothLines_;
  59273. return *this;
  59274. }
  59275. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
  59276. setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT
  59277. {
  59278. stippledRectangularLines = stippledRectangularLines_;
  59279. return *this;
  59280. }
  59281. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
  59282. setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT
  59283. {
  59284. stippledBresenhamLines = stippledBresenhamLines_;
  59285. return *this;
  59286. }
  59287. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT &
  59288. setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT
  59289. {
  59290. stippledSmoothLines = stippledSmoothLines_;
  59291. return *this;
  59292. }
  59293. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  59294. operator VkPhysicalDeviceLineRasterizationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  59295. {
  59296. return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT *>( this );
  59297. }
  59298. operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  59299. {
  59300. return *reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT *>( this );
  59301. }
  59302. #if defined( VULKAN_HPP_USE_REFLECT )
  59303. # if 14 <= VULKAN_HPP_CPP_VERSION
  59304. auto
  59305. # else
  59306. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  59307. void * const &,
  59308. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59309. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59310. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59311. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59312. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59313. VULKAN_HPP_NAMESPACE::Bool32 const &>
  59314. # endif
  59315. reflect() const VULKAN_HPP_NOEXCEPT
  59316. {
  59317. return std::tie( sType, pNext, rectangularLines, bresenhamLines, smoothLines, stippledRectangularLines, stippledBresenhamLines, stippledSmoothLines );
  59318. }
  59319. #endif
  59320. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59321. auto operator<=>( PhysicalDeviceLineRasterizationFeaturesEXT const & ) const = default;
  59322. #else
  59323. bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  59324. {
  59325. # if defined( VULKAN_HPP_USE_REFLECT )
  59326. return this->reflect() == rhs.reflect();
  59327. # else
  59328. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rectangularLines == rhs.rectangularLines ) && ( bresenhamLines == rhs.bresenhamLines ) &&
  59329. ( smoothLines == rhs.smoothLines ) && ( stippledRectangularLines == rhs.stippledRectangularLines ) &&
  59330. ( stippledBresenhamLines == rhs.stippledBresenhamLines ) && ( stippledSmoothLines == rhs.stippledSmoothLines );
  59331. # endif
  59332. }
  59333. bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  59334. {
  59335. return !operator==( rhs );
  59336. }
  59337. #endif
  59338. public:
  59339. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT;
  59340. void * pNext = {};
  59341. VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {};
  59342. VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {};
  59343. VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {};
  59344. VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {};
  59345. VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {};
  59346. VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {};
  59347. };
  59348. template <>
  59349. struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT>
  59350. {
  59351. using Type = PhysicalDeviceLineRasterizationFeaturesEXT;
  59352. };
  59353. struct PhysicalDeviceLineRasterizationPropertiesEXT
  59354. {
  59355. using NativeType = VkPhysicalDeviceLineRasterizationPropertiesEXT;
  59356. static const bool allowDuplicate = false;
  59357. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
  59358. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59359. VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( uint32_t lineSubPixelPrecisionBits_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59360. : pNext( pNext_ )
  59361. , lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ )
  59362. {
  59363. }
  59364. VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59365. PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  59366. : PhysicalDeviceLineRasterizationPropertiesEXT( *reinterpret_cast<PhysicalDeviceLineRasterizationPropertiesEXT const *>( &rhs ) )
  59367. {
  59368. }
  59369. PhysicalDeviceLineRasterizationPropertiesEXT & operator=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59370. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59371. PhysicalDeviceLineRasterizationPropertiesEXT & operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  59372. {
  59373. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT const *>( &rhs );
  59374. return *this;
  59375. }
  59376. operator VkPhysicalDeviceLineRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  59377. {
  59378. return *reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT *>( this );
  59379. }
  59380. operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  59381. {
  59382. return *reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT *>( this );
  59383. }
  59384. #if defined( VULKAN_HPP_USE_REFLECT )
  59385. # if 14 <= VULKAN_HPP_CPP_VERSION
  59386. auto
  59387. # else
  59388. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  59389. # endif
  59390. reflect() const VULKAN_HPP_NOEXCEPT
  59391. {
  59392. return std::tie( sType, pNext, lineSubPixelPrecisionBits );
  59393. }
  59394. #endif
  59395. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59396. auto operator<=>( PhysicalDeviceLineRasterizationPropertiesEXT const & ) const = default;
  59397. #else
  59398. bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  59399. {
  59400. # if defined( VULKAN_HPP_USE_REFLECT )
  59401. return this->reflect() == rhs.reflect();
  59402. # else
  59403. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits );
  59404. # endif
  59405. }
  59406. bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  59407. {
  59408. return !operator==( rhs );
  59409. }
  59410. #endif
  59411. public:
  59412. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT;
  59413. void * pNext = {};
  59414. uint32_t lineSubPixelPrecisionBits = {};
  59415. };
  59416. template <>
  59417. struct CppType<StructureType, StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT>
  59418. {
  59419. using Type = PhysicalDeviceLineRasterizationPropertiesEXT;
  59420. };
  59421. struct PhysicalDeviceLinearColorAttachmentFeaturesNV
  59422. {
  59423. using NativeType = VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
  59424. static const bool allowDuplicate = false;
  59425. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLinearColorAttachmentFeaturesNV;
  59426. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59427. VULKAN_HPP_CONSTEXPR PhysicalDeviceLinearColorAttachmentFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment_ = {},
  59428. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59429. : pNext( pNext_ )
  59430. , linearColorAttachment( linearColorAttachment_ )
  59431. {
  59432. }
  59433. VULKAN_HPP_CONSTEXPR
  59434. PhysicalDeviceLinearColorAttachmentFeaturesNV( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59435. PhysicalDeviceLinearColorAttachmentFeaturesNV( VkPhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  59436. : PhysicalDeviceLinearColorAttachmentFeaturesNV( *reinterpret_cast<PhysicalDeviceLinearColorAttachmentFeaturesNV const *>( &rhs ) )
  59437. {
  59438. }
  59439. PhysicalDeviceLinearColorAttachmentFeaturesNV & operator=( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59440. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59441. PhysicalDeviceLinearColorAttachmentFeaturesNV & operator=( VkPhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  59442. {
  59443. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV const *>( &rhs );
  59444. return *this;
  59445. }
  59446. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  59447. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLinearColorAttachmentFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  59448. {
  59449. pNext = pNext_;
  59450. return *this;
  59451. }
  59452. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLinearColorAttachmentFeaturesNV &
  59453. setLinearColorAttachment( VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment_ ) VULKAN_HPP_NOEXCEPT
  59454. {
  59455. linearColorAttachment = linearColorAttachment_;
  59456. return *this;
  59457. }
  59458. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  59459. operator VkPhysicalDeviceLinearColorAttachmentFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  59460. {
  59461. return *reinterpret_cast<const VkPhysicalDeviceLinearColorAttachmentFeaturesNV *>( this );
  59462. }
  59463. operator VkPhysicalDeviceLinearColorAttachmentFeaturesNV &() VULKAN_HPP_NOEXCEPT
  59464. {
  59465. return *reinterpret_cast<VkPhysicalDeviceLinearColorAttachmentFeaturesNV *>( this );
  59466. }
  59467. #if defined( VULKAN_HPP_USE_REFLECT )
  59468. # if 14 <= VULKAN_HPP_CPP_VERSION
  59469. auto
  59470. # else
  59471. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  59472. # endif
  59473. reflect() const VULKAN_HPP_NOEXCEPT
  59474. {
  59475. return std::tie( sType, pNext, linearColorAttachment );
  59476. }
  59477. #endif
  59478. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59479. auto operator<=>( PhysicalDeviceLinearColorAttachmentFeaturesNV const & ) const = default;
  59480. #else
  59481. bool operator==( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  59482. {
  59483. # if defined( VULKAN_HPP_USE_REFLECT )
  59484. return this->reflect() == rhs.reflect();
  59485. # else
  59486. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( linearColorAttachment == rhs.linearColorAttachment );
  59487. # endif
  59488. }
  59489. bool operator!=( PhysicalDeviceLinearColorAttachmentFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  59490. {
  59491. return !operator==( rhs );
  59492. }
  59493. #endif
  59494. public:
  59495. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLinearColorAttachmentFeaturesNV;
  59496. void * pNext = {};
  59497. VULKAN_HPP_NAMESPACE::Bool32 linearColorAttachment = {};
  59498. };
  59499. template <>
  59500. struct CppType<StructureType, StructureType::ePhysicalDeviceLinearColorAttachmentFeaturesNV>
  59501. {
  59502. using Type = PhysicalDeviceLinearColorAttachmentFeaturesNV;
  59503. };
  59504. struct PhysicalDeviceMaintenance3Properties
  59505. {
  59506. using NativeType = VkPhysicalDeviceMaintenance3Properties;
  59507. static const bool allowDuplicate = false;
  59508. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance3Properties;
  59509. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59510. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( uint32_t maxPerSetDescriptors_ = {},
  59511. VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {},
  59512. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59513. : pNext( pNext_ )
  59514. , maxPerSetDescriptors( maxPerSetDescriptors_ )
  59515. , maxMemoryAllocationSize( maxMemoryAllocationSize_ )
  59516. {
  59517. }
  59518. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59519. PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  59520. : PhysicalDeviceMaintenance3Properties( *reinterpret_cast<PhysicalDeviceMaintenance3Properties const *>( &rhs ) )
  59521. {
  59522. }
  59523. PhysicalDeviceMaintenance3Properties & operator=( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59524. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59525. PhysicalDeviceMaintenance3Properties & operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  59526. {
  59527. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties const *>( &rhs );
  59528. return *this;
  59529. }
  59530. operator VkPhysicalDeviceMaintenance3Properties const &() const VULKAN_HPP_NOEXCEPT
  59531. {
  59532. return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties *>( this );
  59533. }
  59534. operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT
  59535. {
  59536. return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties *>( this );
  59537. }
  59538. #if defined( VULKAN_HPP_USE_REFLECT )
  59539. # if 14 <= VULKAN_HPP_CPP_VERSION
  59540. auto
  59541. # else
  59542. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  59543. # endif
  59544. reflect() const VULKAN_HPP_NOEXCEPT
  59545. {
  59546. return std::tie( sType, pNext, maxPerSetDescriptors, maxMemoryAllocationSize );
  59547. }
  59548. #endif
  59549. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59550. auto operator<=>( PhysicalDeviceMaintenance3Properties const & ) const = default;
  59551. #else
  59552. bool operator==( PhysicalDeviceMaintenance3Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  59553. {
  59554. # if defined( VULKAN_HPP_USE_REFLECT )
  59555. return this->reflect() == rhs.reflect();
  59556. # else
  59557. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) &&
  59558. ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
  59559. # endif
  59560. }
  59561. bool operator!=( PhysicalDeviceMaintenance3Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  59562. {
  59563. return !operator==( rhs );
  59564. }
  59565. #endif
  59566. public:
  59567. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties;
  59568. void * pNext = {};
  59569. uint32_t maxPerSetDescriptors = {};
  59570. VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
  59571. };
  59572. template <>
  59573. struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance3Properties>
  59574. {
  59575. using Type = PhysicalDeviceMaintenance3Properties;
  59576. };
  59577. using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
  59578. struct PhysicalDeviceMaintenance4Features
  59579. {
  59580. using NativeType = VkPhysicalDeviceMaintenance4Features;
  59581. static const bool allowDuplicate = false;
  59582. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance4Features;
  59583. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59584. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Features( VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59585. : pNext( pNext_ )
  59586. , maintenance4( maintenance4_ )
  59587. {
  59588. }
  59589. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Features( PhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59590. PhysicalDeviceMaintenance4Features( VkPhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT
  59591. : PhysicalDeviceMaintenance4Features( *reinterpret_cast<PhysicalDeviceMaintenance4Features const *>( &rhs ) )
  59592. {
  59593. }
  59594. PhysicalDeviceMaintenance4Features & operator=( PhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59595. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59596. PhysicalDeviceMaintenance4Features & operator=( VkPhysicalDeviceMaintenance4Features const & rhs ) VULKAN_HPP_NOEXCEPT
  59597. {
  59598. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features const *>( &rhs );
  59599. return *this;
  59600. }
  59601. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  59602. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance4Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  59603. {
  59604. pNext = pNext_;
  59605. return *this;
  59606. }
  59607. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance4Features & setMaintenance4( VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ ) VULKAN_HPP_NOEXCEPT
  59608. {
  59609. maintenance4 = maintenance4_;
  59610. return *this;
  59611. }
  59612. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  59613. operator VkPhysicalDeviceMaintenance4Features const &() const VULKAN_HPP_NOEXCEPT
  59614. {
  59615. return *reinterpret_cast<const VkPhysicalDeviceMaintenance4Features *>( this );
  59616. }
  59617. operator VkPhysicalDeviceMaintenance4Features &() VULKAN_HPP_NOEXCEPT
  59618. {
  59619. return *reinterpret_cast<VkPhysicalDeviceMaintenance4Features *>( this );
  59620. }
  59621. #if defined( VULKAN_HPP_USE_REFLECT )
  59622. # if 14 <= VULKAN_HPP_CPP_VERSION
  59623. auto
  59624. # else
  59625. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  59626. # endif
  59627. reflect() const VULKAN_HPP_NOEXCEPT
  59628. {
  59629. return std::tie( sType, pNext, maintenance4 );
  59630. }
  59631. #endif
  59632. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59633. auto operator<=>( PhysicalDeviceMaintenance4Features const & ) const = default;
  59634. #else
  59635. bool operator==( PhysicalDeviceMaintenance4Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  59636. {
  59637. # if defined( VULKAN_HPP_USE_REFLECT )
  59638. return this->reflect() == rhs.reflect();
  59639. # else
  59640. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maintenance4 == rhs.maintenance4 );
  59641. # endif
  59642. }
  59643. bool operator!=( PhysicalDeviceMaintenance4Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  59644. {
  59645. return !operator==( rhs );
  59646. }
  59647. #endif
  59648. public:
  59649. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance4Features;
  59650. void * pNext = {};
  59651. VULKAN_HPP_NAMESPACE::Bool32 maintenance4 = {};
  59652. };
  59653. template <>
  59654. struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance4Features>
  59655. {
  59656. using Type = PhysicalDeviceMaintenance4Features;
  59657. };
  59658. using PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features;
  59659. struct PhysicalDeviceMaintenance4Properties
  59660. {
  59661. using NativeType = VkPhysicalDeviceMaintenance4Properties;
  59662. static const bool allowDuplicate = false;
  59663. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance4Properties;
  59664. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59665. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Properties( VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize_ = {},
  59666. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59667. : pNext( pNext_ )
  59668. , maxBufferSize( maxBufferSize_ )
  59669. {
  59670. }
  59671. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance4Properties( PhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59672. PhysicalDeviceMaintenance4Properties( VkPhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  59673. : PhysicalDeviceMaintenance4Properties( *reinterpret_cast<PhysicalDeviceMaintenance4Properties const *>( &rhs ) )
  59674. {
  59675. }
  59676. PhysicalDeviceMaintenance4Properties & operator=( PhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59677. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59678. PhysicalDeviceMaintenance4Properties & operator=( VkPhysicalDeviceMaintenance4Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  59679. {
  59680. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties const *>( &rhs );
  59681. return *this;
  59682. }
  59683. operator VkPhysicalDeviceMaintenance4Properties const &() const VULKAN_HPP_NOEXCEPT
  59684. {
  59685. return *reinterpret_cast<const VkPhysicalDeviceMaintenance4Properties *>( this );
  59686. }
  59687. operator VkPhysicalDeviceMaintenance4Properties &() VULKAN_HPP_NOEXCEPT
  59688. {
  59689. return *reinterpret_cast<VkPhysicalDeviceMaintenance4Properties *>( this );
  59690. }
  59691. #if defined( VULKAN_HPP_USE_REFLECT )
  59692. # if 14 <= VULKAN_HPP_CPP_VERSION
  59693. auto
  59694. # else
  59695. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  59696. # endif
  59697. reflect() const VULKAN_HPP_NOEXCEPT
  59698. {
  59699. return std::tie( sType, pNext, maxBufferSize );
  59700. }
  59701. #endif
  59702. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59703. auto operator<=>( PhysicalDeviceMaintenance4Properties const & ) const = default;
  59704. #else
  59705. bool operator==( PhysicalDeviceMaintenance4Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  59706. {
  59707. # if defined( VULKAN_HPP_USE_REFLECT )
  59708. return this->reflect() == rhs.reflect();
  59709. # else
  59710. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxBufferSize == rhs.maxBufferSize );
  59711. # endif
  59712. }
  59713. bool operator!=( PhysicalDeviceMaintenance4Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  59714. {
  59715. return !operator==( rhs );
  59716. }
  59717. #endif
  59718. public:
  59719. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance4Properties;
  59720. void * pNext = {};
  59721. VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize = {};
  59722. };
  59723. template <>
  59724. struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance4Properties>
  59725. {
  59726. using Type = PhysicalDeviceMaintenance4Properties;
  59727. };
  59728. using PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties;
  59729. struct PhysicalDeviceMaintenance5FeaturesKHR
  59730. {
  59731. using NativeType = VkPhysicalDeviceMaintenance5FeaturesKHR;
  59732. static const bool allowDuplicate = false;
  59733. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance5FeaturesKHR;
  59734. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59735. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 maintenance5_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59736. : pNext( pNext_ )
  59737. , maintenance5( maintenance5_ )
  59738. {
  59739. }
  59740. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5FeaturesKHR( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59741. PhysicalDeviceMaintenance5FeaturesKHR( VkPhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  59742. : PhysicalDeviceMaintenance5FeaturesKHR( *reinterpret_cast<PhysicalDeviceMaintenance5FeaturesKHR const *>( &rhs ) )
  59743. {
  59744. }
  59745. PhysicalDeviceMaintenance5FeaturesKHR & operator=( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59746. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59747. PhysicalDeviceMaintenance5FeaturesKHR & operator=( VkPhysicalDeviceMaintenance5FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  59748. {
  59749. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR const *>( &rhs );
  59750. return *this;
  59751. }
  59752. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  59753. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance5FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  59754. {
  59755. pNext = pNext_;
  59756. return *this;
  59757. }
  59758. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance5FeaturesKHR & setMaintenance5( VULKAN_HPP_NAMESPACE::Bool32 maintenance5_ ) VULKAN_HPP_NOEXCEPT
  59759. {
  59760. maintenance5 = maintenance5_;
  59761. return *this;
  59762. }
  59763. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  59764. operator VkPhysicalDeviceMaintenance5FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  59765. {
  59766. return *reinterpret_cast<const VkPhysicalDeviceMaintenance5FeaturesKHR *>( this );
  59767. }
  59768. operator VkPhysicalDeviceMaintenance5FeaturesKHR &() VULKAN_HPP_NOEXCEPT
  59769. {
  59770. return *reinterpret_cast<VkPhysicalDeviceMaintenance5FeaturesKHR *>( this );
  59771. }
  59772. #if defined( VULKAN_HPP_USE_REFLECT )
  59773. # if 14 <= VULKAN_HPP_CPP_VERSION
  59774. auto
  59775. # else
  59776. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  59777. # endif
  59778. reflect() const VULKAN_HPP_NOEXCEPT
  59779. {
  59780. return std::tie( sType, pNext, maintenance5 );
  59781. }
  59782. #endif
  59783. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59784. auto operator<=>( PhysicalDeviceMaintenance5FeaturesKHR const & ) const = default;
  59785. #else
  59786. bool operator==( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  59787. {
  59788. # if defined( VULKAN_HPP_USE_REFLECT )
  59789. return this->reflect() == rhs.reflect();
  59790. # else
  59791. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maintenance5 == rhs.maintenance5 );
  59792. # endif
  59793. }
  59794. bool operator!=( PhysicalDeviceMaintenance5FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  59795. {
  59796. return !operator==( rhs );
  59797. }
  59798. #endif
  59799. public:
  59800. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance5FeaturesKHR;
  59801. void * pNext = {};
  59802. VULKAN_HPP_NAMESPACE::Bool32 maintenance5 = {};
  59803. };
  59804. template <>
  59805. struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance5FeaturesKHR>
  59806. {
  59807. using Type = PhysicalDeviceMaintenance5FeaturesKHR;
  59808. };
  59809. struct PhysicalDeviceMaintenance5PropertiesKHR
  59810. {
  59811. using NativeType = VkPhysicalDeviceMaintenance5PropertiesKHR;
  59812. static const bool allowDuplicate = false;
  59813. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance5PropertiesKHR;
  59814. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59815. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5PropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 earlyFragmentMultisampleCoverageAfterSampleCounting_ = {},
  59816. VULKAN_HPP_NAMESPACE::Bool32 earlyFragmentSampleMaskTestBeforeSampleCounting_ = {},
  59817. VULKAN_HPP_NAMESPACE::Bool32 depthStencilSwizzleOneSupport_ = {},
  59818. VULKAN_HPP_NAMESPACE::Bool32 polygonModePointSize_ = {},
  59819. VULKAN_HPP_NAMESPACE::Bool32 nonStrictSinglePixelWideLinesUseParallelogram_ = {},
  59820. VULKAN_HPP_NAMESPACE::Bool32 nonStrictWideLinesUseParallelogram_ = {},
  59821. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59822. : pNext( pNext_ )
  59823. , earlyFragmentMultisampleCoverageAfterSampleCounting( earlyFragmentMultisampleCoverageAfterSampleCounting_ )
  59824. , earlyFragmentSampleMaskTestBeforeSampleCounting( earlyFragmentSampleMaskTestBeforeSampleCounting_ )
  59825. , depthStencilSwizzleOneSupport( depthStencilSwizzleOneSupport_ )
  59826. , polygonModePointSize( polygonModePointSize_ )
  59827. , nonStrictSinglePixelWideLinesUseParallelogram( nonStrictSinglePixelWideLinesUseParallelogram_ )
  59828. , nonStrictWideLinesUseParallelogram( nonStrictWideLinesUseParallelogram_ )
  59829. {
  59830. }
  59831. VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance5PropertiesKHR( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59832. PhysicalDeviceMaintenance5PropertiesKHR( VkPhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  59833. : PhysicalDeviceMaintenance5PropertiesKHR( *reinterpret_cast<PhysicalDeviceMaintenance5PropertiesKHR const *>( &rhs ) )
  59834. {
  59835. }
  59836. PhysicalDeviceMaintenance5PropertiesKHR & operator=( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59837. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59838. PhysicalDeviceMaintenance5PropertiesKHR & operator=( VkPhysicalDeviceMaintenance5PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  59839. {
  59840. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR const *>( &rhs );
  59841. return *this;
  59842. }
  59843. operator VkPhysicalDeviceMaintenance5PropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  59844. {
  59845. return *reinterpret_cast<const VkPhysicalDeviceMaintenance5PropertiesKHR *>( this );
  59846. }
  59847. operator VkPhysicalDeviceMaintenance5PropertiesKHR &() VULKAN_HPP_NOEXCEPT
  59848. {
  59849. return *reinterpret_cast<VkPhysicalDeviceMaintenance5PropertiesKHR *>( this );
  59850. }
  59851. #if defined( VULKAN_HPP_USE_REFLECT )
  59852. # if 14 <= VULKAN_HPP_CPP_VERSION
  59853. auto
  59854. # else
  59855. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  59856. void * const &,
  59857. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59858. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59859. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59860. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59861. VULKAN_HPP_NAMESPACE::Bool32 const &,
  59862. VULKAN_HPP_NAMESPACE::Bool32 const &>
  59863. # endif
  59864. reflect() const VULKAN_HPP_NOEXCEPT
  59865. {
  59866. return std::tie( sType,
  59867. pNext,
  59868. earlyFragmentMultisampleCoverageAfterSampleCounting,
  59869. earlyFragmentSampleMaskTestBeforeSampleCounting,
  59870. depthStencilSwizzleOneSupport,
  59871. polygonModePointSize,
  59872. nonStrictSinglePixelWideLinesUseParallelogram,
  59873. nonStrictWideLinesUseParallelogram );
  59874. }
  59875. #endif
  59876. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59877. auto operator<=>( PhysicalDeviceMaintenance5PropertiesKHR const & ) const = default;
  59878. #else
  59879. bool operator==( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  59880. {
  59881. # if defined( VULKAN_HPP_USE_REFLECT )
  59882. return this->reflect() == rhs.reflect();
  59883. # else
  59884. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
  59885. ( earlyFragmentMultisampleCoverageAfterSampleCounting == rhs.earlyFragmentMultisampleCoverageAfterSampleCounting ) &&
  59886. ( earlyFragmentSampleMaskTestBeforeSampleCounting == rhs.earlyFragmentSampleMaskTestBeforeSampleCounting ) &&
  59887. ( depthStencilSwizzleOneSupport == rhs.depthStencilSwizzleOneSupport ) && ( polygonModePointSize == rhs.polygonModePointSize ) &&
  59888. ( nonStrictSinglePixelWideLinesUseParallelogram == rhs.nonStrictSinglePixelWideLinesUseParallelogram ) &&
  59889. ( nonStrictWideLinesUseParallelogram == rhs.nonStrictWideLinesUseParallelogram );
  59890. # endif
  59891. }
  59892. bool operator!=( PhysicalDeviceMaintenance5PropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  59893. {
  59894. return !operator==( rhs );
  59895. }
  59896. #endif
  59897. public:
  59898. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance5PropertiesKHR;
  59899. void * pNext = {};
  59900. VULKAN_HPP_NAMESPACE::Bool32 earlyFragmentMultisampleCoverageAfterSampleCounting = {};
  59901. VULKAN_HPP_NAMESPACE::Bool32 earlyFragmentSampleMaskTestBeforeSampleCounting = {};
  59902. VULKAN_HPP_NAMESPACE::Bool32 depthStencilSwizzleOneSupport = {};
  59903. VULKAN_HPP_NAMESPACE::Bool32 polygonModePointSize = {};
  59904. VULKAN_HPP_NAMESPACE::Bool32 nonStrictSinglePixelWideLinesUseParallelogram = {};
  59905. VULKAN_HPP_NAMESPACE::Bool32 nonStrictWideLinesUseParallelogram = {};
  59906. };
  59907. template <>
  59908. struct CppType<StructureType, StructureType::ePhysicalDeviceMaintenance5PropertiesKHR>
  59909. {
  59910. using Type = PhysicalDeviceMaintenance5PropertiesKHR;
  59911. };
  59912. struct PhysicalDeviceMemoryBudgetPropertiesEXT
  59913. {
  59914. using NativeType = VkPhysicalDeviceMemoryBudgetPropertiesEXT;
  59915. static const bool allowDuplicate = false;
  59916. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
  59917. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59918. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( std::array<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const & heapBudget_ = {},
  59919. std::array<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const & heapUsage_ = {},
  59920. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59921. : pNext( pNext_ )
  59922. , heapBudget( heapBudget_ )
  59923. , heapUsage( heapUsage_ )
  59924. {
  59925. }
  59926. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59927. PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  59928. : PhysicalDeviceMemoryBudgetPropertiesEXT( *reinterpret_cast<PhysicalDeviceMemoryBudgetPropertiesEXT const *>( &rhs ) )
  59929. {
  59930. }
  59931. PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  59932. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  59933. PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  59934. {
  59935. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT const *>( &rhs );
  59936. return *this;
  59937. }
  59938. operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  59939. {
  59940. return *reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT *>( this );
  59941. }
  59942. operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  59943. {
  59944. return *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT *>( this );
  59945. }
  59946. #if defined( VULKAN_HPP_USE_REFLECT )
  59947. # if 14 <= VULKAN_HPP_CPP_VERSION
  59948. auto
  59949. # else
  59950. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  59951. void * const &,
  59952. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const &,
  59953. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> const &>
  59954. # endif
  59955. reflect() const VULKAN_HPP_NOEXCEPT
  59956. {
  59957. return std::tie( sType, pNext, heapBudget, heapUsage );
  59958. }
  59959. #endif
  59960. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  59961. auto operator<=>( PhysicalDeviceMemoryBudgetPropertiesEXT const & ) const = default;
  59962. #else
  59963. bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  59964. {
  59965. # if defined( VULKAN_HPP_USE_REFLECT )
  59966. return this->reflect() == rhs.reflect();
  59967. # else
  59968. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( heapBudget == rhs.heapBudget ) && ( heapUsage == rhs.heapUsage );
  59969. # endif
  59970. }
  59971. bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  59972. {
  59973. return !operator==( rhs );
  59974. }
  59975. #endif
  59976. public:
  59977. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
  59978. void * pNext = {};
  59979. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapBudget = {};
  59980. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::DeviceSize, VK_MAX_MEMORY_HEAPS> heapUsage = {};
  59981. };
  59982. template <>
  59983. struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT>
  59984. {
  59985. using Type = PhysicalDeviceMemoryBudgetPropertiesEXT;
  59986. };
  59987. struct PhysicalDeviceMemoryDecompressionFeaturesNV
  59988. {
  59989. using NativeType = VkPhysicalDeviceMemoryDecompressionFeaturesNV;
  59990. static const bool allowDuplicate = false;
  59991. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryDecompressionFeaturesNV;
  59992. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  59993. VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryDecompressionFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 memoryDecompression_ = {},
  59994. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  59995. : pNext( pNext_ )
  59996. , memoryDecompression( memoryDecompression_ )
  59997. {
  59998. }
  59999. VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryDecompressionFeaturesNV( PhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60000. PhysicalDeviceMemoryDecompressionFeaturesNV( VkPhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60001. : PhysicalDeviceMemoryDecompressionFeaturesNV( *reinterpret_cast<PhysicalDeviceMemoryDecompressionFeaturesNV const *>( &rhs ) )
  60002. {
  60003. }
  60004. PhysicalDeviceMemoryDecompressionFeaturesNV & operator=( PhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60005. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60006. PhysicalDeviceMemoryDecompressionFeaturesNV & operator=( VkPhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60007. {
  60008. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV const *>( &rhs );
  60009. return *this;
  60010. }
  60011. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60012. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryDecompressionFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60013. {
  60014. pNext = pNext_;
  60015. return *this;
  60016. }
  60017. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryDecompressionFeaturesNV &
  60018. setMemoryDecompression( VULKAN_HPP_NAMESPACE::Bool32 memoryDecompression_ ) VULKAN_HPP_NOEXCEPT
  60019. {
  60020. memoryDecompression = memoryDecompression_;
  60021. return *this;
  60022. }
  60023. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60024. operator VkPhysicalDeviceMemoryDecompressionFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  60025. {
  60026. return *reinterpret_cast<const VkPhysicalDeviceMemoryDecompressionFeaturesNV *>( this );
  60027. }
  60028. operator VkPhysicalDeviceMemoryDecompressionFeaturesNV &() VULKAN_HPP_NOEXCEPT
  60029. {
  60030. return *reinterpret_cast<VkPhysicalDeviceMemoryDecompressionFeaturesNV *>( this );
  60031. }
  60032. #if defined( VULKAN_HPP_USE_REFLECT )
  60033. # if 14 <= VULKAN_HPP_CPP_VERSION
  60034. auto
  60035. # else
  60036. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  60037. # endif
  60038. reflect() const VULKAN_HPP_NOEXCEPT
  60039. {
  60040. return std::tie( sType, pNext, memoryDecompression );
  60041. }
  60042. #endif
  60043. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60044. auto operator<=>( PhysicalDeviceMemoryDecompressionFeaturesNV const & ) const = default;
  60045. #else
  60046. bool operator==( PhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  60047. {
  60048. # if defined( VULKAN_HPP_USE_REFLECT )
  60049. return this->reflect() == rhs.reflect();
  60050. # else
  60051. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryDecompression == rhs.memoryDecompression );
  60052. # endif
  60053. }
  60054. bool operator!=( PhysicalDeviceMemoryDecompressionFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  60055. {
  60056. return !operator==( rhs );
  60057. }
  60058. #endif
  60059. public:
  60060. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryDecompressionFeaturesNV;
  60061. void * pNext = {};
  60062. VULKAN_HPP_NAMESPACE::Bool32 memoryDecompression = {};
  60063. };
  60064. template <>
  60065. struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryDecompressionFeaturesNV>
  60066. {
  60067. using Type = PhysicalDeviceMemoryDecompressionFeaturesNV;
  60068. };
  60069. struct PhysicalDeviceMemoryDecompressionPropertiesNV
  60070. {
  60071. using NativeType = VkPhysicalDeviceMemoryDecompressionPropertiesNV;
  60072. static const bool allowDuplicate = false;
  60073. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryDecompressionPropertiesNV;
  60074. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60075. VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryDecompressionPropertiesNV( VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethods_ = {},
  60076. uint64_t maxDecompressionIndirectCount_ = {},
  60077. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60078. : pNext( pNext_ )
  60079. , decompressionMethods( decompressionMethods_ )
  60080. , maxDecompressionIndirectCount( maxDecompressionIndirectCount_ )
  60081. {
  60082. }
  60083. VULKAN_HPP_CONSTEXPR
  60084. PhysicalDeviceMemoryDecompressionPropertiesNV( PhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60085. PhysicalDeviceMemoryDecompressionPropertiesNV( VkPhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60086. : PhysicalDeviceMemoryDecompressionPropertiesNV( *reinterpret_cast<PhysicalDeviceMemoryDecompressionPropertiesNV const *>( &rhs ) )
  60087. {
  60088. }
  60089. PhysicalDeviceMemoryDecompressionPropertiesNV & operator=( PhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60090. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60091. PhysicalDeviceMemoryDecompressionPropertiesNV & operator=( VkPhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60092. {
  60093. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV const *>( &rhs );
  60094. return *this;
  60095. }
  60096. operator VkPhysicalDeviceMemoryDecompressionPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  60097. {
  60098. return *reinterpret_cast<const VkPhysicalDeviceMemoryDecompressionPropertiesNV *>( this );
  60099. }
  60100. operator VkPhysicalDeviceMemoryDecompressionPropertiesNV &() VULKAN_HPP_NOEXCEPT
  60101. {
  60102. return *reinterpret_cast<VkPhysicalDeviceMemoryDecompressionPropertiesNV *>( this );
  60103. }
  60104. #if defined( VULKAN_HPP_USE_REFLECT )
  60105. # if 14 <= VULKAN_HPP_CPP_VERSION
  60106. auto
  60107. # else
  60108. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV const &, uint64_t const &>
  60109. # endif
  60110. reflect() const VULKAN_HPP_NOEXCEPT
  60111. {
  60112. return std::tie( sType, pNext, decompressionMethods, maxDecompressionIndirectCount );
  60113. }
  60114. #endif
  60115. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60116. auto operator<=>( PhysicalDeviceMemoryDecompressionPropertiesNV const & ) const = default;
  60117. #else
  60118. bool operator==( PhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  60119. {
  60120. # if defined( VULKAN_HPP_USE_REFLECT )
  60121. return this->reflect() == rhs.reflect();
  60122. # else
  60123. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( decompressionMethods == rhs.decompressionMethods ) &&
  60124. ( maxDecompressionIndirectCount == rhs.maxDecompressionIndirectCount );
  60125. # endif
  60126. }
  60127. bool operator!=( PhysicalDeviceMemoryDecompressionPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  60128. {
  60129. return !operator==( rhs );
  60130. }
  60131. #endif
  60132. public:
  60133. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryDecompressionPropertiesNV;
  60134. void * pNext = {};
  60135. VULKAN_HPP_NAMESPACE::MemoryDecompressionMethodFlagsNV decompressionMethods = {};
  60136. uint64_t maxDecompressionIndirectCount = {};
  60137. };
  60138. template <>
  60139. struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryDecompressionPropertiesNV>
  60140. {
  60141. using Type = PhysicalDeviceMemoryDecompressionPropertiesNV;
  60142. };
  60143. struct PhysicalDeviceMemoryPriorityFeaturesEXT
  60144. {
  60145. using NativeType = VkPhysicalDeviceMemoryPriorityFeaturesEXT;
  60146. static const bool allowDuplicate = false;
  60147. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
  60148. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60149. VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {},
  60150. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60151. : pNext( pNext_ )
  60152. , memoryPriority( memoryPriority_ )
  60153. {
  60154. }
  60155. VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60156. PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60157. : PhysicalDeviceMemoryPriorityFeaturesEXT( *reinterpret_cast<PhysicalDeviceMemoryPriorityFeaturesEXT const *>( &rhs ) )
  60158. {
  60159. }
  60160. PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60161. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60162. PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60163. {
  60164. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT const *>( &rhs );
  60165. return *this;
  60166. }
  60167. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60168. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60169. {
  60170. pNext = pNext_;
  60171. return *this;
  60172. }
  60173. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT
  60174. {
  60175. memoryPriority = memoryPriority_;
  60176. return *this;
  60177. }
  60178. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60179. operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  60180. {
  60181. return *reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT *>( this );
  60182. }
  60183. operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  60184. {
  60185. return *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT *>( this );
  60186. }
  60187. #if defined( VULKAN_HPP_USE_REFLECT )
  60188. # if 14 <= VULKAN_HPP_CPP_VERSION
  60189. auto
  60190. # else
  60191. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  60192. # endif
  60193. reflect() const VULKAN_HPP_NOEXCEPT
  60194. {
  60195. return std::tie( sType, pNext, memoryPriority );
  60196. }
  60197. #endif
  60198. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60199. auto operator<=>( PhysicalDeviceMemoryPriorityFeaturesEXT const & ) const = default;
  60200. #else
  60201. bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60202. {
  60203. # if defined( VULKAN_HPP_USE_REFLECT )
  60204. return this->reflect() == rhs.reflect();
  60205. # else
  60206. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryPriority == rhs.memoryPriority );
  60207. # endif
  60208. }
  60209. bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60210. {
  60211. return !operator==( rhs );
  60212. }
  60213. #endif
  60214. public:
  60215. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
  60216. void * pNext = {};
  60217. VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {};
  60218. };
  60219. template <>
  60220. struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT>
  60221. {
  60222. using Type = PhysicalDeviceMemoryPriorityFeaturesEXT;
  60223. };
  60224. struct PhysicalDeviceMemoryProperties
  60225. {
  60226. using NativeType = VkPhysicalDeviceMemoryProperties;
  60227. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60228. VULKAN_HPP_CONSTEXPR_14
  60229. PhysicalDeviceMemoryProperties( uint32_t memoryTypeCount_ = {},
  60230. std::array<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> const & memoryTypes_ = {},
  60231. uint32_t memoryHeapCount_ = {},
  60232. std::array<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> const & memoryHeaps_ = {} ) VULKAN_HPP_NOEXCEPT
  60233. : memoryTypeCount( memoryTypeCount_ )
  60234. , memoryTypes( memoryTypes_ )
  60235. , memoryHeapCount( memoryHeapCount_ )
  60236. , memoryHeaps( memoryHeaps_ )
  60237. {
  60238. }
  60239. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60240. PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  60241. : PhysicalDeviceMemoryProperties( *reinterpret_cast<PhysicalDeviceMemoryProperties const *>( &rhs ) )
  60242. {
  60243. }
  60244. PhysicalDeviceMemoryProperties & operator=( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60245. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60246. PhysicalDeviceMemoryProperties & operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  60247. {
  60248. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const *>( &rhs );
  60249. return *this;
  60250. }
  60251. operator VkPhysicalDeviceMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
  60252. {
  60253. return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties *>( this );
  60254. }
  60255. operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT
  60256. {
  60257. return *reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( this );
  60258. }
  60259. #if defined( VULKAN_HPP_USE_REFLECT )
  60260. # if 14 <= VULKAN_HPP_CPP_VERSION
  60261. auto
  60262. # else
  60263. std::tuple<uint32_t const &,
  60264. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> const &,
  60265. uint32_t const &,
  60266. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> const &>
  60267. # endif
  60268. reflect() const VULKAN_HPP_NOEXCEPT
  60269. {
  60270. return std::tie( memoryTypeCount, memoryTypes, memoryHeapCount, memoryHeaps );
  60271. }
  60272. #endif
  60273. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60274. auto operator<=>( PhysicalDeviceMemoryProperties const & ) const = default;
  60275. #else
  60276. bool operator==( PhysicalDeviceMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  60277. {
  60278. # if defined( VULKAN_HPP_USE_REFLECT )
  60279. return this->reflect() == rhs.reflect();
  60280. # else
  60281. return ( memoryTypeCount == rhs.memoryTypeCount ) && ( memoryTypes == rhs.memoryTypes ) && ( memoryHeapCount == rhs.memoryHeapCount ) &&
  60282. ( memoryHeaps == rhs.memoryHeaps );
  60283. # endif
  60284. }
  60285. bool operator!=( PhysicalDeviceMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  60286. {
  60287. return !operator==( rhs );
  60288. }
  60289. #endif
  60290. public:
  60291. uint32_t memoryTypeCount = {};
  60292. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryType, VK_MAX_MEMORY_TYPES> memoryTypes = {};
  60293. uint32_t memoryHeapCount = {};
  60294. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::MemoryHeap, VK_MAX_MEMORY_HEAPS> memoryHeaps = {};
  60295. };
  60296. struct PhysicalDeviceMemoryProperties2
  60297. {
  60298. using NativeType = VkPhysicalDeviceMemoryProperties2;
  60299. static const bool allowDuplicate = false;
  60300. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryProperties2;
  60301. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60302. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {},
  60303. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60304. : pNext( pNext_ )
  60305. , memoryProperties( memoryProperties_ )
  60306. {
  60307. }
  60308. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60309. PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  60310. : PhysicalDeviceMemoryProperties2( *reinterpret_cast<PhysicalDeviceMemoryProperties2 const *>( &rhs ) )
  60311. {
  60312. }
  60313. PhysicalDeviceMemoryProperties2 & operator=( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60314. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60315. PhysicalDeviceMemoryProperties2 & operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  60316. {
  60317. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 const *>( &rhs );
  60318. return *this;
  60319. }
  60320. operator VkPhysicalDeviceMemoryProperties2 const &() const VULKAN_HPP_NOEXCEPT
  60321. {
  60322. return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2 *>( this );
  60323. }
  60324. operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT
  60325. {
  60326. return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( this );
  60327. }
  60328. #if defined( VULKAN_HPP_USE_REFLECT )
  60329. # if 14 <= VULKAN_HPP_CPP_VERSION
  60330. auto
  60331. # else
  60332. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const &>
  60333. # endif
  60334. reflect() const VULKAN_HPP_NOEXCEPT
  60335. {
  60336. return std::tie( sType, pNext, memoryProperties );
  60337. }
  60338. #endif
  60339. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60340. auto operator<=>( PhysicalDeviceMemoryProperties2 const & ) const = default;
  60341. #else
  60342. bool operator==( PhysicalDeviceMemoryProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  60343. {
  60344. # if defined( VULKAN_HPP_USE_REFLECT )
  60345. return this->reflect() == rhs.reflect();
  60346. # else
  60347. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryProperties == rhs.memoryProperties );
  60348. # endif
  60349. }
  60350. bool operator!=( PhysicalDeviceMemoryProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  60351. {
  60352. return !operator==( rhs );
  60353. }
  60354. #endif
  60355. public:
  60356. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2;
  60357. void * pNext = {};
  60358. VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {};
  60359. };
  60360. template <>
  60361. struct CppType<StructureType, StructureType::ePhysicalDeviceMemoryProperties2>
  60362. {
  60363. using Type = PhysicalDeviceMemoryProperties2;
  60364. };
  60365. using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
  60366. struct PhysicalDeviceMeshShaderFeaturesEXT
  60367. {
  60368. using NativeType = VkPhysicalDeviceMeshShaderFeaturesEXT;
  60369. static const bool allowDuplicate = false;
  60370. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesEXT;
  60371. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60372. VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {},
  60373. VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {},
  60374. VULKAN_HPP_NAMESPACE::Bool32 multiviewMeshShader_ = {},
  60375. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateMeshShader_ = {},
  60376. VULKAN_HPP_NAMESPACE::Bool32 meshShaderQueries_ = {},
  60377. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60378. : pNext( pNext_ )
  60379. , taskShader( taskShader_ )
  60380. , meshShader( meshShader_ )
  60381. , multiviewMeshShader( multiviewMeshShader_ )
  60382. , primitiveFragmentShadingRateMeshShader( primitiveFragmentShadingRateMeshShader_ )
  60383. , meshShaderQueries( meshShaderQueries_ )
  60384. {
  60385. }
  60386. VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesEXT( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60387. PhysicalDeviceMeshShaderFeaturesEXT( VkPhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60388. : PhysicalDeviceMeshShaderFeaturesEXT( *reinterpret_cast<PhysicalDeviceMeshShaderFeaturesEXT const *>( &rhs ) )
  60389. {
  60390. }
  60391. PhysicalDeviceMeshShaderFeaturesEXT & operator=( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60392. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60393. PhysicalDeviceMeshShaderFeaturesEXT & operator=( VkPhysicalDeviceMeshShaderFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60394. {
  60395. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT const *>( &rhs );
  60396. return *this;
  60397. }
  60398. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60399. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60400. {
  60401. pNext = pNext_;
  60402. return *this;
  60403. }
  60404. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT
  60405. {
  60406. taskShader = taskShader_;
  60407. return *this;
  60408. }
  60409. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT
  60410. {
  60411. meshShader = meshShader_;
  60412. return *this;
  60413. }
  60414. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT &
  60415. setMultiviewMeshShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewMeshShader_ ) VULKAN_HPP_NOEXCEPT
  60416. {
  60417. multiviewMeshShader = multiviewMeshShader_;
  60418. return *this;
  60419. }
  60420. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT &
  60421. setPrimitiveFragmentShadingRateMeshShader( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateMeshShader_ ) VULKAN_HPP_NOEXCEPT
  60422. {
  60423. primitiveFragmentShadingRateMeshShader = primitiveFragmentShadingRateMeshShader_;
  60424. return *this;
  60425. }
  60426. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesEXT & setMeshShaderQueries( VULKAN_HPP_NAMESPACE::Bool32 meshShaderQueries_ ) VULKAN_HPP_NOEXCEPT
  60427. {
  60428. meshShaderQueries = meshShaderQueries_;
  60429. return *this;
  60430. }
  60431. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60432. operator VkPhysicalDeviceMeshShaderFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  60433. {
  60434. return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesEXT *>( this );
  60435. }
  60436. operator VkPhysicalDeviceMeshShaderFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  60437. {
  60438. return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesEXT *>( this );
  60439. }
  60440. #if defined( VULKAN_HPP_USE_REFLECT )
  60441. # if 14 <= VULKAN_HPP_CPP_VERSION
  60442. auto
  60443. # else
  60444. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  60445. void * const &,
  60446. VULKAN_HPP_NAMESPACE::Bool32 const &,
  60447. VULKAN_HPP_NAMESPACE::Bool32 const &,
  60448. VULKAN_HPP_NAMESPACE::Bool32 const &,
  60449. VULKAN_HPP_NAMESPACE::Bool32 const &,
  60450. VULKAN_HPP_NAMESPACE::Bool32 const &>
  60451. # endif
  60452. reflect() const VULKAN_HPP_NOEXCEPT
  60453. {
  60454. return std::tie( sType, pNext, taskShader, meshShader, multiviewMeshShader, primitiveFragmentShadingRateMeshShader, meshShaderQueries );
  60455. }
  60456. #endif
  60457. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60458. auto operator<=>( PhysicalDeviceMeshShaderFeaturesEXT const & ) const = default;
  60459. #else
  60460. bool operator==( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60461. {
  60462. # if defined( VULKAN_HPP_USE_REFLECT )
  60463. return this->reflect() == rhs.reflect();
  60464. # else
  60465. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( taskShader == rhs.taskShader ) && ( meshShader == rhs.meshShader ) &&
  60466. ( multiviewMeshShader == rhs.multiviewMeshShader ) && ( primitiveFragmentShadingRateMeshShader == rhs.primitiveFragmentShadingRateMeshShader ) &&
  60467. ( meshShaderQueries == rhs.meshShaderQueries );
  60468. # endif
  60469. }
  60470. bool operator!=( PhysicalDeviceMeshShaderFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60471. {
  60472. return !operator==( rhs );
  60473. }
  60474. #endif
  60475. public:
  60476. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesEXT;
  60477. void * pNext = {};
  60478. VULKAN_HPP_NAMESPACE::Bool32 taskShader = {};
  60479. VULKAN_HPP_NAMESPACE::Bool32 meshShader = {};
  60480. VULKAN_HPP_NAMESPACE::Bool32 multiviewMeshShader = {};
  60481. VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateMeshShader = {};
  60482. VULKAN_HPP_NAMESPACE::Bool32 meshShaderQueries = {};
  60483. };
  60484. template <>
  60485. struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderFeaturesEXT>
  60486. {
  60487. using Type = PhysicalDeviceMeshShaderFeaturesEXT;
  60488. };
  60489. struct PhysicalDeviceMeshShaderFeaturesNV
  60490. {
  60491. using NativeType = VkPhysicalDeviceMeshShaderFeaturesNV;
  60492. static const bool allowDuplicate = false;
  60493. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
  60494. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60495. VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {},
  60496. VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {},
  60497. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60498. : pNext( pNext_ )
  60499. , taskShader( taskShader_ )
  60500. , meshShader( meshShader_ )
  60501. {
  60502. }
  60503. VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60504. PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60505. : PhysicalDeviceMeshShaderFeaturesNV( *reinterpret_cast<PhysicalDeviceMeshShaderFeaturesNV const *>( &rhs ) )
  60506. {
  60507. }
  60508. PhysicalDeviceMeshShaderFeaturesNV & operator=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60509. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60510. PhysicalDeviceMeshShaderFeaturesNV & operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60511. {
  60512. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV const *>( &rhs );
  60513. return *this;
  60514. }
  60515. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60516. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60517. {
  60518. pNext = pNext_;
  60519. return *this;
  60520. }
  60521. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT
  60522. {
  60523. taskShader = taskShader_;
  60524. return *this;
  60525. }
  60526. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT
  60527. {
  60528. meshShader = meshShader_;
  60529. return *this;
  60530. }
  60531. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60532. operator VkPhysicalDeviceMeshShaderFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  60533. {
  60534. return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV *>( this );
  60535. }
  60536. operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT
  60537. {
  60538. return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV *>( this );
  60539. }
  60540. #if defined( VULKAN_HPP_USE_REFLECT )
  60541. # if 14 <= VULKAN_HPP_CPP_VERSION
  60542. auto
  60543. # else
  60544. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  60545. # endif
  60546. reflect() const VULKAN_HPP_NOEXCEPT
  60547. {
  60548. return std::tie( sType, pNext, taskShader, meshShader );
  60549. }
  60550. #endif
  60551. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60552. auto operator<=>( PhysicalDeviceMeshShaderFeaturesNV const & ) const = default;
  60553. #else
  60554. bool operator==( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  60555. {
  60556. # if defined( VULKAN_HPP_USE_REFLECT )
  60557. return this->reflect() == rhs.reflect();
  60558. # else
  60559. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( taskShader == rhs.taskShader ) && ( meshShader == rhs.meshShader );
  60560. # endif
  60561. }
  60562. bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  60563. {
  60564. return !operator==( rhs );
  60565. }
  60566. #endif
  60567. public:
  60568. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
  60569. void * pNext = {};
  60570. VULKAN_HPP_NAMESPACE::Bool32 taskShader = {};
  60571. VULKAN_HPP_NAMESPACE::Bool32 meshShader = {};
  60572. };
  60573. template <>
  60574. struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderFeaturesNV>
  60575. {
  60576. using Type = PhysicalDeviceMeshShaderFeaturesNV;
  60577. };
  60578. struct PhysicalDeviceMeshShaderPropertiesEXT
  60579. {
  60580. using NativeType = VkPhysicalDeviceMeshShaderPropertiesEXT;
  60581. static const bool allowDuplicate = false;
  60582. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesEXT;
  60583. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60584. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesEXT( uint32_t maxTaskWorkGroupTotalCount_ = {},
  60585. std::array<uint32_t, 3> const & maxTaskWorkGroupCount_ = {},
  60586. uint32_t maxTaskWorkGroupInvocations_ = {},
  60587. std::array<uint32_t, 3> const & maxTaskWorkGroupSize_ = {},
  60588. uint32_t maxTaskPayloadSize_ = {},
  60589. uint32_t maxTaskSharedMemorySize_ = {},
  60590. uint32_t maxTaskPayloadAndSharedMemorySize_ = {},
  60591. uint32_t maxMeshWorkGroupTotalCount_ = {},
  60592. std::array<uint32_t, 3> const & maxMeshWorkGroupCount_ = {},
  60593. uint32_t maxMeshWorkGroupInvocations_ = {},
  60594. std::array<uint32_t, 3> const & maxMeshWorkGroupSize_ = {},
  60595. uint32_t maxMeshSharedMemorySize_ = {},
  60596. uint32_t maxMeshPayloadAndSharedMemorySize_ = {},
  60597. uint32_t maxMeshOutputMemorySize_ = {},
  60598. uint32_t maxMeshPayloadAndOutputMemorySize_ = {},
  60599. uint32_t maxMeshOutputComponents_ = {},
  60600. uint32_t maxMeshOutputVertices_ = {},
  60601. uint32_t maxMeshOutputPrimitives_ = {},
  60602. uint32_t maxMeshOutputLayers_ = {},
  60603. uint32_t maxMeshMultiviewViewCount_ = {},
  60604. uint32_t meshOutputPerVertexGranularity_ = {},
  60605. uint32_t meshOutputPerPrimitiveGranularity_ = {},
  60606. uint32_t maxPreferredTaskWorkGroupInvocations_ = {},
  60607. uint32_t maxPreferredMeshWorkGroupInvocations_ = {},
  60608. VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationVertexOutput_ = {},
  60609. VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationPrimitiveOutput_ = {},
  60610. VULKAN_HPP_NAMESPACE::Bool32 prefersCompactVertexOutput_ = {},
  60611. VULKAN_HPP_NAMESPACE::Bool32 prefersCompactPrimitiveOutput_ = {},
  60612. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60613. : pNext( pNext_ )
  60614. , maxTaskWorkGroupTotalCount( maxTaskWorkGroupTotalCount_ )
  60615. , maxTaskWorkGroupCount( maxTaskWorkGroupCount_ )
  60616. , maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ )
  60617. , maxTaskWorkGroupSize( maxTaskWorkGroupSize_ )
  60618. , maxTaskPayloadSize( maxTaskPayloadSize_ )
  60619. , maxTaskSharedMemorySize( maxTaskSharedMemorySize_ )
  60620. , maxTaskPayloadAndSharedMemorySize( maxTaskPayloadAndSharedMemorySize_ )
  60621. , maxMeshWorkGroupTotalCount( maxMeshWorkGroupTotalCount_ )
  60622. , maxMeshWorkGroupCount( maxMeshWorkGroupCount_ )
  60623. , maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ )
  60624. , maxMeshWorkGroupSize( maxMeshWorkGroupSize_ )
  60625. , maxMeshSharedMemorySize( maxMeshSharedMemorySize_ )
  60626. , maxMeshPayloadAndSharedMemorySize( maxMeshPayloadAndSharedMemorySize_ )
  60627. , maxMeshOutputMemorySize( maxMeshOutputMemorySize_ )
  60628. , maxMeshPayloadAndOutputMemorySize( maxMeshPayloadAndOutputMemorySize_ )
  60629. , maxMeshOutputComponents( maxMeshOutputComponents_ )
  60630. , maxMeshOutputVertices( maxMeshOutputVertices_ )
  60631. , maxMeshOutputPrimitives( maxMeshOutputPrimitives_ )
  60632. , maxMeshOutputLayers( maxMeshOutputLayers_ )
  60633. , maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ )
  60634. , meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ )
  60635. , meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ )
  60636. , maxPreferredTaskWorkGroupInvocations( maxPreferredTaskWorkGroupInvocations_ )
  60637. , maxPreferredMeshWorkGroupInvocations( maxPreferredMeshWorkGroupInvocations_ )
  60638. , prefersLocalInvocationVertexOutput( prefersLocalInvocationVertexOutput_ )
  60639. , prefersLocalInvocationPrimitiveOutput( prefersLocalInvocationPrimitiveOutput_ )
  60640. , prefersCompactVertexOutput( prefersCompactVertexOutput_ )
  60641. , prefersCompactPrimitiveOutput( prefersCompactPrimitiveOutput_ )
  60642. {
  60643. }
  60644. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesEXT( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60645. PhysicalDeviceMeshShaderPropertiesEXT( VkPhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60646. : PhysicalDeviceMeshShaderPropertiesEXT( *reinterpret_cast<PhysicalDeviceMeshShaderPropertiesEXT const *>( &rhs ) )
  60647. {
  60648. }
  60649. PhysicalDeviceMeshShaderPropertiesEXT & operator=( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60650. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60651. PhysicalDeviceMeshShaderPropertiesEXT & operator=( VkPhysicalDeviceMeshShaderPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60652. {
  60653. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT const *>( &rhs );
  60654. return *this;
  60655. }
  60656. operator VkPhysicalDeviceMeshShaderPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  60657. {
  60658. return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesEXT *>( this );
  60659. }
  60660. operator VkPhysicalDeviceMeshShaderPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  60661. {
  60662. return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesEXT *>( this );
  60663. }
  60664. #if defined( VULKAN_HPP_USE_REFLECT )
  60665. # if 14 <= VULKAN_HPP_CPP_VERSION
  60666. auto
  60667. # else
  60668. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  60669. void * const &,
  60670. uint32_t const &,
  60671. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  60672. uint32_t const &,
  60673. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  60674. uint32_t const &,
  60675. uint32_t const &,
  60676. uint32_t const &,
  60677. uint32_t const &,
  60678. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  60679. uint32_t const &,
  60680. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  60681. uint32_t const &,
  60682. uint32_t const &,
  60683. uint32_t const &,
  60684. uint32_t const &,
  60685. uint32_t const &,
  60686. uint32_t const &,
  60687. uint32_t const &,
  60688. uint32_t const &,
  60689. uint32_t const &,
  60690. uint32_t const &,
  60691. uint32_t const &,
  60692. uint32_t const &,
  60693. uint32_t const &,
  60694. VULKAN_HPP_NAMESPACE::Bool32 const &,
  60695. VULKAN_HPP_NAMESPACE::Bool32 const &,
  60696. VULKAN_HPP_NAMESPACE::Bool32 const &,
  60697. VULKAN_HPP_NAMESPACE::Bool32 const &>
  60698. # endif
  60699. reflect() const VULKAN_HPP_NOEXCEPT
  60700. {
  60701. return std::tie( sType,
  60702. pNext,
  60703. maxTaskWorkGroupTotalCount,
  60704. maxTaskWorkGroupCount,
  60705. maxTaskWorkGroupInvocations,
  60706. maxTaskWorkGroupSize,
  60707. maxTaskPayloadSize,
  60708. maxTaskSharedMemorySize,
  60709. maxTaskPayloadAndSharedMemorySize,
  60710. maxMeshWorkGroupTotalCount,
  60711. maxMeshWorkGroupCount,
  60712. maxMeshWorkGroupInvocations,
  60713. maxMeshWorkGroupSize,
  60714. maxMeshSharedMemorySize,
  60715. maxMeshPayloadAndSharedMemorySize,
  60716. maxMeshOutputMemorySize,
  60717. maxMeshPayloadAndOutputMemorySize,
  60718. maxMeshOutputComponents,
  60719. maxMeshOutputVertices,
  60720. maxMeshOutputPrimitives,
  60721. maxMeshOutputLayers,
  60722. maxMeshMultiviewViewCount,
  60723. meshOutputPerVertexGranularity,
  60724. meshOutputPerPrimitiveGranularity,
  60725. maxPreferredTaskWorkGroupInvocations,
  60726. maxPreferredMeshWorkGroupInvocations,
  60727. prefersLocalInvocationVertexOutput,
  60728. prefersLocalInvocationPrimitiveOutput,
  60729. prefersCompactVertexOutput,
  60730. prefersCompactPrimitiveOutput );
  60731. }
  60732. #endif
  60733. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60734. auto operator<=>( PhysicalDeviceMeshShaderPropertiesEXT const & ) const = default;
  60735. #else
  60736. bool operator==( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60737. {
  60738. # if defined( VULKAN_HPP_USE_REFLECT )
  60739. return this->reflect() == rhs.reflect();
  60740. # else
  60741. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxTaskWorkGroupTotalCount == rhs.maxTaskWorkGroupTotalCount ) &&
  60742. ( maxTaskWorkGroupCount == rhs.maxTaskWorkGroupCount ) && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations ) &&
  60743. ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize ) && ( maxTaskPayloadSize == rhs.maxTaskPayloadSize ) &&
  60744. ( maxTaskSharedMemorySize == rhs.maxTaskSharedMemorySize ) && ( maxTaskPayloadAndSharedMemorySize == rhs.maxTaskPayloadAndSharedMemorySize ) &&
  60745. ( maxMeshWorkGroupTotalCount == rhs.maxMeshWorkGroupTotalCount ) && ( maxMeshWorkGroupCount == rhs.maxMeshWorkGroupCount ) &&
  60746. ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations ) && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize ) &&
  60747. ( maxMeshSharedMemorySize == rhs.maxMeshSharedMemorySize ) && ( maxMeshPayloadAndSharedMemorySize == rhs.maxMeshPayloadAndSharedMemorySize ) &&
  60748. ( maxMeshOutputMemorySize == rhs.maxMeshOutputMemorySize ) && ( maxMeshPayloadAndOutputMemorySize == rhs.maxMeshPayloadAndOutputMemorySize ) &&
  60749. ( maxMeshOutputComponents == rhs.maxMeshOutputComponents ) && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices ) &&
  60750. ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives ) && ( maxMeshOutputLayers == rhs.maxMeshOutputLayers ) &&
  60751. ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount ) && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity ) &&
  60752. ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity ) &&
  60753. ( maxPreferredTaskWorkGroupInvocations == rhs.maxPreferredTaskWorkGroupInvocations ) &&
  60754. ( maxPreferredMeshWorkGroupInvocations == rhs.maxPreferredMeshWorkGroupInvocations ) &&
  60755. ( prefersLocalInvocationVertexOutput == rhs.prefersLocalInvocationVertexOutput ) &&
  60756. ( prefersLocalInvocationPrimitiveOutput == rhs.prefersLocalInvocationPrimitiveOutput ) &&
  60757. ( prefersCompactVertexOutput == rhs.prefersCompactVertexOutput ) && ( prefersCompactPrimitiveOutput == rhs.prefersCompactPrimitiveOutput );
  60758. # endif
  60759. }
  60760. bool operator!=( PhysicalDeviceMeshShaderPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  60761. {
  60762. return !operator==( rhs );
  60763. }
  60764. #endif
  60765. public:
  60766. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesEXT;
  60767. void * pNext = {};
  60768. uint32_t maxTaskWorkGroupTotalCount = {};
  60769. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupCount = {};
  60770. uint32_t maxTaskWorkGroupInvocations = {};
  60771. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupSize = {};
  60772. uint32_t maxTaskPayloadSize = {};
  60773. uint32_t maxTaskSharedMemorySize = {};
  60774. uint32_t maxTaskPayloadAndSharedMemorySize = {};
  60775. uint32_t maxMeshWorkGroupTotalCount = {};
  60776. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupCount = {};
  60777. uint32_t maxMeshWorkGroupInvocations = {};
  60778. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupSize = {};
  60779. uint32_t maxMeshSharedMemorySize = {};
  60780. uint32_t maxMeshPayloadAndSharedMemorySize = {};
  60781. uint32_t maxMeshOutputMemorySize = {};
  60782. uint32_t maxMeshPayloadAndOutputMemorySize = {};
  60783. uint32_t maxMeshOutputComponents = {};
  60784. uint32_t maxMeshOutputVertices = {};
  60785. uint32_t maxMeshOutputPrimitives = {};
  60786. uint32_t maxMeshOutputLayers = {};
  60787. uint32_t maxMeshMultiviewViewCount = {};
  60788. uint32_t meshOutputPerVertexGranularity = {};
  60789. uint32_t meshOutputPerPrimitiveGranularity = {};
  60790. uint32_t maxPreferredTaskWorkGroupInvocations = {};
  60791. uint32_t maxPreferredMeshWorkGroupInvocations = {};
  60792. VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationVertexOutput = {};
  60793. VULKAN_HPP_NAMESPACE::Bool32 prefersLocalInvocationPrimitiveOutput = {};
  60794. VULKAN_HPP_NAMESPACE::Bool32 prefersCompactVertexOutput = {};
  60795. VULKAN_HPP_NAMESPACE::Bool32 prefersCompactPrimitiveOutput = {};
  60796. };
  60797. template <>
  60798. struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderPropertiesEXT>
  60799. {
  60800. using Type = PhysicalDeviceMeshShaderPropertiesEXT;
  60801. };
  60802. struct PhysicalDeviceMeshShaderPropertiesNV
  60803. {
  60804. using NativeType = VkPhysicalDeviceMeshShaderPropertiesNV;
  60805. static const bool allowDuplicate = false;
  60806. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
  60807. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60808. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( uint32_t maxDrawMeshTasksCount_ = {},
  60809. uint32_t maxTaskWorkGroupInvocations_ = {},
  60810. std::array<uint32_t, 3> const & maxTaskWorkGroupSize_ = {},
  60811. uint32_t maxTaskTotalMemorySize_ = {},
  60812. uint32_t maxTaskOutputCount_ = {},
  60813. uint32_t maxMeshWorkGroupInvocations_ = {},
  60814. std::array<uint32_t, 3> const & maxMeshWorkGroupSize_ = {},
  60815. uint32_t maxMeshTotalMemorySize_ = {},
  60816. uint32_t maxMeshOutputVertices_ = {},
  60817. uint32_t maxMeshOutputPrimitives_ = {},
  60818. uint32_t maxMeshMultiviewViewCount_ = {},
  60819. uint32_t meshOutputPerVertexGranularity_ = {},
  60820. uint32_t meshOutputPerPrimitiveGranularity_ = {},
  60821. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60822. : pNext( pNext_ )
  60823. , maxDrawMeshTasksCount( maxDrawMeshTasksCount_ )
  60824. , maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ )
  60825. , maxTaskWorkGroupSize( maxTaskWorkGroupSize_ )
  60826. , maxTaskTotalMemorySize( maxTaskTotalMemorySize_ )
  60827. , maxTaskOutputCount( maxTaskOutputCount_ )
  60828. , maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ )
  60829. , maxMeshWorkGroupSize( maxMeshWorkGroupSize_ )
  60830. , maxMeshTotalMemorySize( maxMeshTotalMemorySize_ )
  60831. , maxMeshOutputVertices( maxMeshOutputVertices_ )
  60832. , maxMeshOutputPrimitives( maxMeshOutputPrimitives_ )
  60833. , maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ )
  60834. , meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ )
  60835. , meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ )
  60836. {
  60837. }
  60838. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60839. PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60840. : PhysicalDeviceMeshShaderPropertiesNV( *reinterpret_cast<PhysicalDeviceMeshShaderPropertiesNV const *>( &rhs ) )
  60841. {
  60842. }
  60843. PhysicalDeviceMeshShaderPropertiesNV & operator=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60844. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60845. PhysicalDeviceMeshShaderPropertiesNV & operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  60846. {
  60847. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV const *>( &rhs );
  60848. return *this;
  60849. }
  60850. operator VkPhysicalDeviceMeshShaderPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  60851. {
  60852. return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV *>( this );
  60853. }
  60854. operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT
  60855. {
  60856. return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV *>( this );
  60857. }
  60858. #if defined( VULKAN_HPP_USE_REFLECT )
  60859. # if 14 <= VULKAN_HPP_CPP_VERSION
  60860. auto
  60861. # else
  60862. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  60863. void * const &,
  60864. uint32_t const &,
  60865. uint32_t const &,
  60866. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  60867. uint32_t const &,
  60868. uint32_t const &,
  60869. uint32_t const &,
  60870. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &,
  60871. uint32_t const &,
  60872. uint32_t const &,
  60873. uint32_t const &,
  60874. uint32_t const &,
  60875. uint32_t const &,
  60876. uint32_t const &>
  60877. # endif
  60878. reflect() const VULKAN_HPP_NOEXCEPT
  60879. {
  60880. return std::tie( sType,
  60881. pNext,
  60882. maxDrawMeshTasksCount,
  60883. maxTaskWorkGroupInvocations,
  60884. maxTaskWorkGroupSize,
  60885. maxTaskTotalMemorySize,
  60886. maxTaskOutputCount,
  60887. maxMeshWorkGroupInvocations,
  60888. maxMeshWorkGroupSize,
  60889. maxMeshTotalMemorySize,
  60890. maxMeshOutputVertices,
  60891. maxMeshOutputPrimitives,
  60892. maxMeshMultiviewViewCount,
  60893. meshOutputPerVertexGranularity,
  60894. meshOutputPerPrimitiveGranularity );
  60895. }
  60896. #endif
  60897. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60898. auto operator<=>( PhysicalDeviceMeshShaderPropertiesNV const & ) const = default;
  60899. #else
  60900. bool operator==( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  60901. {
  60902. # if defined( VULKAN_HPP_USE_REFLECT )
  60903. return this->reflect() == rhs.reflect();
  60904. # else
  60905. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount ) &&
  60906. ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations ) && ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize ) &&
  60907. ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize ) && ( maxTaskOutputCount == rhs.maxTaskOutputCount ) &&
  60908. ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations ) && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize ) &&
  60909. ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize ) && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices ) &&
  60910. ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives ) && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount ) &&
  60911. ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity ) &&
  60912. ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity );
  60913. # endif
  60914. }
  60915. bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  60916. {
  60917. return !operator==( rhs );
  60918. }
  60919. #endif
  60920. public:
  60921. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
  60922. void * pNext = {};
  60923. uint32_t maxDrawMeshTasksCount = {};
  60924. uint32_t maxTaskWorkGroupInvocations = {};
  60925. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxTaskWorkGroupSize = {};
  60926. uint32_t maxTaskTotalMemorySize = {};
  60927. uint32_t maxTaskOutputCount = {};
  60928. uint32_t maxMeshWorkGroupInvocations = {};
  60929. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> maxMeshWorkGroupSize = {};
  60930. uint32_t maxMeshTotalMemorySize = {};
  60931. uint32_t maxMeshOutputVertices = {};
  60932. uint32_t maxMeshOutputPrimitives = {};
  60933. uint32_t maxMeshMultiviewViewCount = {};
  60934. uint32_t meshOutputPerVertexGranularity = {};
  60935. uint32_t meshOutputPerPrimitiveGranularity = {};
  60936. };
  60937. template <>
  60938. struct CppType<StructureType, StructureType::ePhysicalDeviceMeshShaderPropertiesNV>
  60939. {
  60940. using Type = PhysicalDeviceMeshShaderPropertiesNV;
  60941. };
  60942. struct PhysicalDeviceMultiDrawFeaturesEXT
  60943. {
  60944. using NativeType = VkPhysicalDeviceMultiDrawFeaturesEXT;
  60945. static const bool allowDuplicate = false;
  60946. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiDrawFeaturesEXT;
  60947. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  60948. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 multiDraw_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  60949. : pNext( pNext_ )
  60950. , multiDraw( multiDraw_ )
  60951. {
  60952. }
  60953. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawFeaturesEXT( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60954. PhysicalDeviceMultiDrawFeaturesEXT( VkPhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60955. : PhysicalDeviceMultiDrawFeaturesEXT( *reinterpret_cast<PhysicalDeviceMultiDrawFeaturesEXT const *>( &rhs ) )
  60956. {
  60957. }
  60958. PhysicalDeviceMultiDrawFeaturesEXT & operator=( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  60959. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  60960. PhysicalDeviceMultiDrawFeaturesEXT & operator=( VkPhysicalDeviceMultiDrawFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  60961. {
  60962. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT const *>( &rhs );
  60963. return *this;
  60964. }
  60965. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  60966. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiDrawFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  60967. {
  60968. pNext = pNext_;
  60969. return *this;
  60970. }
  60971. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiDrawFeaturesEXT & setMultiDraw( VULKAN_HPP_NAMESPACE::Bool32 multiDraw_ ) VULKAN_HPP_NOEXCEPT
  60972. {
  60973. multiDraw = multiDraw_;
  60974. return *this;
  60975. }
  60976. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  60977. operator VkPhysicalDeviceMultiDrawFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  60978. {
  60979. return *reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT *>( this );
  60980. }
  60981. operator VkPhysicalDeviceMultiDrawFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  60982. {
  60983. return *reinterpret_cast<VkPhysicalDeviceMultiDrawFeaturesEXT *>( this );
  60984. }
  60985. #if defined( VULKAN_HPP_USE_REFLECT )
  60986. # if 14 <= VULKAN_HPP_CPP_VERSION
  60987. auto
  60988. # else
  60989. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  60990. # endif
  60991. reflect() const VULKAN_HPP_NOEXCEPT
  60992. {
  60993. return std::tie( sType, pNext, multiDraw );
  60994. }
  60995. #endif
  60996. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  60997. auto operator<=>( PhysicalDeviceMultiDrawFeaturesEXT const & ) const = default;
  60998. #else
  60999. bool operator==( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61000. {
  61001. # if defined( VULKAN_HPP_USE_REFLECT )
  61002. return this->reflect() == rhs.reflect();
  61003. # else
  61004. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multiDraw == rhs.multiDraw );
  61005. # endif
  61006. }
  61007. bool operator!=( PhysicalDeviceMultiDrawFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61008. {
  61009. return !operator==( rhs );
  61010. }
  61011. #endif
  61012. public:
  61013. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiDrawFeaturesEXT;
  61014. void * pNext = {};
  61015. VULKAN_HPP_NAMESPACE::Bool32 multiDraw = {};
  61016. };
  61017. template <>
  61018. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiDrawFeaturesEXT>
  61019. {
  61020. using Type = PhysicalDeviceMultiDrawFeaturesEXT;
  61021. };
  61022. struct PhysicalDeviceMultiDrawPropertiesEXT
  61023. {
  61024. using NativeType = VkPhysicalDeviceMultiDrawPropertiesEXT;
  61025. static const bool allowDuplicate = false;
  61026. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiDrawPropertiesEXT;
  61027. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61028. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawPropertiesEXT( uint32_t maxMultiDrawCount_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61029. : pNext( pNext_ )
  61030. , maxMultiDrawCount( maxMultiDrawCount_ )
  61031. {
  61032. }
  61033. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiDrawPropertiesEXT( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61034. PhysicalDeviceMultiDrawPropertiesEXT( VkPhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61035. : PhysicalDeviceMultiDrawPropertiesEXT( *reinterpret_cast<PhysicalDeviceMultiDrawPropertiesEXT const *>( &rhs ) )
  61036. {
  61037. }
  61038. PhysicalDeviceMultiDrawPropertiesEXT & operator=( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61039. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61040. PhysicalDeviceMultiDrawPropertiesEXT & operator=( VkPhysicalDeviceMultiDrawPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61041. {
  61042. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT const *>( &rhs );
  61043. return *this;
  61044. }
  61045. operator VkPhysicalDeviceMultiDrawPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  61046. {
  61047. return *reinterpret_cast<const VkPhysicalDeviceMultiDrawPropertiesEXT *>( this );
  61048. }
  61049. operator VkPhysicalDeviceMultiDrawPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  61050. {
  61051. return *reinterpret_cast<VkPhysicalDeviceMultiDrawPropertiesEXT *>( this );
  61052. }
  61053. #if defined( VULKAN_HPP_USE_REFLECT )
  61054. # if 14 <= VULKAN_HPP_CPP_VERSION
  61055. auto
  61056. # else
  61057. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  61058. # endif
  61059. reflect() const VULKAN_HPP_NOEXCEPT
  61060. {
  61061. return std::tie( sType, pNext, maxMultiDrawCount );
  61062. }
  61063. #endif
  61064. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61065. auto operator<=>( PhysicalDeviceMultiDrawPropertiesEXT const & ) const = default;
  61066. #else
  61067. bool operator==( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61068. {
  61069. # if defined( VULKAN_HPP_USE_REFLECT )
  61070. return this->reflect() == rhs.reflect();
  61071. # else
  61072. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxMultiDrawCount == rhs.maxMultiDrawCount );
  61073. # endif
  61074. }
  61075. bool operator!=( PhysicalDeviceMultiDrawPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61076. {
  61077. return !operator==( rhs );
  61078. }
  61079. #endif
  61080. public:
  61081. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiDrawPropertiesEXT;
  61082. void * pNext = {};
  61083. uint32_t maxMultiDrawCount = {};
  61084. };
  61085. template <>
  61086. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiDrawPropertiesEXT>
  61087. {
  61088. using Type = PhysicalDeviceMultiDrawPropertiesEXT;
  61089. };
  61090. struct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
  61091. {
  61092. using NativeType = VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
  61093. static const bool allowDuplicate = false;
  61094. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
  61095. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61096. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled_ = {},
  61097. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61098. : pNext( pNext_ )
  61099. , multisampledRenderToSingleSampled( multisampledRenderToSingleSampled_ )
  61100. {
  61101. }
  61102. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs )
  61103. VULKAN_HPP_NOEXCEPT = default;
  61104. PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT( VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61105. : PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(
  61106. *reinterpret_cast<PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const *>( &rhs ) )
  61107. {
  61108. }
  61109. PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT &
  61110. operator=( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61111. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61112. PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT &
  61113. operator=( VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61114. {
  61115. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const *>( &rhs );
  61116. return *this;
  61117. }
  61118. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61119. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61120. {
  61121. pNext = pNext_;
  61122. return *this;
  61123. }
  61124. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT &
  61125. setMultisampledRenderToSingleSampled( VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled_ ) VULKAN_HPP_NOEXCEPT
  61126. {
  61127. multisampledRenderToSingleSampled = multisampledRenderToSingleSampled_;
  61128. return *this;
  61129. }
  61130. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61131. operator VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  61132. {
  61133. return *reinterpret_cast<const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT *>( this );
  61134. }
  61135. operator VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  61136. {
  61137. return *reinterpret_cast<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT *>( this );
  61138. }
  61139. #if defined( VULKAN_HPP_USE_REFLECT )
  61140. # if 14 <= VULKAN_HPP_CPP_VERSION
  61141. auto
  61142. # else
  61143. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  61144. # endif
  61145. reflect() const VULKAN_HPP_NOEXCEPT
  61146. {
  61147. return std::tie( sType, pNext, multisampledRenderToSingleSampled );
  61148. }
  61149. #endif
  61150. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61151. auto operator<=>( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & ) const = default;
  61152. #else
  61153. bool operator==( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61154. {
  61155. # if defined( VULKAN_HPP_USE_REFLECT )
  61156. return this->reflect() == rhs.reflect();
  61157. # else
  61158. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multisampledRenderToSingleSampled == rhs.multisampledRenderToSingleSampled );
  61159. # endif
  61160. }
  61161. bool operator!=( PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61162. {
  61163. return !operator==( rhs );
  61164. }
  61165. #endif
  61166. public:
  61167. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
  61168. void * pNext = {};
  61169. VULKAN_HPP_NAMESPACE::Bool32 multisampledRenderToSingleSampled = {};
  61170. };
  61171. template <>
  61172. struct CppType<StructureType, StructureType::ePhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>
  61173. {
  61174. using Type = PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
  61175. };
  61176. struct PhysicalDeviceMultiviewFeatures
  61177. {
  61178. using NativeType = VkPhysicalDeviceMultiviewFeatures;
  61179. static const bool allowDuplicate = false;
  61180. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewFeatures;
  61181. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61182. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {},
  61183. VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {},
  61184. VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {},
  61185. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61186. : pNext( pNext_ )
  61187. , multiview( multiview_ )
  61188. , multiviewGeometryShader( multiviewGeometryShader_ )
  61189. , multiviewTessellationShader( multiviewTessellationShader_ )
  61190. {
  61191. }
  61192. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61193. PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  61194. : PhysicalDeviceMultiviewFeatures( *reinterpret_cast<PhysicalDeviceMultiviewFeatures const *>( &rhs ) )
  61195. {
  61196. }
  61197. PhysicalDeviceMultiviewFeatures & operator=( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61198. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61199. PhysicalDeviceMultiviewFeatures & operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  61200. {
  61201. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures const *>( &rhs );
  61202. return *this;
  61203. }
  61204. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61205. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61206. {
  61207. pNext = pNext_;
  61208. return *this;
  61209. }
  61210. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
  61211. {
  61212. multiview = multiview_;
  61213. return *this;
  61214. }
  61215. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures &
  61216. setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
  61217. {
  61218. multiviewGeometryShader = multiviewGeometryShader_;
  61219. return *this;
  61220. }
  61221. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures &
  61222. setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
  61223. {
  61224. multiviewTessellationShader = multiviewTessellationShader_;
  61225. return *this;
  61226. }
  61227. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61228. operator VkPhysicalDeviceMultiviewFeatures const &() const VULKAN_HPP_NOEXCEPT
  61229. {
  61230. return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures *>( this );
  61231. }
  61232. operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT
  61233. {
  61234. return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures *>( this );
  61235. }
  61236. #if defined( VULKAN_HPP_USE_REFLECT )
  61237. # if 14 <= VULKAN_HPP_CPP_VERSION
  61238. auto
  61239. # else
  61240. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  61241. void * const &,
  61242. VULKAN_HPP_NAMESPACE::Bool32 const &,
  61243. VULKAN_HPP_NAMESPACE::Bool32 const &,
  61244. VULKAN_HPP_NAMESPACE::Bool32 const &>
  61245. # endif
  61246. reflect() const VULKAN_HPP_NOEXCEPT
  61247. {
  61248. return std::tie( sType, pNext, multiview, multiviewGeometryShader, multiviewTessellationShader );
  61249. }
  61250. #endif
  61251. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61252. auto operator<=>( PhysicalDeviceMultiviewFeatures const & ) const = default;
  61253. #else
  61254. bool operator==( PhysicalDeviceMultiviewFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  61255. {
  61256. # if defined( VULKAN_HPP_USE_REFLECT )
  61257. return this->reflect() == rhs.reflect();
  61258. # else
  61259. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multiview == rhs.multiview ) && ( multiviewGeometryShader == rhs.multiviewGeometryShader ) &&
  61260. ( multiviewTessellationShader == rhs.multiviewTessellationShader );
  61261. # endif
  61262. }
  61263. bool operator!=( PhysicalDeviceMultiviewFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  61264. {
  61265. return !operator==( rhs );
  61266. }
  61267. #endif
  61268. public:
  61269. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures;
  61270. void * pNext = {};
  61271. VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
  61272. VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
  61273. VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
  61274. };
  61275. template <>
  61276. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewFeatures>
  61277. {
  61278. using Type = PhysicalDeviceMultiviewFeatures;
  61279. };
  61280. using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
  61281. struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
  61282. {
  61283. using NativeType = VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  61284. static const bool allowDuplicate = false;
  61285. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  61286. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61287. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {},
  61288. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61289. : pNext( pNext_ )
  61290. , perViewPositionAllComponents( perViewPositionAllComponents_ )
  61291. {
  61292. }
  61293. VULKAN_HPP_CONSTEXPR
  61294. PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61295. PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  61296. : PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( *reinterpret_cast<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>( &rhs ) )
  61297. {
  61298. }
  61299. PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &
  61300. operator=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61301. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61302. PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT
  61303. {
  61304. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const *>( &rhs );
  61305. return *this;
  61306. }
  61307. operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT
  61308. {
  61309. return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX *>( this );
  61310. }
  61311. operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT
  61312. {
  61313. return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX *>( this );
  61314. }
  61315. #if defined( VULKAN_HPP_USE_REFLECT )
  61316. # if 14 <= VULKAN_HPP_CPP_VERSION
  61317. auto
  61318. # else
  61319. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  61320. # endif
  61321. reflect() const VULKAN_HPP_NOEXCEPT
  61322. {
  61323. return std::tie( sType, pNext, perViewPositionAllComponents );
  61324. }
  61325. #endif
  61326. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61327. auto operator<=>( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & ) const = default;
  61328. #else
  61329. bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  61330. {
  61331. # if defined( VULKAN_HPP_USE_REFLECT )
  61332. return this->reflect() == rhs.reflect();
  61333. # else
  61334. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents );
  61335. # endif
  61336. }
  61337. bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT
  61338. {
  61339. return !operator==( rhs );
  61340. }
  61341. #endif
  61342. public:
  61343. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  61344. void * pNext = {};
  61345. VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {};
  61346. };
  61347. template <>
  61348. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>
  61349. {
  61350. using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  61351. };
  61352. struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM
  61353. {
  61354. using NativeType = VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
  61355. static const bool allowDuplicate = false;
  61356. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
  61357. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61358. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewRenderAreas_ = {},
  61359. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61360. : pNext( pNext_ )
  61361. , multiviewPerViewRenderAreas( multiviewPerViewRenderAreas_ )
  61362. {
  61363. }
  61364. VULKAN_HPP_CONSTEXPR
  61365. PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61366. PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  61367. : PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM( *reinterpret_cast<PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const *>( &rhs ) )
  61368. {
  61369. }
  61370. PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM &
  61371. operator=( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61372. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61373. PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM & operator=( VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  61374. {
  61375. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const *>( &rhs );
  61376. return *this;
  61377. }
  61378. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61379. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61380. {
  61381. pNext = pNext_;
  61382. return *this;
  61383. }
  61384. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM &
  61385. setMultiviewPerViewRenderAreas( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewRenderAreas_ ) VULKAN_HPP_NOEXCEPT
  61386. {
  61387. multiviewPerViewRenderAreas = multiviewPerViewRenderAreas_;
  61388. return *this;
  61389. }
  61390. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61391. operator VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  61392. {
  61393. return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM *>( this );
  61394. }
  61395. operator VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  61396. {
  61397. return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM *>( this );
  61398. }
  61399. #if defined( VULKAN_HPP_USE_REFLECT )
  61400. # if 14 <= VULKAN_HPP_CPP_VERSION
  61401. auto
  61402. # else
  61403. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  61404. # endif
  61405. reflect() const VULKAN_HPP_NOEXCEPT
  61406. {
  61407. return std::tie( sType, pNext, multiviewPerViewRenderAreas );
  61408. }
  61409. #endif
  61410. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61411. auto operator<=>( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & ) const = default;
  61412. #else
  61413. bool operator==( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  61414. {
  61415. # if defined( VULKAN_HPP_USE_REFLECT )
  61416. return this->reflect() == rhs.reflect();
  61417. # else
  61418. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multiviewPerViewRenderAreas == rhs.multiviewPerViewRenderAreas );
  61419. # endif
  61420. }
  61421. bool operator!=( PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  61422. {
  61423. return !operator==( rhs );
  61424. }
  61425. #endif
  61426. public:
  61427. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
  61428. void * pNext = {};
  61429. VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewRenderAreas = {};
  61430. };
  61431. template <>
  61432. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM>
  61433. {
  61434. using Type = PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
  61435. };
  61436. struct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
  61437. {
  61438. using NativeType = VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
  61439. static const bool allowDuplicate = false;
  61440. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
  61441. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61442. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewViewports_ = {},
  61443. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61444. : pNext( pNext_ )
  61445. , multiviewPerViewViewports( multiviewPerViewViewports_ )
  61446. {
  61447. }
  61448. VULKAN_HPP_CONSTEXPR
  61449. PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM( PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61450. PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM( VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  61451. : PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM( *reinterpret_cast<PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const *>( &rhs ) )
  61452. {
  61453. }
  61454. PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM &
  61455. operator=( PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61456. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61457. PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM & operator=( VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  61458. {
  61459. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const *>( &rhs );
  61460. return *this;
  61461. }
  61462. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61463. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61464. {
  61465. pNext = pNext_;
  61466. return *this;
  61467. }
  61468. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM &
  61469. setMultiviewPerViewViewports( VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewViewports_ ) VULKAN_HPP_NOEXCEPT
  61470. {
  61471. multiviewPerViewViewports = multiviewPerViewViewports_;
  61472. return *this;
  61473. }
  61474. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61475. operator VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  61476. {
  61477. return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM *>( this );
  61478. }
  61479. operator VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  61480. {
  61481. return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM *>( this );
  61482. }
  61483. #if defined( VULKAN_HPP_USE_REFLECT )
  61484. # if 14 <= VULKAN_HPP_CPP_VERSION
  61485. auto
  61486. # else
  61487. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  61488. # endif
  61489. reflect() const VULKAN_HPP_NOEXCEPT
  61490. {
  61491. return std::tie( sType, pNext, multiviewPerViewViewports );
  61492. }
  61493. #endif
  61494. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61495. auto operator<=>( PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & ) const = default;
  61496. #else
  61497. bool operator==( PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  61498. {
  61499. # if defined( VULKAN_HPP_USE_REFLECT )
  61500. return this->reflect() == rhs.reflect();
  61501. # else
  61502. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multiviewPerViewViewports == rhs.multiviewPerViewViewports );
  61503. # endif
  61504. }
  61505. bool operator!=( PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  61506. {
  61507. return !operator==( rhs );
  61508. }
  61509. #endif
  61510. public:
  61511. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
  61512. void * pNext = {};
  61513. VULKAN_HPP_NAMESPACE::Bool32 multiviewPerViewViewports = {};
  61514. };
  61515. template <>
  61516. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM>
  61517. {
  61518. using Type = PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
  61519. };
  61520. struct PhysicalDeviceMultiviewProperties
  61521. {
  61522. using NativeType = VkPhysicalDeviceMultiviewProperties;
  61523. static const bool allowDuplicate = false;
  61524. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewProperties;
  61525. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61526. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( uint32_t maxMultiviewViewCount_ = {},
  61527. uint32_t maxMultiviewInstanceIndex_ = {},
  61528. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61529. : pNext( pNext_ )
  61530. , maxMultiviewViewCount( maxMultiviewViewCount_ )
  61531. , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
  61532. {
  61533. }
  61534. VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61535. PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  61536. : PhysicalDeviceMultiviewProperties( *reinterpret_cast<PhysicalDeviceMultiviewProperties const *>( &rhs ) )
  61537. {
  61538. }
  61539. PhysicalDeviceMultiviewProperties & operator=( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61540. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61541. PhysicalDeviceMultiviewProperties & operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  61542. {
  61543. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties const *>( &rhs );
  61544. return *this;
  61545. }
  61546. operator VkPhysicalDeviceMultiviewProperties const &() const VULKAN_HPP_NOEXCEPT
  61547. {
  61548. return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties *>( this );
  61549. }
  61550. operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT
  61551. {
  61552. return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties *>( this );
  61553. }
  61554. #if defined( VULKAN_HPP_USE_REFLECT )
  61555. # if 14 <= VULKAN_HPP_CPP_VERSION
  61556. auto
  61557. # else
  61558. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &>
  61559. # endif
  61560. reflect() const VULKAN_HPP_NOEXCEPT
  61561. {
  61562. return std::tie( sType, pNext, maxMultiviewViewCount, maxMultiviewInstanceIndex );
  61563. }
  61564. #endif
  61565. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61566. auto operator<=>( PhysicalDeviceMultiviewProperties const & ) const = default;
  61567. #else
  61568. bool operator==( PhysicalDeviceMultiviewProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  61569. {
  61570. # if defined( VULKAN_HPP_USE_REFLECT )
  61571. return this->reflect() == rhs.reflect();
  61572. # else
  61573. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) &&
  61574. ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex );
  61575. # endif
  61576. }
  61577. bool operator!=( PhysicalDeviceMultiviewProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  61578. {
  61579. return !operator==( rhs );
  61580. }
  61581. #endif
  61582. public:
  61583. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties;
  61584. void * pNext = {};
  61585. uint32_t maxMultiviewViewCount = {};
  61586. uint32_t maxMultiviewInstanceIndex = {};
  61587. };
  61588. template <>
  61589. struct CppType<StructureType, StructureType::ePhysicalDeviceMultiviewProperties>
  61590. {
  61591. using Type = PhysicalDeviceMultiviewProperties;
  61592. };
  61593. using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
  61594. struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT
  61595. {
  61596. using NativeType = VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
  61597. static const bool allowDuplicate = false;
  61598. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesEXT;
  61599. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61600. VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ = {},
  61601. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61602. : pNext( pNext_ )
  61603. , mutableDescriptorType( mutableDescriptorType_ )
  61604. {
  61605. }
  61606. VULKAN_HPP_CONSTEXPR
  61607. PhysicalDeviceMutableDescriptorTypeFeaturesEXT( PhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61608. PhysicalDeviceMutableDescriptorTypeFeaturesEXT( VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61609. : PhysicalDeviceMutableDescriptorTypeFeaturesEXT( *reinterpret_cast<PhysicalDeviceMutableDescriptorTypeFeaturesEXT const *>( &rhs ) )
  61610. {
  61611. }
  61612. PhysicalDeviceMutableDescriptorTypeFeaturesEXT & operator=( PhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61613. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61614. PhysicalDeviceMutableDescriptorTypeFeaturesEXT & operator=( VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61615. {
  61616. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT const *>( &rhs );
  61617. return *this;
  61618. }
  61619. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61620. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMutableDescriptorTypeFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61621. {
  61622. pNext = pNext_;
  61623. return *this;
  61624. }
  61625. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMutableDescriptorTypeFeaturesEXT &
  61626. setMutableDescriptorType( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ ) VULKAN_HPP_NOEXCEPT
  61627. {
  61628. mutableDescriptorType = mutableDescriptorType_;
  61629. return *this;
  61630. }
  61631. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61632. operator VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  61633. {
  61634. return *reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *>( this );
  61635. }
  61636. operator VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  61637. {
  61638. return *reinterpret_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *>( this );
  61639. }
  61640. #if defined( VULKAN_HPP_USE_REFLECT )
  61641. # if 14 <= VULKAN_HPP_CPP_VERSION
  61642. auto
  61643. # else
  61644. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  61645. # endif
  61646. reflect() const VULKAN_HPP_NOEXCEPT
  61647. {
  61648. return std::tie( sType, pNext, mutableDescriptorType );
  61649. }
  61650. #endif
  61651. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61652. auto operator<=>( PhysicalDeviceMutableDescriptorTypeFeaturesEXT const & ) const = default;
  61653. #else
  61654. bool operator==( PhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61655. {
  61656. # if defined( VULKAN_HPP_USE_REFLECT )
  61657. return this->reflect() == rhs.reflect();
  61658. # else
  61659. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mutableDescriptorType == rhs.mutableDescriptorType );
  61660. # endif
  61661. }
  61662. bool operator!=( PhysicalDeviceMutableDescriptorTypeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61663. {
  61664. return !operator==( rhs );
  61665. }
  61666. #endif
  61667. public:
  61668. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesEXT;
  61669. void * pNext = {};
  61670. VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType = {};
  61671. };
  61672. template <>
  61673. struct CppType<StructureType, StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesEXT>
  61674. {
  61675. using Type = PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
  61676. };
  61677. using PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
  61678. struct PhysicalDeviceNestedCommandBufferFeaturesEXT
  61679. {
  61680. using NativeType = VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
  61681. static const bool allowDuplicate = false;
  61682. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT;
  61683. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61684. VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBuffer_ = {},
  61685. VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering_ = {},
  61686. VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse_ = {},
  61687. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61688. : pNext( pNext_ )
  61689. , nestedCommandBuffer( nestedCommandBuffer_ )
  61690. , nestedCommandBufferRendering( nestedCommandBufferRendering_ )
  61691. , nestedCommandBufferSimultaneousUse( nestedCommandBufferSimultaneousUse_ )
  61692. {
  61693. }
  61694. VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferFeaturesEXT( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61695. PhysicalDeviceNestedCommandBufferFeaturesEXT( VkPhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61696. : PhysicalDeviceNestedCommandBufferFeaturesEXT( *reinterpret_cast<PhysicalDeviceNestedCommandBufferFeaturesEXT const *>( &rhs ) )
  61697. {
  61698. }
  61699. PhysicalDeviceNestedCommandBufferFeaturesEXT & operator=( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61700. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61701. PhysicalDeviceNestedCommandBufferFeaturesEXT & operator=( VkPhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61702. {
  61703. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT const *>( &rhs );
  61704. return *this;
  61705. }
  61706. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61707. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61708. {
  61709. pNext = pNext_;
  61710. return *this;
  61711. }
  61712. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT &
  61713. setNestedCommandBuffer( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBuffer_ ) VULKAN_HPP_NOEXCEPT
  61714. {
  61715. nestedCommandBuffer = nestedCommandBuffer_;
  61716. return *this;
  61717. }
  61718. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT &
  61719. setNestedCommandBufferRendering( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering_ ) VULKAN_HPP_NOEXCEPT
  61720. {
  61721. nestedCommandBufferRendering = nestedCommandBufferRendering_;
  61722. return *this;
  61723. }
  61724. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferFeaturesEXT &
  61725. setNestedCommandBufferSimultaneousUse( VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse_ ) VULKAN_HPP_NOEXCEPT
  61726. {
  61727. nestedCommandBufferSimultaneousUse = nestedCommandBufferSimultaneousUse_;
  61728. return *this;
  61729. }
  61730. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61731. operator VkPhysicalDeviceNestedCommandBufferFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  61732. {
  61733. return *reinterpret_cast<const VkPhysicalDeviceNestedCommandBufferFeaturesEXT *>( this );
  61734. }
  61735. operator VkPhysicalDeviceNestedCommandBufferFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  61736. {
  61737. return *reinterpret_cast<VkPhysicalDeviceNestedCommandBufferFeaturesEXT *>( this );
  61738. }
  61739. #if defined( VULKAN_HPP_USE_REFLECT )
  61740. # if 14 <= VULKAN_HPP_CPP_VERSION
  61741. auto
  61742. # else
  61743. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  61744. void * const &,
  61745. VULKAN_HPP_NAMESPACE::Bool32 const &,
  61746. VULKAN_HPP_NAMESPACE::Bool32 const &,
  61747. VULKAN_HPP_NAMESPACE::Bool32 const &>
  61748. # endif
  61749. reflect() const VULKAN_HPP_NOEXCEPT
  61750. {
  61751. return std::tie( sType, pNext, nestedCommandBuffer, nestedCommandBufferRendering, nestedCommandBufferSimultaneousUse );
  61752. }
  61753. #endif
  61754. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61755. auto operator<=>( PhysicalDeviceNestedCommandBufferFeaturesEXT const & ) const = default;
  61756. #else
  61757. bool operator==( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61758. {
  61759. # if defined( VULKAN_HPP_USE_REFLECT )
  61760. return this->reflect() == rhs.reflect();
  61761. # else
  61762. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( nestedCommandBuffer == rhs.nestedCommandBuffer ) &&
  61763. ( nestedCommandBufferRendering == rhs.nestedCommandBufferRendering ) &&
  61764. ( nestedCommandBufferSimultaneousUse == rhs.nestedCommandBufferSimultaneousUse );
  61765. # endif
  61766. }
  61767. bool operator!=( PhysicalDeviceNestedCommandBufferFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61768. {
  61769. return !operator==( rhs );
  61770. }
  61771. #endif
  61772. public:
  61773. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT;
  61774. void * pNext = {};
  61775. VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBuffer = {};
  61776. VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferRendering = {};
  61777. VULKAN_HPP_NAMESPACE::Bool32 nestedCommandBufferSimultaneousUse = {};
  61778. };
  61779. template <>
  61780. struct CppType<StructureType, StructureType::ePhysicalDeviceNestedCommandBufferFeaturesEXT>
  61781. {
  61782. using Type = PhysicalDeviceNestedCommandBufferFeaturesEXT;
  61783. };
  61784. struct PhysicalDeviceNestedCommandBufferPropertiesEXT
  61785. {
  61786. using NativeType = VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
  61787. static const bool allowDuplicate = false;
  61788. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT;
  61789. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61790. VULKAN_HPP_CONSTEXPR PhysicalDeviceNestedCommandBufferPropertiesEXT( uint32_t maxCommandBufferNestingLevel_ = {},
  61791. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61792. : pNext( pNext_ )
  61793. , maxCommandBufferNestingLevel( maxCommandBufferNestingLevel_ )
  61794. {
  61795. }
  61796. VULKAN_HPP_CONSTEXPR
  61797. PhysicalDeviceNestedCommandBufferPropertiesEXT( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61798. PhysicalDeviceNestedCommandBufferPropertiesEXT( VkPhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61799. : PhysicalDeviceNestedCommandBufferPropertiesEXT( *reinterpret_cast<PhysicalDeviceNestedCommandBufferPropertiesEXT const *>( &rhs ) )
  61800. {
  61801. }
  61802. PhysicalDeviceNestedCommandBufferPropertiesEXT & operator=( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61803. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61804. PhysicalDeviceNestedCommandBufferPropertiesEXT & operator=( VkPhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61805. {
  61806. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT const *>( &rhs );
  61807. return *this;
  61808. }
  61809. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61810. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferPropertiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61811. {
  61812. pNext = pNext_;
  61813. return *this;
  61814. }
  61815. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNestedCommandBufferPropertiesEXT &
  61816. setMaxCommandBufferNestingLevel( uint32_t maxCommandBufferNestingLevel_ ) VULKAN_HPP_NOEXCEPT
  61817. {
  61818. maxCommandBufferNestingLevel = maxCommandBufferNestingLevel_;
  61819. return *this;
  61820. }
  61821. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61822. operator VkPhysicalDeviceNestedCommandBufferPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  61823. {
  61824. return *reinterpret_cast<const VkPhysicalDeviceNestedCommandBufferPropertiesEXT *>( this );
  61825. }
  61826. operator VkPhysicalDeviceNestedCommandBufferPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  61827. {
  61828. return *reinterpret_cast<VkPhysicalDeviceNestedCommandBufferPropertiesEXT *>( this );
  61829. }
  61830. #if defined( VULKAN_HPP_USE_REFLECT )
  61831. # if 14 <= VULKAN_HPP_CPP_VERSION
  61832. auto
  61833. # else
  61834. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  61835. # endif
  61836. reflect() const VULKAN_HPP_NOEXCEPT
  61837. {
  61838. return std::tie( sType, pNext, maxCommandBufferNestingLevel );
  61839. }
  61840. #endif
  61841. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61842. auto operator<=>( PhysicalDeviceNestedCommandBufferPropertiesEXT const & ) const = default;
  61843. #else
  61844. bool operator==( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61845. {
  61846. # if defined( VULKAN_HPP_USE_REFLECT )
  61847. return this->reflect() == rhs.reflect();
  61848. # else
  61849. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxCommandBufferNestingLevel == rhs.maxCommandBufferNestingLevel );
  61850. # endif
  61851. }
  61852. bool operator!=( PhysicalDeviceNestedCommandBufferPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61853. {
  61854. return !operator==( rhs );
  61855. }
  61856. #endif
  61857. public:
  61858. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT;
  61859. void * pNext = {};
  61860. uint32_t maxCommandBufferNestingLevel = {};
  61861. };
  61862. template <>
  61863. struct CppType<StructureType, StructureType::ePhysicalDeviceNestedCommandBufferPropertiesEXT>
  61864. {
  61865. using Type = PhysicalDeviceNestedCommandBufferPropertiesEXT;
  61866. };
  61867. struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT
  61868. {
  61869. using NativeType = VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
  61870. static const bool allowDuplicate = false;
  61871. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
  61872. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61873. VULKAN_HPP_CONSTEXPR PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap_ = {},
  61874. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61875. : pNext( pNext_ )
  61876. , nonSeamlessCubeMap( nonSeamlessCubeMap_ )
  61877. {
  61878. }
  61879. VULKAN_HPP_CONSTEXPR PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61880. PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61881. : PhysicalDeviceNonSeamlessCubeMapFeaturesEXT( *reinterpret_cast<PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const *>( &rhs ) )
  61882. {
  61883. }
  61884. PhysicalDeviceNonSeamlessCubeMapFeaturesEXT & operator=( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61885. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61886. PhysicalDeviceNonSeamlessCubeMapFeaturesEXT & operator=( VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61887. {
  61888. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const *>( &rhs );
  61889. return *this;
  61890. }
  61891. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61892. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNonSeamlessCubeMapFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61893. {
  61894. pNext = pNext_;
  61895. return *this;
  61896. }
  61897. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceNonSeamlessCubeMapFeaturesEXT &
  61898. setNonSeamlessCubeMap( VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap_ ) VULKAN_HPP_NOEXCEPT
  61899. {
  61900. nonSeamlessCubeMap = nonSeamlessCubeMap_;
  61901. return *this;
  61902. }
  61903. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  61904. operator VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  61905. {
  61906. return *reinterpret_cast<const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT *>( this );
  61907. }
  61908. operator VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  61909. {
  61910. return *reinterpret_cast<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT *>( this );
  61911. }
  61912. #if defined( VULKAN_HPP_USE_REFLECT )
  61913. # if 14 <= VULKAN_HPP_CPP_VERSION
  61914. auto
  61915. # else
  61916. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  61917. # endif
  61918. reflect() const VULKAN_HPP_NOEXCEPT
  61919. {
  61920. return std::tie( sType, pNext, nonSeamlessCubeMap );
  61921. }
  61922. #endif
  61923. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  61924. auto operator<=>( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & ) const = default;
  61925. #else
  61926. bool operator==( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61927. {
  61928. # if defined( VULKAN_HPP_USE_REFLECT )
  61929. return this->reflect() == rhs.reflect();
  61930. # else
  61931. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( nonSeamlessCubeMap == rhs.nonSeamlessCubeMap );
  61932. # endif
  61933. }
  61934. bool operator!=( PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  61935. {
  61936. return !operator==( rhs );
  61937. }
  61938. #endif
  61939. public:
  61940. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
  61941. void * pNext = {};
  61942. VULKAN_HPP_NAMESPACE::Bool32 nonSeamlessCubeMap = {};
  61943. };
  61944. template <>
  61945. struct CppType<StructureType, StructureType::ePhysicalDeviceNonSeamlessCubeMapFeaturesEXT>
  61946. {
  61947. using Type = PhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
  61948. };
  61949. struct PhysicalDeviceOpacityMicromapFeaturesEXT
  61950. {
  61951. using NativeType = VkPhysicalDeviceOpacityMicromapFeaturesEXT;
  61952. static const bool allowDuplicate = false;
  61953. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceOpacityMicromapFeaturesEXT;
  61954. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  61955. VULKAN_HPP_CONSTEXPR PhysicalDeviceOpacityMicromapFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 micromap_ = {},
  61956. VULKAN_HPP_NAMESPACE::Bool32 micromapCaptureReplay_ = {},
  61957. VULKAN_HPP_NAMESPACE::Bool32 micromapHostCommands_ = {},
  61958. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  61959. : pNext( pNext_ )
  61960. , micromap( micromap_ )
  61961. , micromapCaptureReplay( micromapCaptureReplay_ )
  61962. , micromapHostCommands( micromapHostCommands_ )
  61963. {
  61964. }
  61965. VULKAN_HPP_CONSTEXPR PhysicalDeviceOpacityMicromapFeaturesEXT( PhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61966. PhysicalDeviceOpacityMicromapFeaturesEXT( VkPhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61967. : PhysicalDeviceOpacityMicromapFeaturesEXT( *reinterpret_cast<PhysicalDeviceOpacityMicromapFeaturesEXT const *>( &rhs ) )
  61968. {
  61969. }
  61970. PhysicalDeviceOpacityMicromapFeaturesEXT & operator=( PhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  61971. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  61972. PhysicalDeviceOpacityMicromapFeaturesEXT & operator=( VkPhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  61973. {
  61974. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT const *>( &rhs );
  61975. return *this;
  61976. }
  61977. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  61978. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpacityMicromapFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  61979. {
  61980. pNext = pNext_;
  61981. return *this;
  61982. }
  61983. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpacityMicromapFeaturesEXT & setMicromap( VULKAN_HPP_NAMESPACE::Bool32 micromap_ ) VULKAN_HPP_NOEXCEPT
  61984. {
  61985. micromap = micromap_;
  61986. return *this;
  61987. }
  61988. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpacityMicromapFeaturesEXT &
  61989. setMicromapCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 micromapCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  61990. {
  61991. micromapCaptureReplay = micromapCaptureReplay_;
  61992. return *this;
  61993. }
  61994. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpacityMicromapFeaturesEXT &
  61995. setMicromapHostCommands( VULKAN_HPP_NAMESPACE::Bool32 micromapHostCommands_ ) VULKAN_HPP_NOEXCEPT
  61996. {
  61997. micromapHostCommands = micromapHostCommands_;
  61998. return *this;
  61999. }
  62000. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62001. operator VkPhysicalDeviceOpacityMicromapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  62002. {
  62003. return *reinterpret_cast<const VkPhysicalDeviceOpacityMicromapFeaturesEXT *>( this );
  62004. }
  62005. operator VkPhysicalDeviceOpacityMicromapFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  62006. {
  62007. return *reinterpret_cast<VkPhysicalDeviceOpacityMicromapFeaturesEXT *>( this );
  62008. }
  62009. #if defined( VULKAN_HPP_USE_REFLECT )
  62010. # if 14 <= VULKAN_HPP_CPP_VERSION
  62011. auto
  62012. # else
  62013. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  62014. void * const &,
  62015. VULKAN_HPP_NAMESPACE::Bool32 const &,
  62016. VULKAN_HPP_NAMESPACE::Bool32 const &,
  62017. VULKAN_HPP_NAMESPACE::Bool32 const &>
  62018. # endif
  62019. reflect() const VULKAN_HPP_NOEXCEPT
  62020. {
  62021. return std::tie( sType, pNext, micromap, micromapCaptureReplay, micromapHostCommands );
  62022. }
  62023. #endif
  62024. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62025. auto operator<=>( PhysicalDeviceOpacityMicromapFeaturesEXT const & ) const = default;
  62026. #else
  62027. bool operator==( PhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62028. {
  62029. # if defined( VULKAN_HPP_USE_REFLECT )
  62030. return this->reflect() == rhs.reflect();
  62031. # else
  62032. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( micromap == rhs.micromap ) && ( micromapCaptureReplay == rhs.micromapCaptureReplay ) &&
  62033. ( micromapHostCommands == rhs.micromapHostCommands );
  62034. # endif
  62035. }
  62036. bool operator!=( PhysicalDeviceOpacityMicromapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62037. {
  62038. return !operator==( rhs );
  62039. }
  62040. #endif
  62041. public:
  62042. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceOpacityMicromapFeaturesEXT;
  62043. void * pNext = {};
  62044. VULKAN_HPP_NAMESPACE::Bool32 micromap = {};
  62045. VULKAN_HPP_NAMESPACE::Bool32 micromapCaptureReplay = {};
  62046. VULKAN_HPP_NAMESPACE::Bool32 micromapHostCommands = {};
  62047. };
  62048. template <>
  62049. struct CppType<StructureType, StructureType::ePhysicalDeviceOpacityMicromapFeaturesEXT>
  62050. {
  62051. using Type = PhysicalDeviceOpacityMicromapFeaturesEXT;
  62052. };
  62053. struct PhysicalDeviceOpacityMicromapPropertiesEXT
  62054. {
  62055. using NativeType = VkPhysicalDeviceOpacityMicromapPropertiesEXT;
  62056. static const bool allowDuplicate = false;
  62057. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceOpacityMicromapPropertiesEXT;
  62058. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62059. VULKAN_HPP_CONSTEXPR PhysicalDeviceOpacityMicromapPropertiesEXT( uint32_t maxOpacity2StateSubdivisionLevel_ = {},
  62060. uint32_t maxOpacity4StateSubdivisionLevel_ = {},
  62061. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62062. : pNext( pNext_ )
  62063. , maxOpacity2StateSubdivisionLevel( maxOpacity2StateSubdivisionLevel_ )
  62064. , maxOpacity4StateSubdivisionLevel( maxOpacity4StateSubdivisionLevel_ )
  62065. {
  62066. }
  62067. VULKAN_HPP_CONSTEXPR PhysicalDeviceOpacityMicromapPropertiesEXT( PhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62068. PhysicalDeviceOpacityMicromapPropertiesEXT( VkPhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62069. : PhysicalDeviceOpacityMicromapPropertiesEXT( *reinterpret_cast<PhysicalDeviceOpacityMicromapPropertiesEXT const *>( &rhs ) )
  62070. {
  62071. }
  62072. PhysicalDeviceOpacityMicromapPropertiesEXT & operator=( PhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62073. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62074. PhysicalDeviceOpacityMicromapPropertiesEXT & operator=( VkPhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62075. {
  62076. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT const *>( &rhs );
  62077. return *this;
  62078. }
  62079. operator VkPhysicalDeviceOpacityMicromapPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  62080. {
  62081. return *reinterpret_cast<const VkPhysicalDeviceOpacityMicromapPropertiesEXT *>( this );
  62082. }
  62083. operator VkPhysicalDeviceOpacityMicromapPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  62084. {
  62085. return *reinterpret_cast<VkPhysicalDeviceOpacityMicromapPropertiesEXT *>( this );
  62086. }
  62087. #if defined( VULKAN_HPP_USE_REFLECT )
  62088. # if 14 <= VULKAN_HPP_CPP_VERSION
  62089. auto
  62090. # else
  62091. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &>
  62092. # endif
  62093. reflect() const VULKAN_HPP_NOEXCEPT
  62094. {
  62095. return std::tie( sType, pNext, maxOpacity2StateSubdivisionLevel, maxOpacity4StateSubdivisionLevel );
  62096. }
  62097. #endif
  62098. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62099. auto operator<=>( PhysicalDeviceOpacityMicromapPropertiesEXT const & ) const = default;
  62100. #else
  62101. bool operator==( PhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62102. {
  62103. # if defined( VULKAN_HPP_USE_REFLECT )
  62104. return this->reflect() == rhs.reflect();
  62105. # else
  62106. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxOpacity2StateSubdivisionLevel == rhs.maxOpacity2StateSubdivisionLevel ) &&
  62107. ( maxOpacity4StateSubdivisionLevel == rhs.maxOpacity4StateSubdivisionLevel );
  62108. # endif
  62109. }
  62110. bool operator!=( PhysicalDeviceOpacityMicromapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62111. {
  62112. return !operator==( rhs );
  62113. }
  62114. #endif
  62115. public:
  62116. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceOpacityMicromapPropertiesEXT;
  62117. void * pNext = {};
  62118. uint32_t maxOpacity2StateSubdivisionLevel = {};
  62119. uint32_t maxOpacity4StateSubdivisionLevel = {};
  62120. };
  62121. template <>
  62122. struct CppType<StructureType, StructureType::ePhysicalDeviceOpacityMicromapPropertiesEXT>
  62123. {
  62124. using Type = PhysicalDeviceOpacityMicromapPropertiesEXT;
  62125. };
  62126. struct PhysicalDeviceOpticalFlowFeaturesNV
  62127. {
  62128. using NativeType = VkPhysicalDeviceOpticalFlowFeaturesNV;
  62129. static const bool allowDuplicate = false;
  62130. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceOpticalFlowFeaturesNV;
  62131. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62132. VULKAN_HPP_CONSTEXPR PhysicalDeviceOpticalFlowFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 opticalFlow_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62133. : pNext( pNext_ )
  62134. , opticalFlow( opticalFlow_ )
  62135. {
  62136. }
  62137. VULKAN_HPP_CONSTEXPR PhysicalDeviceOpticalFlowFeaturesNV( PhysicalDeviceOpticalFlowFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62138. PhysicalDeviceOpticalFlowFeaturesNV( VkPhysicalDeviceOpticalFlowFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  62139. : PhysicalDeviceOpticalFlowFeaturesNV( *reinterpret_cast<PhysicalDeviceOpticalFlowFeaturesNV const *>( &rhs ) )
  62140. {
  62141. }
  62142. PhysicalDeviceOpticalFlowFeaturesNV & operator=( PhysicalDeviceOpticalFlowFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62143. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62144. PhysicalDeviceOpticalFlowFeaturesNV & operator=( VkPhysicalDeviceOpticalFlowFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  62145. {
  62146. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV const *>( &rhs );
  62147. return *this;
  62148. }
  62149. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62150. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpticalFlowFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62151. {
  62152. pNext = pNext_;
  62153. return *this;
  62154. }
  62155. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceOpticalFlowFeaturesNV & setOpticalFlow( VULKAN_HPP_NAMESPACE::Bool32 opticalFlow_ ) VULKAN_HPP_NOEXCEPT
  62156. {
  62157. opticalFlow = opticalFlow_;
  62158. return *this;
  62159. }
  62160. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62161. operator VkPhysicalDeviceOpticalFlowFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  62162. {
  62163. return *reinterpret_cast<const VkPhysicalDeviceOpticalFlowFeaturesNV *>( this );
  62164. }
  62165. operator VkPhysicalDeviceOpticalFlowFeaturesNV &() VULKAN_HPP_NOEXCEPT
  62166. {
  62167. return *reinterpret_cast<VkPhysicalDeviceOpticalFlowFeaturesNV *>( this );
  62168. }
  62169. #if defined( VULKAN_HPP_USE_REFLECT )
  62170. # if 14 <= VULKAN_HPP_CPP_VERSION
  62171. auto
  62172. # else
  62173. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  62174. # endif
  62175. reflect() const VULKAN_HPP_NOEXCEPT
  62176. {
  62177. return std::tie( sType, pNext, opticalFlow );
  62178. }
  62179. #endif
  62180. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62181. auto operator<=>( PhysicalDeviceOpticalFlowFeaturesNV const & ) const = default;
  62182. #else
  62183. bool operator==( PhysicalDeviceOpticalFlowFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  62184. {
  62185. # if defined( VULKAN_HPP_USE_REFLECT )
  62186. return this->reflect() == rhs.reflect();
  62187. # else
  62188. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( opticalFlow == rhs.opticalFlow );
  62189. # endif
  62190. }
  62191. bool operator!=( PhysicalDeviceOpticalFlowFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  62192. {
  62193. return !operator==( rhs );
  62194. }
  62195. #endif
  62196. public:
  62197. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceOpticalFlowFeaturesNV;
  62198. void * pNext = {};
  62199. VULKAN_HPP_NAMESPACE::Bool32 opticalFlow = {};
  62200. };
  62201. template <>
  62202. struct CppType<StructureType, StructureType::ePhysicalDeviceOpticalFlowFeaturesNV>
  62203. {
  62204. using Type = PhysicalDeviceOpticalFlowFeaturesNV;
  62205. };
  62206. struct PhysicalDeviceOpticalFlowPropertiesNV
  62207. {
  62208. using NativeType = VkPhysicalDeviceOpticalFlowPropertiesNV;
  62209. static const bool allowDuplicate = false;
  62210. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceOpticalFlowPropertiesNV;
  62211. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62212. VULKAN_HPP_CONSTEXPR PhysicalDeviceOpticalFlowPropertiesNV( VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV supportedOutputGridSizes_ = {},
  62213. VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV supportedHintGridSizes_ = {},
  62214. VULKAN_HPP_NAMESPACE::Bool32 hintSupported_ = {},
  62215. VULKAN_HPP_NAMESPACE::Bool32 costSupported_ = {},
  62216. VULKAN_HPP_NAMESPACE::Bool32 bidirectionalFlowSupported_ = {},
  62217. VULKAN_HPP_NAMESPACE::Bool32 globalFlowSupported_ = {},
  62218. uint32_t minWidth_ = {},
  62219. uint32_t minHeight_ = {},
  62220. uint32_t maxWidth_ = {},
  62221. uint32_t maxHeight_ = {},
  62222. uint32_t maxNumRegionsOfInterest_ = {},
  62223. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62224. : pNext( pNext_ )
  62225. , supportedOutputGridSizes( supportedOutputGridSizes_ )
  62226. , supportedHintGridSizes( supportedHintGridSizes_ )
  62227. , hintSupported( hintSupported_ )
  62228. , costSupported( costSupported_ )
  62229. , bidirectionalFlowSupported( bidirectionalFlowSupported_ )
  62230. , globalFlowSupported( globalFlowSupported_ )
  62231. , minWidth( minWidth_ )
  62232. , minHeight( minHeight_ )
  62233. , maxWidth( maxWidth_ )
  62234. , maxHeight( maxHeight_ )
  62235. , maxNumRegionsOfInterest( maxNumRegionsOfInterest_ )
  62236. {
  62237. }
  62238. VULKAN_HPP_CONSTEXPR PhysicalDeviceOpticalFlowPropertiesNV( PhysicalDeviceOpticalFlowPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62239. PhysicalDeviceOpticalFlowPropertiesNV( VkPhysicalDeviceOpticalFlowPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  62240. : PhysicalDeviceOpticalFlowPropertiesNV( *reinterpret_cast<PhysicalDeviceOpticalFlowPropertiesNV const *>( &rhs ) )
  62241. {
  62242. }
  62243. PhysicalDeviceOpticalFlowPropertiesNV & operator=( PhysicalDeviceOpticalFlowPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62244. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62245. PhysicalDeviceOpticalFlowPropertiesNV & operator=( VkPhysicalDeviceOpticalFlowPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  62246. {
  62247. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV const *>( &rhs );
  62248. return *this;
  62249. }
  62250. operator VkPhysicalDeviceOpticalFlowPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  62251. {
  62252. return *reinterpret_cast<const VkPhysicalDeviceOpticalFlowPropertiesNV *>( this );
  62253. }
  62254. operator VkPhysicalDeviceOpticalFlowPropertiesNV &() VULKAN_HPP_NOEXCEPT
  62255. {
  62256. return *reinterpret_cast<VkPhysicalDeviceOpticalFlowPropertiesNV *>( this );
  62257. }
  62258. #if defined( VULKAN_HPP_USE_REFLECT )
  62259. # if 14 <= VULKAN_HPP_CPP_VERSION
  62260. auto
  62261. # else
  62262. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  62263. void * const &,
  62264. VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV const &,
  62265. VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV const &,
  62266. VULKAN_HPP_NAMESPACE::Bool32 const &,
  62267. VULKAN_HPP_NAMESPACE::Bool32 const &,
  62268. VULKAN_HPP_NAMESPACE::Bool32 const &,
  62269. VULKAN_HPP_NAMESPACE::Bool32 const &,
  62270. uint32_t const &,
  62271. uint32_t const &,
  62272. uint32_t const &,
  62273. uint32_t const &,
  62274. uint32_t const &>
  62275. # endif
  62276. reflect() const VULKAN_HPP_NOEXCEPT
  62277. {
  62278. return std::tie( sType,
  62279. pNext,
  62280. supportedOutputGridSizes,
  62281. supportedHintGridSizes,
  62282. hintSupported,
  62283. costSupported,
  62284. bidirectionalFlowSupported,
  62285. globalFlowSupported,
  62286. minWidth,
  62287. minHeight,
  62288. maxWidth,
  62289. maxHeight,
  62290. maxNumRegionsOfInterest );
  62291. }
  62292. #endif
  62293. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62294. auto operator<=>( PhysicalDeviceOpticalFlowPropertiesNV const & ) const = default;
  62295. #else
  62296. bool operator==( PhysicalDeviceOpticalFlowPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  62297. {
  62298. # if defined( VULKAN_HPP_USE_REFLECT )
  62299. return this->reflect() == rhs.reflect();
  62300. # else
  62301. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supportedOutputGridSizes == rhs.supportedOutputGridSizes ) &&
  62302. ( supportedHintGridSizes == rhs.supportedHintGridSizes ) && ( hintSupported == rhs.hintSupported ) && ( costSupported == rhs.costSupported ) &&
  62303. ( bidirectionalFlowSupported == rhs.bidirectionalFlowSupported ) && ( globalFlowSupported == rhs.globalFlowSupported ) &&
  62304. ( minWidth == rhs.minWidth ) && ( minHeight == rhs.minHeight ) && ( maxWidth == rhs.maxWidth ) && ( maxHeight == rhs.maxHeight ) &&
  62305. ( maxNumRegionsOfInterest == rhs.maxNumRegionsOfInterest );
  62306. # endif
  62307. }
  62308. bool operator!=( PhysicalDeviceOpticalFlowPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  62309. {
  62310. return !operator==( rhs );
  62311. }
  62312. #endif
  62313. public:
  62314. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceOpticalFlowPropertiesNV;
  62315. void * pNext = {};
  62316. VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV supportedOutputGridSizes = {};
  62317. VULKAN_HPP_NAMESPACE::OpticalFlowGridSizeFlagsNV supportedHintGridSizes = {};
  62318. VULKAN_HPP_NAMESPACE::Bool32 hintSupported = {};
  62319. VULKAN_HPP_NAMESPACE::Bool32 costSupported = {};
  62320. VULKAN_HPP_NAMESPACE::Bool32 bidirectionalFlowSupported = {};
  62321. VULKAN_HPP_NAMESPACE::Bool32 globalFlowSupported = {};
  62322. uint32_t minWidth = {};
  62323. uint32_t minHeight = {};
  62324. uint32_t maxWidth = {};
  62325. uint32_t maxHeight = {};
  62326. uint32_t maxNumRegionsOfInterest = {};
  62327. };
  62328. template <>
  62329. struct CppType<StructureType, StructureType::ePhysicalDeviceOpticalFlowPropertiesNV>
  62330. {
  62331. using Type = PhysicalDeviceOpticalFlowPropertiesNV;
  62332. };
  62333. struct PhysicalDevicePCIBusInfoPropertiesEXT
  62334. {
  62335. using NativeType = VkPhysicalDevicePCIBusInfoPropertiesEXT;
  62336. static const bool allowDuplicate = false;
  62337. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
  62338. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62339. VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT(
  62340. uint32_t pciDomain_ = {}, uint32_t pciBus_ = {}, uint32_t pciDevice_ = {}, uint32_t pciFunction_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62341. : pNext( pNext_ )
  62342. , pciDomain( pciDomain_ )
  62343. , pciBus( pciBus_ )
  62344. , pciDevice( pciDevice_ )
  62345. , pciFunction( pciFunction_ )
  62346. {
  62347. }
  62348. VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62349. PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62350. : PhysicalDevicePCIBusInfoPropertiesEXT( *reinterpret_cast<PhysicalDevicePCIBusInfoPropertiesEXT const *>( &rhs ) )
  62351. {
  62352. }
  62353. PhysicalDevicePCIBusInfoPropertiesEXT & operator=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62354. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62355. PhysicalDevicePCIBusInfoPropertiesEXT & operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62356. {
  62357. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT const *>( &rhs );
  62358. return *this;
  62359. }
  62360. operator VkPhysicalDevicePCIBusInfoPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  62361. {
  62362. return *reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT *>( this );
  62363. }
  62364. operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  62365. {
  62366. return *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT *>( this );
  62367. }
  62368. #if defined( VULKAN_HPP_USE_REFLECT )
  62369. # if 14 <= VULKAN_HPP_CPP_VERSION
  62370. auto
  62371. # else
  62372. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &, uint32_t const &>
  62373. # endif
  62374. reflect() const VULKAN_HPP_NOEXCEPT
  62375. {
  62376. return std::tie( sType, pNext, pciDomain, pciBus, pciDevice, pciFunction );
  62377. }
  62378. #endif
  62379. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62380. auto operator<=>( PhysicalDevicePCIBusInfoPropertiesEXT const & ) const = default;
  62381. #else
  62382. bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62383. {
  62384. # if defined( VULKAN_HPP_USE_REFLECT )
  62385. return this->reflect() == rhs.reflect();
  62386. # else
  62387. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pciDomain == rhs.pciDomain ) && ( pciBus == rhs.pciBus ) && ( pciDevice == rhs.pciDevice ) &&
  62388. ( pciFunction == rhs.pciFunction );
  62389. # endif
  62390. }
  62391. bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62392. {
  62393. return !operator==( rhs );
  62394. }
  62395. #endif
  62396. public:
  62397. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
  62398. void * pNext = {};
  62399. uint32_t pciDomain = {};
  62400. uint32_t pciBus = {};
  62401. uint32_t pciDevice = {};
  62402. uint32_t pciFunction = {};
  62403. };
  62404. template <>
  62405. struct CppType<StructureType, StructureType::ePhysicalDevicePciBusInfoPropertiesEXT>
  62406. {
  62407. using Type = PhysicalDevicePCIBusInfoPropertiesEXT;
  62408. };
  62409. struct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
  62410. {
  62411. using NativeType = VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
  62412. static const bool allowDuplicate = false;
  62413. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
  62414. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62415. VULKAN_HPP_CONSTEXPR PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory_ = {},
  62416. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62417. : pNext( pNext_ )
  62418. , pageableDeviceLocalMemory( pageableDeviceLocalMemory_ )
  62419. {
  62420. }
  62421. VULKAN_HPP_CONSTEXPR
  62422. PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62423. PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62424. : PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT( *reinterpret_cast<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const *>( &rhs ) )
  62425. {
  62426. }
  62427. PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT &
  62428. operator=( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62429. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62430. PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT & operator=( VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62431. {
  62432. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const *>( &rhs );
  62433. return *this;
  62434. }
  62435. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62436. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62437. {
  62438. pNext = pNext_;
  62439. return *this;
  62440. }
  62441. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT &
  62442. setPageableDeviceLocalMemory( VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory_ ) VULKAN_HPP_NOEXCEPT
  62443. {
  62444. pageableDeviceLocalMemory = pageableDeviceLocalMemory_;
  62445. return *this;
  62446. }
  62447. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62448. operator VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  62449. {
  62450. return *reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT *>( this );
  62451. }
  62452. operator VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  62453. {
  62454. return *reinterpret_cast<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT *>( this );
  62455. }
  62456. #if defined( VULKAN_HPP_USE_REFLECT )
  62457. # if 14 <= VULKAN_HPP_CPP_VERSION
  62458. auto
  62459. # else
  62460. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  62461. # endif
  62462. reflect() const VULKAN_HPP_NOEXCEPT
  62463. {
  62464. return std::tie( sType, pNext, pageableDeviceLocalMemory );
  62465. }
  62466. #endif
  62467. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62468. auto operator<=>( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & ) const = default;
  62469. #else
  62470. bool operator==( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62471. {
  62472. # if defined( VULKAN_HPP_USE_REFLECT )
  62473. return this->reflect() == rhs.reflect();
  62474. # else
  62475. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pageableDeviceLocalMemory == rhs.pageableDeviceLocalMemory );
  62476. # endif
  62477. }
  62478. bool operator!=( PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62479. {
  62480. return !operator==( rhs );
  62481. }
  62482. #endif
  62483. public:
  62484. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
  62485. void * pNext = {};
  62486. VULKAN_HPP_NAMESPACE::Bool32 pageableDeviceLocalMemory = {};
  62487. };
  62488. template <>
  62489. struct CppType<StructureType, StructureType::ePhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>
  62490. {
  62491. using Type = PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
  62492. };
  62493. struct PhysicalDevicePerformanceQueryFeaturesKHR
  62494. {
  62495. using NativeType = VkPhysicalDevicePerformanceQueryFeaturesKHR;
  62496. static const bool allowDuplicate = false;
  62497. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
  62498. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62499. VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {},
  62500. VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {},
  62501. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62502. : pNext( pNext_ )
  62503. , performanceCounterQueryPools( performanceCounterQueryPools_ )
  62504. , performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ )
  62505. {
  62506. }
  62507. VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62508. PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  62509. : PhysicalDevicePerformanceQueryFeaturesKHR( *reinterpret_cast<PhysicalDevicePerformanceQueryFeaturesKHR const *>( &rhs ) )
  62510. {
  62511. }
  62512. PhysicalDevicePerformanceQueryFeaturesKHR & operator=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62513. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62514. PhysicalDevicePerformanceQueryFeaturesKHR & operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  62515. {
  62516. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR const *>( &rhs );
  62517. return *this;
  62518. }
  62519. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62520. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62521. {
  62522. pNext = pNext_;
  62523. return *this;
  62524. }
  62525. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR &
  62526. setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT
  62527. {
  62528. performanceCounterQueryPools = performanceCounterQueryPools_;
  62529. return *this;
  62530. }
  62531. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR &
  62532. setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT
  62533. {
  62534. performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_;
  62535. return *this;
  62536. }
  62537. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62538. operator VkPhysicalDevicePerformanceQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  62539. {
  62540. return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR *>( this );
  62541. }
  62542. operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  62543. {
  62544. return *reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR *>( this );
  62545. }
  62546. #if defined( VULKAN_HPP_USE_REFLECT )
  62547. # if 14 <= VULKAN_HPP_CPP_VERSION
  62548. auto
  62549. # else
  62550. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  62551. # endif
  62552. reflect() const VULKAN_HPP_NOEXCEPT
  62553. {
  62554. return std::tie( sType, pNext, performanceCounterQueryPools, performanceCounterMultipleQueryPools );
  62555. }
  62556. #endif
  62557. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62558. auto operator<=>( PhysicalDevicePerformanceQueryFeaturesKHR const & ) const = default;
  62559. #else
  62560. bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62561. {
  62562. # if defined( VULKAN_HPP_USE_REFLECT )
  62563. return this->reflect() == rhs.reflect();
  62564. # else
  62565. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( performanceCounterQueryPools == rhs.performanceCounterQueryPools ) &&
  62566. ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools );
  62567. # endif
  62568. }
  62569. bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62570. {
  62571. return !operator==( rhs );
  62572. }
  62573. #endif
  62574. public:
  62575. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR;
  62576. void * pNext = {};
  62577. VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {};
  62578. VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {};
  62579. };
  62580. template <>
  62581. struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR>
  62582. {
  62583. using Type = PhysicalDevicePerformanceQueryFeaturesKHR;
  62584. };
  62585. struct PhysicalDevicePerformanceQueryPropertiesKHR
  62586. {
  62587. using NativeType = VkPhysicalDevicePerformanceQueryPropertiesKHR;
  62588. static const bool allowDuplicate = false;
  62589. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
  62590. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62591. VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {},
  62592. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62593. : pNext( pNext_ )
  62594. , allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ )
  62595. {
  62596. }
  62597. VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62598. PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  62599. : PhysicalDevicePerformanceQueryPropertiesKHR( *reinterpret_cast<PhysicalDevicePerformanceQueryPropertiesKHR const *>( &rhs ) )
  62600. {
  62601. }
  62602. PhysicalDevicePerformanceQueryPropertiesKHR & operator=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62603. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62604. PhysicalDevicePerformanceQueryPropertiesKHR & operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  62605. {
  62606. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR const *>( &rhs );
  62607. return *this;
  62608. }
  62609. operator VkPhysicalDevicePerformanceQueryPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  62610. {
  62611. return *reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR *>( this );
  62612. }
  62613. operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  62614. {
  62615. return *reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR *>( this );
  62616. }
  62617. #if defined( VULKAN_HPP_USE_REFLECT )
  62618. # if 14 <= VULKAN_HPP_CPP_VERSION
  62619. auto
  62620. # else
  62621. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  62622. # endif
  62623. reflect() const VULKAN_HPP_NOEXCEPT
  62624. {
  62625. return std::tie( sType, pNext, allowCommandBufferQueryCopies );
  62626. }
  62627. #endif
  62628. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62629. auto operator<=>( PhysicalDevicePerformanceQueryPropertiesKHR const & ) const = default;
  62630. #else
  62631. bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62632. {
  62633. # if defined( VULKAN_HPP_USE_REFLECT )
  62634. return this->reflect() == rhs.reflect();
  62635. # else
  62636. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies );
  62637. # endif
  62638. }
  62639. bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62640. {
  62641. return !operator==( rhs );
  62642. }
  62643. #endif
  62644. public:
  62645. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR;
  62646. void * pNext = {};
  62647. VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {};
  62648. };
  62649. template <>
  62650. struct CppType<StructureType, StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR>
  62651. {
  62652. using Type = PhysicalDevicePerformanceQueryPropertiesKHR;
  62653. };
  62654. struct PhysicalDevicePipelineCreationCacheControlFeatures
  62655. {
  62656. using NativeType = VkPhysicalDevicePipelineCreationCacheControlFeatures;
  62657. static const bool allowDuplicate = false;
  62658. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeatures;
  62659. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62660. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeatures( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {},
  62661. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62662. : pNext( pNext_ )
  62663. , pipelineCreationCacheControl( pipelineCreationCacheControl_ )
  62664. {
  62665. }
  62666. VULKAN_HPP_CONSTEXPR
  62667. PhysicalDevicePipelineCreationCacheControlFeatures( PhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62668. PhysicalDevicePipelineCreationCacheControlFeatures( VkPhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  62669. : PhysicalDevicePipelineCreationCacheControlFeatures( *reinterpret_cast<PhysicalDevicePipelineCreationCacheControlFeatures const *>( &rhs ) )
  62670. {
  62671. }
  62672. PhysicalDevicePipelineCreationCacheControlFeatures &
  62673. operator=( PhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62674. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62675. PhysicalDevicePipelineCreationCacheControlFeatures & operator=( VkPhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  62676. {
  62677. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures const *>( &rhs );
  62678. return *this;
  62679. }
  62680. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62681. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineCreationCacheControlFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62682. {
  62683. pNext = pNext_;
  62684. return *this;
  62685. }
  62686. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineCreationCacheControlFeatures &
  62687. setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
  62688. {
  62689. pipelineCreationCacheControl = pipelineCreationCacheControl_;
  62690. return *this;
  62691. }
  62692. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62693. operator VkPhysicalDevicePipelineCreationCacheControlFeatures const &() const VULKAN_HPP_NOEXCEPT
  62694. {
  62695. return *reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures *>( this );
  62696. }
  62697. operator VkPhysicalDevicePipelineCreationCacheControlFeatures &() VULKAN_HPP_NOEXCEPT
  62698. {
  62699. return *reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeatures *>( this );
  62700. }
  62701. #if defined( VULKAN_HPP_USE_REFLECT )
  62702. # if 14 <= VULKAN_HPP_CPP_VERSION
  62703. auto
  62704. # else
  62705. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  62706. # endif
  62707. reflect() const VULKAN_HPP_NOEXCEPT
  62708. {
  62709. return std::tie( sType, pNext, pipelineCreationCacheControl );
  62710. }
  62711. #endif
  62712. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62713. auto operator<=>( PhysicalDevicePipelineCreationCacheControlFeatures const & ) const = default;
  62714. #else
  62715. bool operator==( PhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  62716. {
  62717. # if defined( VULKAN_HPP_USE_REFLECT )
  62718. return this->reflect() == rhs.reflect();
  62719. # else
  62720. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl );
  62721. # endif
  62722. }
  62723. bool operator!=( PhysicalDevicePipelineCreationCacheControlFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  62724. {
  62725. return !operator==( rhs );
  62726. }
  62727. #endif
  62728. public:
  62729. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeatures;
  62730. void * pNext = {};
  62731. VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {};
  62732. };
  62733. template <>
  62734. struct CppType<StructureType, StructureType::ePhysicalDevicePipelineCreationCacheControlFeatures>
  62735. {
  62736. using Type = PhysicalDevicePipelineCreationCacheControlFeatures;
  62737. };
  62738. using PhysicalDevicePipelineCreationCacheControlFeaturesEXT = PhysicalDevicePipelineCreationCacheControlFeatures;
  62739. struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
  62740. {
  62741. using NativeType = VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
  62742. static const bool allowDuplicate = false;
  62743. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
  62744. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62745. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {},
  62746. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62747. : pNext( pNext_ )
  62748. , pipelineExecutableInfo( pipelineExecutableInfo_ )
  62749. {
  62750. }
  62751. VULKAN_HPP_CONSTEXPR
  62752. PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62753. PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  62754. : PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( *reinterpret_cast<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>( &rhs ) )
  62755. {
  62756. }
  62757. PhysicalDevicePipelineExecutablePropertiesFeaturesKHR &
  62758. operator=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62759. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62760. PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  62761. {
  62762. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const *>( &rhs );
  62763. return *this;
  62764. }
  62765. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62766. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62767. {
  62768. pNext = pNext_;
  62769. return *this;
  62770. }
  62771. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR &
  62772. setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT
  62773. {
  62774. pipelineExecutableInfo = pipelineExecutableInfo_;
  62775. return *this;
  62776. }
  62777. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62778. operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  62779. {
  62780. return *reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR *>( this );
  62781. }
  62782. operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  62783. {
  62784. return *reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR *>( this );
  62785. }
  62786. #if defined( VULKAN_HPP_USE_REFLECT )
  62787. # if 14 <= VULKAN_HPP_CPP_VERSION
  62788. auto
  62789. # else
  62790. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  62791. # endif
  62792. reflect() const VULKAN_HPP_NOEXCEPT
  62793. {
  62794. return std::tie( sType, pNext, pipelineExecutableInfo );
  62795. }
  62796. #endif
  62797. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62798. auto operator<=>( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & ) const = default;
  62799. #else
  62800. bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62801. {
  62802. # if defined( VULKAN_HPP_USE_REFLECT )
  62803. return this->reflect() == rhs.reflect();
  62804. # else
  62805. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo );
  62806. # endif
  62807. }
  62808. bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  62809. {
  62810. return !operator==( rhs );
  62811. }
  62812. #endif
  62813. public:
  62814. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
  62815. void * pNext = {};
  62816. VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {};
  62817. };
  62818. template <>
  62819. struct CppType<StructureType, StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR>
  62820. {
  62821. using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
  62822. };
  62823. struct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
  62824. {
  62825. using NativeType = VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
  62826. static const bool allowDuplicate = false;
  62827. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
  62828. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62829. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelineLibraryGroupHandles_ = {},
  62830. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62831. : pNext( pNext_ )
  62832. , pipelineLibraryGroupHandles( pipelineLibraryGroupHandles_ )
  62833. {
  62834. }
  62835. VULKAN_HPP_CONSTEXPR
  62836. PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62837. PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62838. : PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const *>( &rhs ) )
  62839. {
  62840. }
  62841. PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT &
  62842. operator=( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62843. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62844. PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT & operator=( VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62845. {
  62846. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const *>( &rhs );
  62847. return *this;
  62848. }
  62849. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62850. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62851. {
  62852. pNext = pNext_;
  62853. return *this;
  62854. }
  62855. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT &
  62856. setPipelineLibraryGroupHandles( VULKAN_HPP_NAMESPACE::Bool32 pipelineLibraryGroupHandles_ ) VULKAN_HPP_NOEXCEPT
  62857. {
  62858. pipelineLibraryGroupHandles = pipelineLibraryGroupHandles_;
  62859. return *this;
  62860. }
  62861. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62862. operator VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  62863. {
  62864. return *reinterpret_cast<const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT *>( this );
  62865. }
  62866. operator VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  62867. {
  62868. return *reinterpret_cast<VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT *>( this );
  62869. }
  62870. #if defined( VULKAN_HPP_USE_REFLECT )
  62871. # if 14 <= VULKAN_HPP_CPP_VERSION
  62872. auto
  62873. # else
  62874. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  62875. # endif
  62876. reflect() const VULKAN_HPP_NOEXCEPT
  62877. {
  62878. return std::tie( sType, pNext, pipelineLibraryGroupHandles );
  62879. }
  62880. #endif
  62881. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62882. auto operator<=>( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & ) const = default;
  62883. #else
  62884. bool operator==( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62885. {
  62886. # if defined( VULKAN_HPP_USE_REFLECT )
  62887. return this->reflect() == rhs.reflect();
  62888. # else
  62889. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineLibraryGroupHandles == rhs.pipelineLibraryGroupHandles );
  62890. # endif
  62891. }
  62892. bool operator!=( PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62893. {
  62894. return !operator==( rhs );
  62895. }
  62896. #endif
  62897. public:
  62898. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
  62899. void * pNext = {};
  62900. VULKAN_HPP_NAMESPACE::Bool32 pipelineLibraryGroupHandles = {};
  62901. };
  62902. template <>
  62903. struct CppType<StructureType, StructureType::ePhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT>
  62904. {
  62905. using Type = PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
  62906. };
  62907. struct PhysicalDevicePipelinePropertiesFeaturesEXT
  62908. {
  62909. using NativeType = VkPhysicalDevicePipelinePropertiesFeaturesEXT;
  62910. static const bool allowDuplicate = false;
  62911. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelinePropertiesFeaturesEXT;
  62912. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62913. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelinePropertiesFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier_ = {},
  62914. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62915. : pNext( pNext_ )
  62916. , pipelinePropertiesIdentifier( pipelinePropertiesIdentifier_ )
  62917. {
  62918. }
  62919. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelinePropertiesFeaturesEXT( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62920. PhysicalDevicePipelinePropertiesFeaturesEXT( VkPhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62921. : PhysicalDevicePipelinePropertiesFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelinePropertiesFeaturesEXT const *>( &rhs ) )
  62922. {
  62923. }
  62924. PhysicalDevicePipelinePropertiesFeaturesEXT & operator=( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  62925. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  62926. PhysicalDevicePipelinePropertiesFeaturesEXT & operator=( VkPhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  62927. {
  62928. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT const *>( &rhs );
  62929. return *this;
  62930. }
  62931. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  62932. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelinePropertiesFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  62933. {
  62934. pNext = pNext_;
  62935. return *this;
  62936. }
  62937. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelinePropertiesFeaturesEXT &
  62938. setPipelinePropertiesIdentifier( VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier_ ) VULKAN_HPP_NOEXCEPT
  62939. {
  62940. pipelinePropertiesIdentifier = pipelinePropertiesIdentifier_;
  62941. return *this;
  62942. }
  62943. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  62944. operator VkPhysicalDevicePipelinePropertiesFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  62945. {
  62946. return *reinterpret_cast<const VkPhysicalDevicePipelinePropertiesFeaturesEXT *>( this );
  62947. }
  62948. operator VkPhysicalDevicePipelinePropertiesFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  62949. {
  62950. return *reinterpret_cast<VkPhysicalDevicePipelinePropertiesFeaturesEXT *>( this );
  62951. }
  62952. #if defined( VULKAN_HPP_USE_REFLECT )
  62953. # if 14 <= VULKAN_HPP_CPP_VERSION
  62954. auto
  62955. # else
  62956. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  62957. # endif
  62958. reflect() const VULKAN_HPP_NOEXCEPT
  62959. {
  62960. return std::tie( sType, pNext, pipelinePropertiesIdentifier );
  62961. }
  62962. #endif
  62963. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  62964. auto operator<=>( PhysicalDevicePipelinePropertiesFeaturesEXT const & ) const = default;
  62965. #else
  62966. bool operator==( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62967. {
  62968. # if defined( VULKAN_HPP_USE_REFLECT )
  62969. return this->reflect() == rhs.reflect();
  62970. # else
  62971. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelinePropertiesIdentifier == rhs.pipelinePropertiesIdentifier );
  62972. # endif
  62973. }
  62974. bool operator!=( PhysicalDevicePipelinePropertiesFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  62975. {
  62976. return !operator==( rhs );
  62977. }
  62978. #endif
  62979. public:
  62980. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelinePropertiesFeaturesEXT;
  62981. void * pNext = {};
  62982. VULKAN_HPP_NAMESPACE::Bool32 pipelinePropertiesIdentifier = {};
  62983. };
  62984. template <>
  62985. struct CppType<StructureType, StructureType::ePhysicalDevicePipelinePropertiesFeaturesEXT>
  62986. {
  62987. using Type = PhysicalDevicePipelinePropertiesFeaturesEXT;
  62988. };
  62989. struct PhysicalDevicePipelineProtectedAccessFeaturesEXT
  62990. {
  62991. using NativeType = VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
  62992. static const bool allowDuplicate = false;
  62993. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineProtectedAccessFeaturesEXT;
  62994. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  62995. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineProtectedAccessFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelineProtectedAccess_ = {},
  62996. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  62997. : pNext( pNext_ )
  62998. , pipelineProtectedAccess( pipelineProtectedAccess_ )
  62999. {
  63000. }
  63001. VULKAN_HPP_CONSTEXPR
  63002. PhysicalDevicePipelineProtectedAccessFeaturesEXT( PhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63003. PhysicalDevicePipelineProtectedAccessFeaturesEXT( VkPhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63004. : PhysicalDevicePipelineProtectedAccessFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelineProtectedAccessFeaturesEXT const *>( &rhs ) )
  63005. {
  63006. }
  63007. PhysicalDevicePipelineProtectedAccessFeaturesEXT & operator=( PhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63008. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63009. PhysicalDevicePipelineProtectedAccessFeaturesEXT & operator=( VkPhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63010. {
  63011. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT const *>( &rhs );
  63012. return *this;
  63013. }
  63014. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63015. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineProtectedAccessFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63016. {
  63017. pNext = pNext_;
  63018. return *this;
  63019. }
  63020. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineProtectedAccessFeaturesEXT &
  63021. setPipelineProtectedAccess( VULKAN_HPP_NAMESPACE::Bool32 pipelineProtectedAccess_ ) VULKAN_HPP_NOEXCEPT
  63022. {
  63023. pipelineProtectedAccess = pipelineProtectedAccess_;
  63024. return *this;
  63025. }
  63026. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63027. operator VkPhysicalDevicePipelineProtectedAccessFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  63028. {
  63029. return *reinterpret_cast<const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT *>( this );
  63030. }
  63031. operator VkPhysicalDevicePipelineProtectedAccessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  63032. {
  63033. return *reinterpret_cast<VkPhysicalDevicePipelineProtectedAccessFeaturesEXT *>( this );
  63034. }
  63035. #if defined( VULKAN_HPP_USE_REFLECT )
  63036. # if 14 <= VULKAN_HPP_CPP_VERSION
  63037. auto
  63038. # else
  63039. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  63040. # endif
  63041. reflect() const VULKAN_HPP_NOEXCEPT
  63042. {
  63043. return std::tie( sType, pNext, pipelineProtectedAccess );
  63044. }
  63045. #endif
  63046. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63047. auto operator<=>( PhysicalDevicePipelineProtectedAccessFeaturesEXT const & ) const = default;
  63048. #else
  63049. bool operator==( PhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63050. {
  63051. # if defined( VULKAN_HPP_USE_REFLECT )
  63052. return this->reflect() == rhs.reflect();
  63053. # else
  63054. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineProtectedAccess == rhs.pipelineProtectedAccess );
  63055. # endif
  63056. }
  63057. bool operator!=( PhysicalDevicePipelineProtectedAccessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63058. {
  63059. return !operator==( rhs );
  63060. }
  63061. #endif
  63062. public:
  63063. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineProtectedAccessFeaturesEXT;
  63064. void * pNext = {};
  63065. VULKAN_HPP_NAMESPACE::Bool32 pipelineProtectedAccess = {};
  63066. };
  63067. template <>
  63068. struct CppType<StructureType, StructureType::ePhysicalDevicePipelineProtectedAccessFeaturesEXT>
  63069. {
  63070. using Type = PhysicalDevicePipelineProtectedAccessFeaturesEXT;
  63071. };
  63072. struct PhysicalDevicePipelineRobustnessFeaturesEXT
  63073. {
  63074. using NativeType = VkPhysicalDevicePipelineRobustnessFeaturesEXT;
  63075. static const bool allowDuplicate = false;
  63076. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineRobustnessFeaturesEXT;
  63077. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63078. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineRobustnessFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness_ = {},
  63079. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63080. : pNext( pNext_ )
  63081. , pipelineRobustness( pipelineRobustness_ )
  63082. {
  63083. }
  63084. VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineRobustnessFeaturesEXT( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63085. PhysicalDevicePipelineRobustnessFeaturesEXT( VkPhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63086. : PhysicalDevicePipelineRobustnessFeaturesEXT( *reinterpret_cast<PhysicalDevicePipelineRobustnessFeaturesEXT const *>( &rhs ) )
  63087. {
  63088. }
  63089. PhysicalDevicePipelineRobustnessFeaturesEXT & operator=( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63090. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63091. PhysicalDevicePipelineRobustnessFeaturesEXT & operator=( VkPhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63092. {
  63093. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT const *>( &rhs );
  63094. return *this;
  63095. }
  63096. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63097. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineRobustnessFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63098. {
  63099. pNext = pNext_;
  63100. return *this;
  63101. }
  63102. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineRobustnessFeaturesEXT &
  63103. setPipelineRobustness( VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness_ ) VULKAN_HPP_NOEXCEPT
  63104. {
  63105. pipelineRobustness = pipelineRobustness_;
  63106. return *this;
  63107. }
  63108. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63109. operator VkPhysicalDevicePipelineRobustnessFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  63110. {
  63111. return *reinterpret_cast<const VkPhysicalDevicePipelineRobustnessFeaturesEXT *>( this );
  63112. }
  63113. operator VkPhysicalDevicePipelineRobustnessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  63114. {
  63115. return *reinterpret_cast<VkPhysicalDevicePipelineRobustnessFeaturesEXT *>( this );
  63116. }
  63117. #if defined( VULKAN_HPP_USE_REFLECT )
  63118. # if 14 <= VULKAN_HPP_CPP_VERSION
  63119. auto
  63120. # else
  63121. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  63122. # endif
  63123. reflect() const VULKAN_HPP_NOEXCEPT
  63124. {
  63125. return std::tie( sType, pNext, pipelineRobustness );
  63126. }
  63127. #endif
  63128. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63129. auto operator<=>( PhysicalDevicePipelineRobustnessFeaturesEXT const & ) const = default;
  63130. #else
  63131. bool operator==( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63132. {
  63133. # if defined( VULKAN_HPP_USE_REFLECT )
  63134. return this->reflect() == rhs.reflect();
  63135. # else
  63136. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineRobustness == rhs.pipelineRobustness );
  63137. # endif
  63138. }
  63139. bool operator!=( PhysicalDevicePipelineRobustnessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63140. {
  63141. return !operator==( rhs );
  63142. }
  63143. #endif
  63144. public:
  63145. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineRobustnessFeaturesEXT;
  63146. void * pNext = {};
  63147. VULKAN_HPP_NAMESPACE::Bool32 pipelineRobustness = {};
  63148. };
  63149. template <>
  63150. struct CppType<StructureType, StructureType::ePhysicalDevicePipelineRobustnessFeaturesEXT>
  63151. {
  63152. using Type = PhysicalDevicePipelineRobustnessFeaturesEXT;
  63153. };
  63154. struct PhysicalDevicePipelineRobustnessPropertiesEXT
  63155. {
  63156. using NativeType = VkPhysicalDevicePipelineRobustnessPropertiesEXT;
  63157. static const bool allowDuplicate = false;
  63158. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineRobustnessPropertiesEXT;
  63159. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63160. VULKAN_HPP_CONSTEXPR
  63161. PhysicalDevicePipelineRobustnessPropertiesEXT( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers_ =
  63162. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  63163. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers_ =
  63164. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  63165. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs_ =
  63166. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  63167. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT defaultRobustnessImages_ =
  63168. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault,
  63169. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63170. : pNext( pNext_ )
  63171. , defaultRobustnessStorageBuffers( defaultRobustnessStorageBuffers_ )
  63172. , defaultRobustnessUniformBuffers( defaultRobustnessUniformBuffers_ )
  63173. , defaultRobustnessVertexInputs( defaultRobustnessVertexInputs_ )
  63174. , defaultRobustnessImages( defaultRobustnessImages_ )
  63175. {
  63176. }
  63177. VULKAN_HPP_CONSTEXPR
  63178. PhysicalDevicePipelineRobustnessPropertiesEXT( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63179. PhysicalDevicePipelineRobustnessPropertiesEXT( VkPhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63180. : PhysicalDevicePipelineRobustnessPropertiesEXT( *reinterpret_cast<PhysicalDevicePipelineRobustnessPropertiesEXT const *>( &rhs ) )
  63181. {
  63182. }
  63183. PhysicalDevicePipelineRobustnessPropertiesEXT & operator=( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63184. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63185. PhysicalDevicePipelineRobustnessPropertiesEXT & operator=( VkPhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63186. {
  63187. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT const *>( &rhs );
  63188. return *this;
  63189. }
  63190. operator VkPhysicalDevicePipelineRobustnessPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  63191. {
  63192. return *reinterpret_cast<const VkPhysicalDevicePipelineRobustnessPropertiesEXT *>( this );
  63193. }
  63194. operator VkPhysicalDevicePipelineRobustnessPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  63195. {
  63196. return *reinterpret_cast<VkPhysicalDevicePipelineRobustnessPropertiesEXT *>( this );
  63197. }
  63198. #if defined( VULKAN_HPP_USE_REFLECT )
  63199. # if 14 <= VULKAN_HPP_CPP_VERSION
  63200. auto
  63201. # else
  63202. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  63203. void * const &,
  63204. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  63205. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  63206. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  63207. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT const &>
  63208. # endif
  63209. reflect() const VULKAN_HPP_NOEXCEPT
  63210. {
  63211. return std::tie( sType, pNext, defaultRobustnessStorageBuffers, defaultRobustnessUniformBuffers, defaultRobustnessVertexInputs, defaultRobustnessImages );
  63212. }
  63213. #endif
  63214. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63215. auto operator<=>( PhysicalDevicePipelineRobustnessPropertiesEXT const & ) const = default;
  63216. #else
  63217. bool operator==( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63218. {
  63219. # if defined( VULKAN_HPP_USE_REFLECT )
  63220. return this->reflect() == rhs.reflect();
  63221. # else
  63222. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( defaultRobustnessStorageBuffers == rhs.defaultRobustnessStorageBuffers ) &&
  63223. ( defaultRobustnessUniformBuffers == rhs.defaultRobustnessUniformBuffers ) &&
  63224. ( defaultRobustnessVertexInputs == rhs.defaultRobustnessVertexInputs ) && ( defaultRobustnessImages == rhs.defaultRobustnessImages );
  63225. # endif
  63226. }
  63227. bool operator!=( PhysicalDevicePipelineRobustnessPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63228. {
  63229. return !operator==( rhs );
  63230. }
  63231. #endif
  63232. public:
  63233. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineRobustnessPropertiesEXT;
  63234. void * pNext = {};
  63235. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers =
  63236. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  63237. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers =
  63238. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  63239. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs =
  63240. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  63241. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT defaultRobustnessImages = VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault;
  63242. };
  63243. template <>
  63244. struct CppType<StructureType, StructureType::ePhysicalDevicePipelineRobustnessPropertiesEXT>
  63245. {
  63246. using Type = PhysicalDevicePipelineRobustnessPropertiesEXT;
  63247. };
  63248. struct PhysicalDevicePointClippingProperties
  63249. {
  63250. using NativeType = VkPhysicalDevicePointClippingProperties;
  63251. static const bool allowDuplicate = false;
  63252. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePointClippingProperties;
  63253. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63254. VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties(
  63255. VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes,
  63256. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63257. : pNext( pNext_ )
  63258. , pointClippingBehavior( pointClippingBehavior_ )
  63259. {
  63260. }
  63261. VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63262. PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  63263. : PhysicalDevicePointClippingProperties( *reinterpret_cast<PhysicalDevicePointClippingProperties const *>( &rhs ) )
  63264. {
  63265. }
  63266. PhysicalDevicePointClippingProperties & operator=( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63267. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63268. PhysicalDevicePointClippingProperties & operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  63269. {
  63270. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties const *>( &rhs );
  63271. return *this;
  63272. }
  63273. operator VkPhysicalDevicePointClippingProperties const &() const VULKAN_HPP_NOEXCEPT
  63274. {
  63275. return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties *>( this );
  63276. }
  63277. operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT
  63278. {
  63279. return *reinterpret_cast<VkPhysicalDevicePointClippingProperties *>( this );
  63280. }
  63281. #if defined( VULKAN_HPP_USE_REFLECT )
  63282. # if 14 <= VULKAN_HPP_CPP_VERSION
  63283. auto
  63284. # else
  63285. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PointClippingBehavior const &>
  63286. # endif
  63287. reflect() const VULKAN_HPP_NOEXCEPT
  63288. {
  63289. return std::tie( sType, pNext, pointClippingBehavior );
  63290. }
  63291. #endif
  63292. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63293. auto operator<=>( PhysicalDevicePointClippingProperties const & ) const = default;
  63294. #else
  63295. bool operator==( PhysicalDevicePointClippingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  63296. {
  63297. # if defined( VULKAN_HPP_USE_REFLECT )
  63298. return this->reflect() == rhs.reflect();
  63299. # else
  63300. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pointClippingBehavior == rhs.pointClippingBehavior );
  63301. # endif
  63302. }
  63303. bool operator!=( PhysicalDevicePointClippingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  63304. {
  63305. return !operator==( rhs );
  63306. }
  63307. #endif
  63308. public:
  63309. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties;
  63310. void * pNext = {};
  63311. VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
  63312. };
  63313. template <>
  63314. struct CppType<StructureType, StructureType::ePhysicalDevicePointClippingProperties>
  63315. {
  63316. using Type = PhysicalDevicePointClippingProperties;
  63317. };
  63318. using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
  63319. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  63320. struct PhysicalDevicePortabilitySubsetFeaturesKHR
  63321. {
  63322. using NativeType = VkPhysicalDevicePortabilitySubsetFeaturesKHR;
  63323. static const bool allowDuplicate = false;
  63324. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
  63325. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63326. VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ = {},
  63327. VULKAN_HPP_NAMESPACE::Bool32 events_ = {},
  63328. VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ = {},
  63329. VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ = {},
  63330. VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ = {},
  63331. VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ = {},
  63332. VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ = {},
  63333. VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ = {},
  63334. VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ = {},
  63335. VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ = {},
  63336. VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ = {},
  63337. VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ = {},
  63338. VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ = {},
  63339. VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ = {},
  63340. VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ = {},
  63341. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63342. : pNext( pNext_ )
  63343. , constantAlphaColorBlendFactors( constantAlphaColorBlendFactors_ )
  63344. , events( events_ )
  63345. , imageViewFormatReinterpretation( imageViewFormatReinterpretation_ )
  63346. , imageViewFormatSwizzle( imageViewFormatSwizzle_ )
  63347. , imageView2DOn3DImage( imageView2DOn3DImage_ )
  63348. , multisampleArrayImage( multisampleArrayImage_ )
  63349. , mutableComparisonSamplers( mutableComparisonSamplers_ )
  63350. , pointPolygons( pointPolygons_ )
  63351. , samplerMipLodBias( samplerMipLodBias_ )
  63352. , separateStencilMaskRef( separateStencilMaskRef_ )
  63353. , shaderSampleRateInterpolationFunctions( shaderSampleRateInterpolationFunctions_ )
  63354. , tessellationIsolines( tessellationIsolines_ )
  63355. , tessellationPointMode( tessellationPointMode_ )
  63356. , triangleFans( triangleFans_ )
  63357. , vertexAttributeAccessBeyondStride( vertexAttributeAccessBeyondStride_ )
  63358. {
  63359. }
  63360. VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63361. PhysicalDevicePortabilitySubsetFeaturesKHR( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  63362. : PhysicalDevicePortabilitySubsetFeaturesKHR( *reinterpret_cast<PhysicalDevicePortabilitySubsetFeaturesKHR const *>( &rhs ) )
  63363. {
  63364. }
  63365. PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63366. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63367. PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  63368. {
  63369. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR const *>( &rhs );
  63370. return *this;
  63371. }
  63372. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63373. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63374. {
  63375. pNext = pNext_;
  63376. return *this;
  63377. }
  63378. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63379. setConstantAlphaColorBlendFactors( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT
  63380. {
  63381. constantAlphaColorBlendFactors = constantAlphaColorBlendFactors_;
  63382. return *this;
  63383. }
  63384. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setEvents( VULKAN_HPP_NAMESPACE::Bool32 events_ ) VULKAN_HPP_NOEXCEPT
  63385. {
  63386. events = events_;
  63387. return *this;
  63388. }
  63389. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63390. setImageViewFormatReinterpretation( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT
  63391. {
  63392. imageViewFormatReinterpretation = imageViewFormatReinterpretation_;
  63393. return *this;
  63394. }
  63395. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63396. setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT
  63397. {
  63398. imageViewFormatSwizzle = imageViewFormatSwizzle_;
  63399. return *this;
  63400. }
  63401. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63402. setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT
  63403. {
  63404. imageView2DOn3DImage = imageView2DOn3DImage_;
  63405. return *this;
  63406. }
  63407. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63408. setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT
  63409. {
  63410. multisampleArrayImage = multisampleArrayImage_;
  63411. return *this;
  63412. }
  63413. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63414. setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT
  63415. {
  63416. mutableComparisonSamplers = mutableComparisonSamplers_;
  63417. return *this;
  63418. }
  63419. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setPointPolygons( VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ ) VULKAN_HPP_NOEXCEPT
  63420. {
  63421. pointPolygons = pointPolygons_;
  63422. return *this;
  63423. }
  63424. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63425. setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT
  63426. {
  63427. samplerMipLodBias = samplerMipLodBias_;
  63428. return *this;
  63429. }
  63430. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63431. setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT
  63432. {
  63433. separateStencilMaskRef = separateStencilMaskRef_;
  63434. return *this;
  63435. }
  63436. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63437. setShaderSampleRateInterpolationFunctions( VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ ) VULKAN_HPP_NOEXCEPT
  63438. {
  63439. shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions_;
  63440. return *this;
  63441. }
  63442. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63443. setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT
  63444. {
  63445. tessellationIsolines = tessellationIsolines_;
  63446. return *this;
  63447. }
  63448. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63449. setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT
  63450. {
  63451. tessellationPointMode = tessellationPointMode_;
  63452. return *this;
  63453. }
  63454. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & setTriangleFans( VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ ) VULKAN_HPP_NOEXCEPT
  63455. {
  63456. triangleFans = triangleFans_;
  63457. return *this;
  63458. }
  63459. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR &
  63460. setVertexAttributeAccessBeyondStride( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT
  63461. {
  63462. vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_;
  63463. return *this;
  63464. }
  63465. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63466. operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  63467. {
  63468. return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR *>( this );
  63469. }
  63470. operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  63471. {
  63472. return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>( this );
  63473. }
  63474. # if defined( VULKAN_HPP_USE_REFLECT )
  63475. # if 14 <= VULKAN_HPP_CPP_VERSION
  63476. auto
  63477. # else
  63478. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  63479. void * const &,
  63480. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63481. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63482. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63483. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63484. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63485. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63486. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63487. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63488. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63489. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63490. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63491. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63492. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63493. VULKAN_HPP_NAMESPACE::Bool32 const &,
  63494. VULKAN_HPP_NAMESPACE::Bool32 const &>
  63495. # endif
  63496. reflect() const VULKAN_HPP_NOEXCEPT
  63497. {
  63498. return std::tie( sType,
  63499. pNext,
  63500. constantAlphaColorBlendFactors,
  63501. events,
  63502. imageViewFormatReinterpretation,
  63503. imageViewFormatSwizzle,
  63504. imageView2DOn3DImage,
  63505. multisampleArrayImage,
  63506. mutableComparisonSamplers,
  63507. pointPolygons,
  63508. samplerMipLodBias,
  63509. separateStencilMaskRef,
  63510. shaderSampleRateInterpolationFunctions,
  63511. tessellationIsolines,
  63512. tessellationPointMode,
  63513. triangleFans,
  63514. vertexAttributeAccessBeyondStride );
  63515. }
  63516. # endif
  63517. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63518. auto operator<=>( PhysicalDevicePortabilitySubsetFeaturesKHR const & ) const = default;
  63519. # else
  63520. bool operator==( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  63521. {
  63522. # if defined( VULKAN_HPP_USE_REFLECT )
  63523. return this->reflect() == rhs.reflect();
  63524. # else
  63525. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( constantAlphaColorBlendFactors == rhs.constantAlphaColorBlendFactors ) &&
  63526. ( events == rhs.events ) && ( imageViewFormatReinterpretation == rhs.imageViewFormatReinterpretation ) &&
  63527. ( imageViewFormatSwizzle == rhs.imageViewFormatSwizzle ) && ( imageView2DOn3DImage == rhs.imageView2DOn3DImage ) &&
  63528. ( multisampleArrayImage == rhs.multisampleArrayImage ) && ( mutableComparisonSamplers == rhs.mutableComparisonSamplers ) &&
  63529. ( pointPolygons == rhs.pointPolygons ) && ( samplerMipLodBias == rhs.samplerMipLodBias ) &&
  63530. ( separateStencilMaskRef == rhs.separateStencilMaskRef ) &&
  63531. ( shaderSampleRateInterpolationFunctions == rhs.shaderSampleRateInterpolationFunctions ) && ( tessellationIsolines == rhs.tessellationIsolines ) &&
  63532. ( tessellationPointMode == rhs.tessellationPointMode ) && ( triangleFans == rhs.triangleFans ) &&
  63533. ( vertexAttributeAccessBeyondStride == rhs.vertexAttributeAccessBeyondStride );
  63534. # endif
  63535. }
  63536. bool operator!=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  63537. {
  63538. return !operator==( rhs );
  63539. }
  63540. # endif
  63541. public:
  63542. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR;
  63543. void * pNext = {};
  63544. VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors = {};
  63545. VULKAN_HPP_NAMESPACE::Bool32 events = {};
  63546. VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation = {};
  63547. VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle = {};
  63548. VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage = {};
  63549. VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage = {};
  63550. VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers = {};
  63551. VULKAN_HPP_NAMESPACE::Bool32 pointPolygons = {};
  63552. VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias = {};
  63553. VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef = {};
  63554. VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions = {};
  63555. VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines = {};
  63556. VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode = {};
  63557. VULKAN_HPP_NAMESPACE::Bool32 triangleFans = {};
  63558. VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride = {};
  63559. };
  63560. template <>
  63561. struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR>
  63562. {
  63563. using Type = PhysicalDevicePortabilitySubsetFeaturesKHR;
  63564. };
  63565. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  63566. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  63567. struct PhysicalDevicePortabilitySubsetPropertiesKHR
  63568. {
  63569. using NativeType = VkPhysicalDevicePortabilitySubsetPropertiesKHR;
  63570. static const bool allowDuplicate = false;
  63571. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
  63572. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63573. VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( uint32_t minVertexInputBindingStrideAlignment_ = {},
  63574. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63575. : pNext( pNext_ )
  63576. , minVertexInputBindingStrideAlignment( minVertexInputBindingStrideAlignment_ )
  63577. {
  63578. }
  63579. VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63580. PhysicalDevicePortabilitySubsetPropertiesKHR( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  63581. : PhysicalDevicePortabilitySubsetPropertiesKHR( *reinterpret_cast<PhysicalDevicePortabilitySubsetPropertiesKHR const *>( &rhs ) )
  63582. {
  63583. }
  63584. PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63585. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63586. PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  63587. {
  63588. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR const *>( &rhs );
  63589. return *this;
  63590. }
  63591. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63592. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63593. {
  63594. pNext = pNext_;
  63595. return *this;
  63596. }
  63597. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetPropertiesKHR &
  63598. setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT
  63599. {
  63600. minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_;
  63601. return *this;
  63602. }
  63603. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63604. operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  63605. {
  63606. return *reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR *>( this );
  63607. }
  63608. operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  63609. {
  63610. return *reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR *>( this );
  63611. }
  63612. # if defined( VULKAN_HPP_USE_REFLECT )
  63613. # if 14 <= VULKAN_HPP_CPP_VERSION
  63614. auto
  63615. # else
  63616. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  63617. # endif
  63618. reflect() const VULKAN_HPP_NOEXCEPT
  63619. {
  63620. return std::tie( sType, pNext, minVertexInputBindingStrideAlignment );
  63621. }
  63622. # endif
  63623. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63624. auto operator<=>( PhysicalDevicePortabilitySubsetPropertiesKHR const & ) const = default;
  63625. # else
  63626. bool operator==( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  63627. {
  63628. # if defined( VULKAN_HPP_USE_REFLECT )
  63629. return this->reflect() == rhs.reflect();
  63630. # else
  63631. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minVertexInputBindingStrideAlignment == rhs.minVertexInputBindingStrideAlignment );
  63632. # endif
  63633. }
  63634. bool operator!=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  63635. {
  63636. return !operator==( rhs );
  63637. }
  63638. # endif
  63639. public:
  63640. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR;
  63641. void * pNext = {};
  63642. uint32_t minVertexInputBindingStrideAlignment = {};
  63643. };
  63644. template <>
  63645. struct CppType<StructureType, StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR>
  63646. {
  63647. using Type = PhysicalDevicePortabilitySubsetPropertiesKHR;
  63648. };
  63649. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  63650. struct PhysicalDevicePresentBarrierFeaturesNV
  63651. {
  63652. using NativeType = VkPhysicalDevicePresentBarrierFeaturesNV;
  63653. static const bool allowDuplicate = false;
  63654. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePresentBarrierFeaturesNV;
  63655. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63656. VULKAN_HPP_CONSTEXPR PhysicalDevicePresentBarrierFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 presentBarrier_ = {},
  63657. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63658. : pNext( pNext_ )
  63659. , presentBarrier( presentBarrier_ )
  63660. {
  63661. }
  63662. VULKAN_HPP_CONSTEXPR PhysicalDevicePresentBarrierFeaturesNV( PhysicalDevicePresentBarrierFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63663. PhysicalDevicePresentBarrierFeaturesNV( VkPhysicalDevicePresentBarrierFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  63664. : PhysicalDevicePresentBarrierFeaturesNV( *reinterpret_cast<PhysicalDevicePresentBarrierFeaturesNV const *>( &rhs ) )
  63665. {
  63666. }
  63667. PhysicalDevicePresentBarrierFeaturesNV & operator=( PhysicalDevicePresentBarrierFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63668. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63669. PhysicalDevicePresentBarrierFeaturesNV & operator=( VkPhysicalDevicePresentBarrierFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  63670. {
  63671. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV const *>( &rhs );
  63672. return *this;
  63673. }
  63674. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63675. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentBarrierFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63676. {
  63677. pNext = pNext_;
  63678. return *this;
  63679. }
  63680. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentBarrierFeaturesNV & setPresentBarrier( VULKAN_HPP_NAMESPACE::Bool32 presentBarrier_ ) VULKAN_HPP_NOEXCEPT
  63681. {
  63682. presentBarrier = presentBarrier_;
  63683. return *this;
  63684. }
  63685. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63686. operator VkPhysicalDevicePresentBarrierFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  63687. {
  63688. return *reinterpret_cast<const VkPhysicalDevicePresentBarrierFeaturesNV *>( this );
  63689. }
  63690. operator VkPhysicalDevicePresentBarrierFeaturesNV &() VULKAN_HPP_NOEXCEPT
  63691. {
  63692. return *reinterpret_cast<VkPhysicalDevicePresentBarrierFeaturesNV *>( this );
  63693. }
  63694. #if defined( VULKAN_HPP_USE_REFLECT )
  63695. # if 14 <= VULKAN_HPP_CPP_VERSION
  63696. auto
  63697. # else
  63698. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  63699. # endif
  63700. reflect() const VULKAN_HPP_NOEXCEPT
  63701. {
  63702. return std::tie( sType, pNext, presentBarrier );
  63703. }
  63704. #endif
  63705. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63706. auto operator<=>( PhysicalDevicePresentBarrierFeaturesNV const & ) const = default;
  63707. #else
  63708. bool operator==( PhysicalDevicePresentBarrierFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  63709. {
  63710. # if defined( VULKAN_HPP_USE_REFLECT )
  63711. return this->reflect() == rhs.reflect();
  63712. # else
  63713. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentBarrier == rhs.presentBarrier );
  63714. # endif
  63715. }
  63716. bool operator!=( PhysicalDevicePresentBarrierFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  63717. {
  63718. return !operator==( rhs );
  63719. }
  63720. #endif
  63721. public:
  63722. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentBarrierFeaturesNV;
  63723. void * pNext = {};
  63724. VULKAN_HPP_NAMESPACE::Bool32 presentBarrier = {};
  63725. };
  63726. template <>
  63727. struct CppType<StructureType, StructureType::ePhysicalDevicePresentBarrierFeaturesNV>
  63728. {
  63729. using Type = PhysicalDevicePresentBarrierFeaturesNV;
  63730. };
  63731. struct PhysicalDevicePresentIdFeaturesKHR
  63732. {
  63733. using NativeType = VkPhysicalDevicePresentIdFeaturesKHR;
  63734. static const bool allowDuplicate = false;
  63735. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePresentIdFeaturesKHR;
  63736. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63737. VULKAN_HPP_CONSTEXPR PhysicalDevicePresentIdFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 presentId_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63738. : pNext( pNext_ )
  63739. , presentId( presentId_ )
  63740. {
  63741. }
  63742. VULKAN_HPP_CONSTEXPR PhysicalDevicePresentIdFeaturesKHR( PhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63743. PhysicalDevicePresentIdFeaturesKHR( VkPhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  63744. : PhysicalDevicePresentIdFeaturesKHR( *reinterpret_cast<PhysicalDevicePresentIdFeaturesKHR const *>( &rhs ) )
  63745. {
  63746. }
  63747. PhysicalDevicePresentIdFeaturesKHR & operator=( PhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63748. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63749. PhysicalDevicePresentIdFeaturesKHR & operator=( VkPhysicalDevicePresentIdFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  63750. {
  63751. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR const *>( &rhs );
  63752. return *this;
  63753. }
  63754. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63755. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentIdFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63756. {
  63757. pNext = pNext_;
  63758. return *this;
  63759. }
  63760. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentIdFeaturesKHR & setPresentId( VULKAN_HPP_NAMESPACE::Bool32 presentId_ ) VULKAN_HPP_NOEXCEPT
  63761. {
  63762. presentId = presentId_;
  63763. return *this;
  63764. }
  63765. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63766. operator VkPhysicalDevicePresentIdFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  63767. {
  63768. return *reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR *>( this );
  63769. }
  63770. operator VkPhysicalDevicePresentIdFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  63771. {
  63772. return *reinterpret_cast<VkPhysicalDevicePresentIdFeaturesKHR *>( this );
  63773. }
  63774. #if defined( VULKAN_HPP_USE_REFLECT )
  63775. # if 14 <= VULKAN_HPP_CPP_VERSION
  63776. auto
  63777. # else
  63778. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  63779. # endif
  63780. reflect() const VULKAN_HPP_NOEXCEPT
  63781. {
  63782. return std::tie( sType, pNext, presentId );
  63783. }
  63784. #endif
  63785. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63786. auto operator<=>( PhysicalDevicePresentIdFeaturesKHR const & ) const = default;
  63787. #else
  63788. bool operator==( PhysicalDevicePresentIdFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  63789. {
  63790. # if defined( VULKAN_HPP_USE_REFLECT )
  63791. return this->reflect() == rhs.reflect();
  63792. # else
  63793. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentId == rhs.presentId );
  63794. # endif
  63795. }
  63796. bool operator!=( PhysicalDevicePresentIdFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  63797. {
  63798. return !operator==( rhs );
  63799. }
  63800. #endif
  63801. public:
  63802. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentIdFeaturesKHR;
  63803. void * pNext = {};
  63804. VULKAN_HPP_NAMESPACE::Bool32 presentId = {};
  63805. };
  63806. template <>
  63807. struct CppType<StructureType, StructureType::ePhysicalDevicePresentIdFeaturesKHR>
  63808. {
  63809. using Type = PhysicalDevicePresentIdFeaturesKHR;
  63810. };
  63811. struct PhysicalDevicePresentWaitFeaturesKHR
  63812. {
  63813. using NativeType = VkPhysicalDevicePresentWaitFeaturesKHR;
  63814. static const bool allowDuplicate = false;
  63815. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePresentWaitFeaturesKHR;
  63816. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63817. VULKAN_HPP_CONSTEXPR PhysicalDevicePresentWaitFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 presentWait_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63818. : pNext( pNext_ )
  63819. , presentWait( presentWait_ )
  63820. {
  63821. }
  63822. VULKAN_HPP_CONSTEXPR PhysicalDevicePresentWaitFeaturesKHR( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63823. PhysicalDevicePresentWaitFeaturesKHR( VkPhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  63824. : PhysicalDevicePresentWaitFeaturesKHR( *reinterpret_cast<PhysicalDevicePresentWaitFeaturesKHR const *>( &rhs ) )
  63825. {
  63826. }
  63827. PhysicalDevicePresentWaitFeaturesKHR & operator=( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63828. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63829. PhysicalDevicePresentWaitFeaturesKHR & operator=( VkPhysicalDevicePresentWaitFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  63830. {
  63831. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR const *>( &rhs );
  63832. return *this;
  63833. }
  63834. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63835. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentWaitFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63836. {
  63837. pNext = pNext_;
  63838. return *this;
  63839. }
  63840. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentWaitFeaturesKHR & setPresentWait( VULKAN_HPP_NAMESPACE::Bool32 presentWait_ ) VULKAN_HPP_NOEXCEPT
  63841. {
  63842. presentWait = presentWait_;
  63843. return *this;
  63844. }
  63845. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63846. operator VkPhysicalDevicePresentWaitFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  63847. {
  63848. return *reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR *>( this );
  63849. }
  63850. operator VkPhysicalDevicePresentWaitFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  63851. {
  63852. return *reinterpret_cast<VkPhysicalDevicePresentWaitFeaturesKHR *>( this );
  63853. }
  63854. #if defined( VULKAN_HPP_USE_REFLECT )
  63855. # if 14 <= VULKAN_HPP_CPP_VERSION
  63856. auto
  63857. # else
  63858. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  63859. # endif
  63860. reflect() const VULKAN_HPP_NOEXCEPT
  63861. {
  63862. return std::tie( sType, pNext, presentWait );
  63863. }
  63864. #endif
  63865. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63866. auto operator<=>( PhysicalDevicePresentWaitFeaturesKHR const & ) const = default;
  63867. #else
  63868. bool operator==( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  63869. {
  63870. # if defined( VULKAN_HPP_USE_REFLECT )
  63871. return this->reflect() == rhs.reflect();
  63872. # else
  63873. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentWait == rhs.presentWait );
  63874. # endif
  63875. }
  63876. bool operator!=( PhysicalDevicePresentWaitFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  63877. {
  63878. return !operator==( rhs );
  63879. }
  63880. #endif
  63881. public:
  63882. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentWaitFeaturesKHR;
  63883. void * pNext = {};
  63884. VULKAN_HPP_NAMESPACE::Bool32 presentWait = {};
  63885. };
  63886. template <>
  63887. struct CppType<StructureType, StructureType::ePhysicalDevicePresentWaitFeaturesKHR>
  63888. {
  63889. using Type = PhysicalDevicePresentWaitFeaturesKHR;
  63890. };
  63891. struct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
  63892. {
  63893. using NativeType = VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
  63894. static const bool allowDuplicate = false;
  63895. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
  63896. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63897. VULKAN_HPP_CONSTEXPR PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart_ = {},
  63898. VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart_ = {},
  63899. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63900. : pNext( pNext_ )
  63901. , primitiveTopologyListRestart( primitiveTopologyListRestart_ )
  63902. , primitiveTopologyPatchListRestart( primitiveTopologyPatchListRestart_ )
  63903. {
  63904. }
  63905. VULKAN_HPP_CONSTEXPR
  63906. PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63907. PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63908. : PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT( *reinterpret_cast<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const *>( &rhs ) )
  63909. {
  63910. }
  63911. PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &
  63912. operator=( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  63913. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  63914. PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT & operator=( VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  63915. {
  63916. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const *>( &rhs );
  63917. return *this;
  63918. }
  63919. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  63920. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  63921. {
  63922. pNext = pNext_;
  63923. return *this;
  63924. }
  63925. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &
  63926. setPrimitiveTopologyListRestart( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart_ ) VULKAN_HPP_NOEXCEPT
  63927. {
  63928. primitiveTopologyListRestart = primitiveTopologyListRestart_;
  63929. return *this;
  63930. }
  63931. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &
  63932. setPrimitiveTopologyPatchListRestart( VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart_ ) VULKAN_HPP_NOEXCEPT
  63933. {
  63934. primitiveTopologyPatchListRestart = primitiveTopologyPatchListRestart_;
  63935. return *this;
  63936. }
  63937. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  63938. operator VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  63939. {
  63940. return *reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *>( this );
  63941. }
  63942. operator VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  63943. {
  63944. return *reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *>( this );
  63945. }
  63946. #if defined( VULKAN_HPP_USE_REFLECT )
  63947. # if 14 <= VULKAN_HPP_CPP_VERSION
  63948. auto
  63949. # else
  63950. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  63951. # endif
  63952. reflect() const VULKAN_HPP_NOEXCEPT
  63953. {
  63954. return std::tie( sType, pNext, primitiveTopologyListRestart, primitiveTopologyPatchListRestart );
  63955. }
  63956. #endif
  63957. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  63958. auto operator<=>( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & ) const = default;
  63959. #else
  63960. bool operator==( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63961. {
  63962. # if defined( VULKAN_HPP_USE_REFLECT )
  63963. return this->reflect() == rhs.reflect();
  63964. # else
  63965. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( primitiveTopologyListRestart == rhs.primitiveTopologyListRestart ) &&
  63966. ( primitiveTopologyPatchListRestart == rhs.primitiveTopologyPatchListRestart );
  63967. # endif
  63968. }
  63969. bool operator!=( PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  63970. {
  63971. return !operator==( rhs );
  63972. }
  63973. #endif
  63974. public:
  63975. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
  63976. void * pNext = {};
  63977. VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyListRestart = {};
  63978. VULKAN_HPP_NAMESPACE::Bool32 primitiveTopologyPatchListRestart = {};
  63979. };
  63980. template <>
  63981. struct CppType<StructureType, StructureType::ePhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>
  63982. {
  63983. using Type = PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
  63984. };
  63985. struct PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
  63986. {
  63987. using NativeType = VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
  63988. static const bool allowDuplicate = false;
  63989. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
  63990. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  63991. VULKAN_HPP_CONSTEXPR PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQuery_ = {},
  63992. VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithRasterizerDiscard_ = {},
  63993. VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithNonZeroStreams_ = {},
  63994. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  63995. : pNext( pNext_ )
  63996. , primitivesGeneratedQuery( primitivesGeneratedQuery_ )
  63997. , primitivesGeneratedQueryWithRasterizerDiscard( primitivesGeneratedQueryWithRasterizerDiscard_ )
  63998. , primitivesGeneratedQueryWithNonZeroStreams( primitivesGeneratedQueryWithNonZeroStreams_ )
  63999. {
  64000. }
  64001. VULKAN_HPP_CONSTEXPR
  64002. PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64003. PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT( VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64004. : PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT( *reinterpret_cast<PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const *>( &rhs ) )
  64005. {
  64006. }
  64007. PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &
  64008. operator=( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64009. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64010. PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT & operator=( VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64011. {
  64012. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const *>( &rhs );
  64013. return *this;
  64014. }
  64015. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64016. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64017. {
  64018. pNext = pNext_;
  64019. return *this;
  64020. }
  64021. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &
  64022. setPrimitivesGeneratedQuery( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQuery_ ) VULKAN_HPP_NOEXCEPT
  64023. {
  64024. primitivesGeneratedQuery = primitivesGeneratedQuery_;
  64025. return *this;
  64026. }
  64027. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &
  64028. setPrimitivesGeneratedQueryWithRasterizerDiscard( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithRasterizerDiscard_ ) VULKAN_HPP_NOEXCEPT
  64029. {
  64030. primitivesGeneratedQueryWithRasterizerDiscard = primitivesGeneratedQueryWithRasterizerDiscard_;
  64031. return *this;
  64032. }
  64033. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &
  64034. setPrimitivesGeneratedQueryWithNonZeroStreams( VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithNonZeroStreams_ ) VULKAN_HPP_NOEXCEPT
  64035. {
  64036. primitivesGeneratedQueryWithNonZeroStreams = primitivesGeneratedQueryWithNonZeroStreams_;
  64037. return *this;
  64038. }
  64039. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64040. operator VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  64041. {
  64042. return *reinterpret_cast<const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *>( this );
  64043. }
  64044. operator VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  64045. {
  64046. return *reinterpret_cast<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *>( this );
  64047. }
  64048. #if defined( VULKAN_HPP_USE_REFLECT )
  64049. # if 14 <= VULKAN_HPP_CPP_VERSION
  64050. auto
  64051. # else
  64052. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  64053. void * const &,
  64054. VULKAN_HPP_NAMESPACE::Bool32 const &,
  64055. VULKAN_HPP_NAMESPACE::Bool32 const &,
  64056. VULKAN_HPP_NAMESPACE::Bool32 const &>
  64057. # endif
  64058. reflect() const VULKAN_HPP_NOEXCEPT
  64059. {
  64060. return std::tie( sType, pNext, primitivesGeneratedQuery, primitivesGeneratedQueryWithRasterizerDiscard, primitivesGeneratedQueryWithNonZeroStreams );
  64061. }
  64062. #endif
  64063. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64064. auto operator<=>( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & ) const = default;
  64065. #else
  64066. bool operator==( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64067. {
  64068. # if defined( VULKAN_HPP_USE_REFLECT )
  64069. return this->reflect() == rhs.reflect();
  64070. # else
  64071. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( primitivesGeneratedQuery == rhs.primitivesGeneratedQuery ) &&
  64072. ( primitivesGeneratedQueryWithRasterizerDiscard == rhs.primitivesGeneratedQueryWithRasterizerDiscard ) &&
  64073. ( primitivesGeneratedQueryWithNonZeroStreams == rhs.primitivesGeneratedQueryWithNonZeroStreams );
  64074. # endif
  64075. }
  64076. bool operator!=( PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64077. {
  64078. return !operator==( rhs );
  64079. }
  64080. #endif
  64081. public:
  64082. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
  64083. void * pNext = {};
  64084. VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQuery = {};
  64085. VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithRasterizerDiscard = {};
  64086. VULKAN_HPP_NAMESPACE::Bool32 primitivesGeneratedQueryWithNonZeroStreams = {};
  64087. };
  64088. template <>
  64089. struct CppType<StructureType, StructureType::ePhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>
  64090. {
  64091. using Type = PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
  64092. };
  64093. struct PhysicalDevicePrivateDataFeatures
  64094. {
  64095. using NativeType = VkPhysicalDevicePrivateDataFeatures;
  64096. static const bool allowDuplicate = false;
  64097. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrivateDataFeatures;
  64098. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64099. VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeatures( VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64100. : pNext( pNext_ )
  64101. , privateData( privateData_ )
  64102. {
  64103. }
  64104. VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeatures( PhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64105. PhysicalDevicePrivateDataFeatures( VkPhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  64106. : PhysicalDevicePrivateDataFeatures( *reinterpret_cast<PhysicalDevicePrivateDataFeatures const *>( &rhs ) )
  64107. {
  64108. }
  64109. PhysicalDevicePrivateDataFeatures & operator=( PhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64110. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64111. PhysicalDevicePrivateDataFeatures & operator=( VkPhysicalDevicePrivateDataFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  64112. {
  64113. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures const *>( &rhs );
  64114. return *this;
  64115. }
  64116. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64117. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrivateDataFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64118. {
  64119. pNext = pNext_;
  64120. return *this;
  64121. }
  64122. VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrivateDataFeatures & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT
  64123. {
  64124. privateData = privateData_;
  64125. return *this;
  64126. }
  64127. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64128. operator VkPhysicalDevicePrivateDataFeatures const &() const VULKAN_HPP_NOEXCEPT
  64129. {
  64130. return *reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures *>( this );
  64131. }
  64132. operator VkPhysicalDevicePrivateDataFeatures &() VULKAN_HPP_NOEXCEPT
  64133. {
  64134. return *reinterpret_cast<VkPhysicalDevicePrivateDataFeatures *>( this );
  64135. }
  64136. #if defined( VULKAN_HPP_USE_REFLECT )
  64137. # if 14 <= VULKAN_HPP_CPP_VERSION
  64138. auto
  64139. # else
  64140. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  64141. # endif
  64142. reflect() const VULKAN_HPP_NOEXCEPT
  64143. {
  64144. return std::tie( sType, pNext, privateData );
  64145. }
  64146. #endif
  64147. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64148. auto operator<=>( PhysicalDevicePrivateDataFeatures const & ) const = default;
  64149. #else
  64150. bool operator==( PhysicalDevicePrivateDataFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  64151. {
  64152. # if defined( VULKAN_HPP_USE_REFLECT )
  64153. return this->reflect() == rhs.reflect();
  64154. # else
  64155. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( privateData == rhs.privateData );
  64156. # endif
  64157. }
  64158. bool operator!=( PhysicalDevicePrivateDataFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  64159. {
  64160. return !operator==( rhs );
  64161. }
  64162. #endif
  64163. public:
  64164. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrivateDataFeatures;
  64165. void * pNext = {};
  64166. VULKAN_HPP_NAMESPACE::Bool32 privateData = {};
  64167. };
  64168. template <>
  64169. struct CppType<StructureType, StructureType::ePhysicalDevicePrivateDataFeatures>
  64170. {
  64171. using Type = PhysicalDevicePrivateDataFeatures;
  64172. };
  64173. using PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeatures;
  64174. struct PhysicalDeviceSparseProperties
  64175. {
  64176. using NativeType = VkPhysicalDeviceSparseProperties;
  64177. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64178. VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape_ = {},
  64179. VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape_ = {},
  64180. VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape_ = {},
  64181. VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize_ = {},
  64182. VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict_ = {} ) VULKAN_HPP_NOEXCEPT
  64183. : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ )
  64184. , residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ )
  64185. , residencyStandard3DBlockShape( residencyStandard3DBlockShape_ )
  64186. , residencyAlignedMipSize( residencyAlignedMipSize_ )
  64187. , residencyNonResidentStrict( residencyNonResidentStrict_ )
  64188. {
  64189. }
  64190. VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64191. PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  64192. : PhysicalDeviceSparseProperties( *reinterpret_cast<PhysicalDeviceSparseProperties const *>( &rhs ) )
  64193. {
  64194. }
  64195. PhysicalDeviceSparseProperties & operator=( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64196. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64197. PhysicalDeviceSparseProperties & operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  64198. {
  64199. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const *>( &rhs );
  64200. return *this;
  64201. }
  64202. operator VkPhysicalDeviceSparseProperties const &() const VULKAN_HPP_NOEXCEPT
  64203. {
  64204. return *reinterpret_cast<const VkPhysicalDeviceSparseProperties *>( this );
  64205. }
  64206. operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT
  64207. {
  64208. return *reinterpret_cast<VkPhysicalDeviceSparseProperties *>( this );
  64209. }
  64210. #if defined( VULKAN_HPP_USE_REFLECT )
  64211. # if 14 <= VULKAN_HPP_CPP_VERSION
  64212. auto
  64213. # else
  64214. std::tuple<VULKAN_HPP_NAMESPACE::Bool32 const &,
  64215. VULKAN_HPP_NAMESPACE::Bool32 const &,
  64216. VULKAN_HPP_NAMESPACE::Bool32 const &,
  64217. VULKAN_HPP_NAMESPACE::Bool32 const &,
  64218. VULKAN_HPP_NAMESPACE::Bool32 const &>
  64219. # endif
  64220. reflect() const VULKAN_HPP_NOEXCEPT
  64221. {
  64222. return std::tie( residencyStandard2DBlockShape,
  64223. residencyStandard2DMultisampleBlockShape,
  64224. residencyStandard3DBlockShape,
  64225. residencyAlignedMipSize,
  64226. residencyNonResidentStrict );
  64227. }
  64228. #endif
  64229. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64230. auto operator<=>( PhysicalDeviceSparseProperties const & ) const = default;
  64231. #else
  64232. bool operator==( PhysicalDeviceSparseProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  64233. {
  64234. # if defined( VULKAN_HPP_USE_REFLECT )
  64235. return this->reflect() == rhs.reflect();
  64236. # else
  64237. return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape ) &&
  64238. ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape ) &&
  64239. ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape ) && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize ) &&
  64240. ( residencyNonResidentStrict == rhs.residencyNonResidentStrict );
  64241. # endif
  64242. }
  64243. bool operator!=( PhysicalDeviceSparseProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  64244. {
  64245. return !operator==( rhs );
  64246. }
  64247. #endif
  64248. public:
  64249. VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {};
  64250. VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {};
  64251. VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {};
  64252. VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {};
  64253. VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {};
  64254. };
  64255. struct PhysicalDeviceProperties
  64256. {
  64257. using NativeType = VkPhysicalDeviceProperties;
  64258. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64259. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( uint32_t apiVersion_ = {},
  64260. uint32_t driverVersion_ = {},
  64261. uint32_t vendorID_ = {},
  64262. uint32_t deviceID_ = {},
  64263. VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType_ = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther,
  64264. std::array<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> const & deviceName_ = {},
  64265. std::array<uint8_t, VK_UUID_SIZE> const & pipelineCacheUUID_ = {},
  64266. VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits_ = {},
  64267. VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties_ = {} ) VULKAN_HPP_NOEXCEPT
  64268. : apiVersion( apiVersion_ )
  64269. , driverVersion( driverVersion_ )
  64270. , vendorID( vendorID_ )
  64271. , deviceID( deviceID_ )
  64272. , deviceType( deviceType_ )
  64273. , deviceName( deviceName_ )
  64274. , pipelineCacheUUID( pipelineCacheUUID_ )
  64275. , limits( limits_ )
  64276. , sparseProperties( sparseProperties_ )
  64277. {
  64278. }
  64279. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64280. PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  64281. : PhysicalDeviceProperties( *reinterpret_cast<PhysicalDeviceProperties const *>( &rhs ) )
  64282. {
  64283. }
  64284. PhysicalDeviceProperties & operator=( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64285. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64286. PhysicalDeviceProperties & operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  64287. {
  64288. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const *>( &rhs );
  64289. return *this;
  64290. }
  64291. operator VkPhysicalDeviceProperties const &() const VULKAN_HPP_NOEXCEPT
  64292. {
  64293. return *reinterpret_cast<const VkPhysicalDeviceProperties *>( this );
  64294. }
  64295. operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT
  64296. {
  64297. return *reinterpret_cast<VkPhysicalDeviceProperties *>( this );
  64298. }
  64299. #if defined( VULKAN_HPP_USE_REFLECT )
  64300. # if 14 <= VULKAN_HPP_CPP_VERSION
  64301. auto
  64302. # else
  64303. std::tuple<uint32_t const &,
  64304. uint32_t const &,
  64305. uint32_t const &,
  64306. uint32_t const &,
  64307. VULKAN_HPP_NAMESPACE::PhysicalDeviceType const &,
  64308. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> const &,
  64309. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  64310. VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const &,
  64311. VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const &>
  64312. # endif
  64313. reflect() const VULKAN_HPP_NOEXCEPT
  64314. {
  64315. return std::tie( apiVersion, driverVersion, vendorID, deviceID, deviceType, deviceName, pipelineCacheUUID, limits, sparseProperties );
  64316. }
  64317. #endif
  64318. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64319. auto operator<=>( PhysicalDeviceProperties const & ) const = default;
  64320. #else
  64321. bool operator==( PhysicalDeviceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  64322. {
  64323. # if defined( VULKAN_HPP_USE_REFLECT )
  64324. return this->reflect() == rhs.reflect();
  64325. # else
  64326. return ( apiVersion == rhs.apiVersion ) && ( driverVersion == rhs.driverVersion ) && ( vendorID == rhs.vendorID ) && ( deviceID == rhs.deviceID ) &&
  64327. ( deviceType == rhs.deviceType ) && ( deviceName == rhs.deviceName ) && ( pipelineCacheUUID == rhs.pipelineCacheUUID ) &&
  64328. ( limits == rhs.limits ) && ( sparseProperties == rhs.sparseProperties );
  64329. # endif
  64330. }
  64331. bool operator!=( PhysicalDeviceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  64332. {
  64333. return !operator==( rhs );
  64334. }
  64335. #endif
  64336. public:
  64337. uint32_t apiVersion = {};
  64338. uint32_t driverVersion = {};
  64339. uint32_t vendorID = {};
  64340. uint32_t deviceID = {};
  64341. VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther;
  64342. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE> deviceName = {};
  64343. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
  64344. VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {};
  64345. VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {};
  64346. };
  64347. struct PhysicalDeviceProperties2
  64348. {
  64349. using NativeType = VkPhysicalDeviceProperties2;
  64350. static const bool allowDuplicate = false;
  64351. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProperties2;
  64352. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64353. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {},
  64354. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64355. : pNext( pNext_ )
  64356. , properties( properties_ )
  64357. {
  64358. }
  64359. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64360. PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  64361. : PhysicalDeviceProperties2( *reinterpret_cast<PhysicalDeviceProperties2 const *>( &rhs ) )
  64362. {
  64363. }
  64364. PhysicalDeviceProperties2 & operator=( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64365. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64366. PhysicalDeviceProperties2 & operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  64367. {
  64368. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 const *>( &rhs );
  64369. return *this;
  64370. }
  64371. operator VkPhysicalDeviceProperties2 const &() const VULKAN_HPP_NOEXCEPT
  64372. {
  64373. return *reinterpret_cast<const VkPhysicalDeviceProperties2 *>( this );
  64374. }
  64375. operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT
  64376. {
  64377. return *reinterpret_cast<VkPhysicalDeviceProperties2 *>( this );
  64378. }
  64379. #if defined( VULKAN_HPP_USE_REFLECT )
  64380. # if 14 <= VULKAN_HPP_CPP_VERSION
  64381. auto
  64382. # else
  64383. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const &>
  64384. # endif
  64385. reflect() const VULKAN_HPP_NOEXCEPT
  64386. {
  64387. return std::tie( sType, pNext, properties );
  64388. }
  64389. #endif
  64390. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64391. auto operator<=>( PhysicalDeviceProperties2 const & ) const = default;
  64392. #else
  64393. bool operator==( PhysicalDeviceProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  64394. {
  64395. # if defined( VULKAN_HPP_USE_REFLECT )
  64396. return this->reflect() == rhs.reflect();
  64397. # else
  64398. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( properties == rhs.properties );
  64399. # endif
  64400. }
  64401. bool operator!=( PhysicalDeviceProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  64402. {
  64403. return !operator==( rhs );
  64404. }
  64405. #endif
  64406. public:
  64407. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2;
  64408. void * pNext = {};
  64409. VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {};
  64410. };
  64411. template <>
  64412. struct CppType<StructureType, StructureType::ePhysicalDeviceProperties2>
  64413. {
  64414. using Type = PhysicalDeviceProperties2;
  64415. };
  64416. using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
  64417. struct PhysicalDeviceProtectedMemoryFeatures
  64418. {
  64419. using NativeType = VkPhysicalDeviceProtectedMemoryFeatures;
  64420. static const bool allowDuplicate = false;
  64421. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
  64422. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64423. VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {},
  64424. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64425. : pNext( pNext_ )
  64426. , protectedMemory( protectedMemory_ )
  64427. {
  64428. }
  64429. VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64430. PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  64431. : PhysicalDeviceProtectedMemoryFeatures( *reinterpret_cast<PhysicalDeviceProtectedMemoryFeatures const *>( &rhs ) )
  64432. {
  64433. }
  64434. PhysicalDeviceProtectedMemoryFeatures & operator=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64435. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64436. PhysicalDeviceProtectedMemoryFeatures & operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  64437. {
  64438. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures const *>( &rhs );
  64439. return *this;
  64440. }
  64441. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64442. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64443. {
  64444. pNext = pNext_;
  64445. return *this;
  64446. }
  64447. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
  64448. {
  64449. protectedMemory = protectedMemory_;
  64450. return *this;
  64451. }
  64452. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64453. operator VkPhysicalDeviceProtectedMemoryFeatures const &() const VULKAN_HPP_NOEXCEPT
  64454. {
  64455. return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures *>( this );
  64456. }
  64457. operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT
  64458. {
  64459. return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures *>( this );
  64460. }
  64461. #if defined( VULKAN_HPP_USE_REFLECT )
  64462. # if 14 <= VULKAN_HPP_CPP_VERSION
  64463. auto
  64464. # else
  64465. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  64466. # endif
  64467. reflect() const VULKAN_HPP_NOEXCEPT
  64468. {
  64469. return std::tie( sType, pNext, protectedMemory );
  64470. }
  64471. #endif
  64472. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64473. auto operator<=>( PhysicalDeviceProtectedMemoryFeatures const & ) const = default;
  64474. #else
  64475. bool operator==( PhysicalDeviceProtectedMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  64476. {
  64477. # if defined( VULKAN_HPP_USE_REFLECT )
  64478. return this->reflect() == rhs.reflect();
  64479. # else
  64480. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( protectedMemory == rhs.protectedMemory );
  64481. # endif
  64482. }
  64483. bool operator!=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  64484. {
  64485. return !operator==( rhs );
  64486. }
  64487. #endif
  64488. public:
  64489. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
  64490. void * pNext = {};
  64491. VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
  64492. };
  64493. template <>
  64494. struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryFeatures>
  64495. {
  64496. using Type = PhysicalDeviceProtectedMemoryFeatures;
  64497. };
  64498. struct PhysicalDeviceProtectedMemoryProperties
  64499. {
  64500. using NativeType = VkPhysicalDeviceProtectedMemoryProperties;
  64501. static const bool allowDuplicate = false;
  64502. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
  64503. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64504. VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {},
  64505. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64506. : pNext( pNext_ )
  64507. , protectedNoFault( protectedNoFault_ )
  64508. {
  64509. }
  64510. VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64511. PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  64512. : PhysicalDeviceProtectedMemoryProperties( *reinterpret_cast<PhysicalDeviceProtectedMemoryProperties const *>( &rhs ) )
  64513. {
  64514. }
  64515. PhysicalDeviceProtectedMemoryProperties & operator=( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64516. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64517. PhysicalDeviceProtectedMemoryProperties & operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  64518. {
  64519. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties const *>( &rhs );
  64520. return *this;
  64521. }
  64522. operator VkPhysicalDeviceProtectedMemoryProperties const &() const VULKAN_HPP_NOEXCEPT
  64523. {
  64524. return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties *>( this );
  64525. }
  64526. operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT
  64527. {
  64528. return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties *>( this );
  64529. }
  64530. #if defined( VULKAN_HPP_USE_REFLECT )
  64531. # if 14 <= VULKAN_HPP_CPP_VERSION
  64532. auto
  64533. # else
  64534. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  64535. # endif
  64536. reflect() const VULKAN_HPP_NOEXCEPT
  64537. {
  64538. return std::tie( sType, pNext, protectedNoFault );
  64539. }
  64540. #endif
  64541. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64542. auto operator<=>( PhysicalDeviceProtectedMemoryProperties const & ) const = default;
  64543. #else
  64544. bool operator==( PhysicalDeviceProtectedMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  64545. {
  64546. # if defined( VULKAN_HPP_USE_REFLECT )
  64547. return this->reflect() == rhs.reflect();
  64548. # else
  64549. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( protectedNoFault == rhs.protectedNoFault );
  64550. # endif
  64551. }
  64552. bool operator!=( PhysicalDeviceProtectedMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  64553. {
  64554. return !operator==( rhs );
  64555. }
  64556. #endif
  64557. public:
  64558. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
  64559. void * pNext = {};
  64560. VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
  64561. };
  64562. template <>
  64563. struct CppType<StructureType, StructureType::ePhysicalDeviceProtectedMemoryProperties>
  64564. {
  64565. using Type = PhysicalDeviceProtectedMemoryProperties;
  64566. };
  64567. struct PhysicalDeviceProvokingVertexFeaturesEXT
  64568. {
  64569. using NativeType = VkPhysicalDeviceProvokingVertexFeaturesEXT;
  64570. static const bool allowDuplicate = false;
  64571. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT;
  64572. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64573. VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast_ = {},
  64574. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesProvokingVertex_ = {},
  64575. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64576. : pNext( pNext_ )
  64577. , provokingVertexLast( provokingVertexLast_ )
  64578. , transformFeedbackPreservesProvokingVertex( transformFeedbackPreservesProvokingVertex_ )
  64579. {
  64580. }
  64581. VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexFeaturesEXT( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64582. PhysicalDeviceProvokingVertexFeaturesEXT( VkPhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64583. : PhysicalDeviceProvokingVertexFeaturesEXT( *reinterpret_cast<PhysicalDeviceProvokingVertexFeaturesEXT const *>( &rhs ) )
  64584. {
  64585. }
  64586. PhysicalDeviceProvokingVertexFeaturesEXT & operator=( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64587. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64588. PhysicalDeviceProvokingVertexFeaturesEXT & operator=( VkPhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64589. {
  64590. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT const *>( &rhs );
  64591. return *this;
  64592. }
  64593. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64594. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProvokingVertexFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64595. {
  64596. pNext = pNext_;
  64597. return *this;
  64598. }
  64599. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProvokingVertexFeaturesEXT &
  64600. setProvokingVertexLast( VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast_ ) VULKAN_HPP_NOEXCEPT
  64601. {
  64602. provokingVertexLast = provokingVertexLast_;
  64603. return *this;
  64604. }
  64605. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProvokingVertexFeaturesEXT &
  64606. setTransformFeedbackPreservesProvokingVertex( VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesProvokingVertex_ ) VULKAN_HPP_NOEXCEPT
  64607. {
  64608. transformFeedbackPreservesProvokingVertex = transformFeedbackPreservesProvokingVertex_;
  64609. return *this;
  64610. }
  64611. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64612. operator VkPhysicalDeviceProvokingVertexFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  64613. {
  64614. return *reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT *>( this );
  64615. }
  64616. operator VkPhysicalDeviceProvokingVertexFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  64617. {
  64618. return *reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT *>( this );
  64619. }
  64620. #if defined( VULKAN_HPP_USE_REFLECT )
  64621. # if 14 <= VULKAN_HPP_CPP_VERSION
  64622. auto
  64623. # else
  64624. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  64625. # endif
  64626. reflect() const VULKAN_HPP_NOEXCEPT
  64627. {
  64628. return std::tie( sType, pNext, provokingVertexLast, transformFeedbackPreservesProvokingVertex );
  64629. }
  64630. #endif
  64631. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64632. auto operator<=>( PhysicalDeviceProvokingVertexFeaturesEXT const & ) const = default;
  64633. #else
  64634. bool operator==( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64635. {
  64636. # if defined( VULKAN_HPP_USE_REFLECT )
  64637. return this->reflect() == rhs.reflect();
  64638. # else
  64639. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( provokingVertexLast == rhs.provokingVertexLast ) &&
  64640. ( transformFeedbackPreservesProvokingVertex == rhs.transformFeedbackPreservesProvokingVertex );
  64641. # endif
  64642. }
  64643. bool operator!=( PhysicalDeviceProvokingVertexFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64644. {
  64645. return !operator==( rhs );
  64646. }
  64647. #endif
  64648. public:
  64649. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT;
  64650. void * pNext = {};
  64651. VULKAN_HPP_NAMESPACE::Bool32 provokingVertexLast = {};
  64652. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesProvokingVertex = {};
  64653. };
  64654. template <>
  64655. struct CppType<StructureType, StructureType::ePhysicalDeviceProvokingVertexFeaturesEXT>
  64656. {
  64657. using Type = PhysicalDeviceProvokingVertexFeaturesEXT;
  64658. };
  64659. struct PhysicalDeviceProvokingVertexPropertiesEXT
  64660. {
  64661. using NativeType = VkPhysicalDeviceProvokingVertexPropertiesEXT;
  64662. static const bool allowDuplicate = false;
  64663. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT;
  64664. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64665. VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 provokingVertexModePerPipeline_ = {},
  64666. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesTriangleFanProvokingVertex_ = {},
  64667. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64668. : pNext( pNext_ )
  64669. , provokingVertexModePerPipeline( provokingVertexModePerPipeline_ )
  64670. , transformFeedbackPreservesTriangleFanProvokingVertex( transformFeedbackPreservesTriangleFanProvokingVertex_ )
  64671. {
  64672. }
  64673. VULKAN_HPP_CONSTEXPR PhysicalDeviceProvokingVertexPropertiesEXT( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64674. PhysicalDeviceProvokingVertexPropertiesEXT( VkPhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64675. : PhysicalDeviceProvokingVertexPropertiesEXT( *reinterpret_cast<PhysicalDeviceProvokingVertexPropertiesEXT const *>( &rhs ) )
  64676. {
  64677. }
  64678. PhysicalDeviceProvokingVertexPropertiesEXT & operator=( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64679. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64680. PhysicalDeviceProvokingVertexPropertiesEXT & operator=( VkPhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64681. {
  64682. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT const *>( &rhs );
  64683. return *this;
  64684. }
  64685. operator VkPhysicalDeviceProvokingVertexPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  64686. {
  64687. return *reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT *>( this );
  64688. }
  64689. operator VkPhysicalDeviceProvokingVertexPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  64690. {
  64691. return *reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT *>( this );
  64692. }
  64693. #if defined( VULKAN_HPP_USE_REFLECT )
  64694. # if 14 <= VULKAN_HPP_CPP_VERSION
  64695. auto
  64696. # else
  64697. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  64698. # endif
  64699. reflect() const VULKAN_HPP_NOEXCEPT
  64700. {
  64701. return std::tie( sType, pNext, provokingVertexModePerPipeline, transformFeedbackPreservesTriangleFanProvokingVertex );
  64702. }
  64703. #endif
  64704. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64705. auto operator<=>( PhysicalDeviceProvokingVertexPropertiesEXT const & ) const = default;
  64706. #else
  64707. bool operator==( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64708. {
  64709. # if defined( VULKAN_HPP_USE_REFLECT )
  64710. return this->reflect() == rhs.reflect();
  64711. # else
  64712. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( provokingVertexModePerPipeline == rhs.provokingVertexModePerPipeline ) &&
  64713. ( transformFeedbackPreservesTriangleFanProvokingVertex == rhs.transformFeedbackPreservesTriangleFanProvokingVertex );
  64714. # endif
  64715. }
  64716. bool operator!=( PhysicalDeviceProvokingVertexPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64717. {
  64718. return !operator==( rhs );
  64719. }
  64720. #endif
  64721. public:
  64722. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT;
  64723. void * pNext = {};
  64724. VULKAN_HPP_NAMESPACE::Bool32 provokingVertexModePerPipeline = {};
  64725. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackPreservesTriangleFanProvokingVertex = {};
  64726. };
  64727. template <>
  64728. struct CppType<StructureType, StructureType::ePhysicalDeviceProvokingVertexPropertiesEXT>
  64729. {
  64730. using Type = PhysicalDeviceProvokingVertexPropertiesEXT;
  64731. };
  64732. struct PhysicalDevicePushDescriptorPropertiesKHR
  64733. {
  64734. using NativeType = VkPhysicalDevicePushDescriptorPropertiesKHR;
  64735. static const bool allowDuplicate = false;
  64736. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
  64737. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64738. VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( uint32_t maxPushDescriptors_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64739. : pNext( pNext_ )
  64740. , maxPushDescriptors( maxPushDescriptors_ )
  64741. {
  64742. }
  64743. VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64744. PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  64745. : PhysicalDevicePushDescriptorPropertiesKHR( *reinterpret_cast<PhysicalDevicePushDescriptorPropertiesKHR const *>( &rhs ) )
  64746. {
  64747. }
  64748. PhysicalDevicePushDescriptorPropertiesKHR & operator=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64749. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64750. PhysicalDevicePushDescriptorPropertiesKHR & operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  64751. {
  64752. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR const *>( &rhs );
  64753. return *this;
  64754. }
  64755. operator VkPhysicalDevicePushDescriptorPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  64756. {
  64757. return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR *>( this );
  64758. }
  64759. operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  64760. {
  64761. return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR *>( this );
  64762. }
  64763. #if defined( VULKAN_HPP_USE_REFLECT )
  64764. # if 14 <= VULKAN_HPP_CPP_VERSION
  64765. auto
  64766. # else
  64767. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  64768. # endif
  64769. reflect() const VULKAN_HPP_NOEXCEPT
  64770. {
  64771. return std::tie( sType, pNext, maxPushDescriptors );
  64772. }
  64773. #endif
  64774. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64775. auto operator<=>( PhysicalDevicePushDescriptorPropertiesKHR const & ) const = default;
  64776. #else
  64777. bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  64778. {
  64779. # if defined( VULKAN_HPP_USE_REFLECT )
  64780. return this->reflect() == rhs.reflect();
  64781. # else
  64782. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxPushDescriptors == rhs.maxPushDescriptors );
  64783. # endif
  64784. }
  64785. bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  64786. {
  64787. return !operator==( rhs );
  64788. }
  64789. #endif
  64790. public:
  64791. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
  64792. void * pNext = {};
  64793. uint32_t maxPushDescriptors = {};
  64794. };
  64795. template <>
  64796. struct CppType<StructureType, StructureType::ePhysicalDevicePushDescriptorPropertiesKHR>
  64797. {
  64798. using Type = PhysicalDevicePushDescriptorPropertiesKHR;
  64799. };
  64800. struct PhysicalDeviceRGBA10X6FormatsFeaturesEXT
  64801. {
  64802. using NativeType = VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
  64803. static const bool allowDuplicate = false;
  64804. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRgba10X6FormatsFeaturesEXT;
  64805. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64806. VULKAN_HPP_CONSTEXPR PhysicalDeviceRGBA10X6FormatsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler_ = {},
  64807. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64808. : pNext( pNext_ )
  64809. , formatRgba10x6WithoutYCbCrSampler( formatRgba10x6WithoutYCbCrSampler_ )
  64810. {
  64811. }
  64812. VULKAN_HPP_CONSTEXPR PhysicalDeviceRGBA10X6FormatsFeaturesEXT( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64813. PhysicalDeviceRGBA10X6FormatsFeaturesEXT( VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64814. : PhysicalDeviceRGBA10X6FormatsFeaturesEXT( *reinterpret_cast<PhysicalDeviceRGBA10X6FormatsFeaturesEXT const *>( &rhs ) )
  64815. {
  64816. }
  64817. PhysicalDeviceRGBA10X6FormatsFeaturesEXT & operator=( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64818. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64819. PhysicalDeviceRGBA10X6FormatsFeaturesEXT & operator=( VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64820. {
  64821. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT const *>( &rhs );
  64822. return *this;
  64823. }
  64824. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64825. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRGBA10X6FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64826. {
  64827. pNext = pNext_;
  64828. return *this;
  64829. }
  64830. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRGBA10X6FormatsFeaturesEXT &
  64831. setFormatRgba10x6WithoutYCbCrSampler( VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler_ ) VULKAN_HPP_NOEXCEPT
  64832. {
  64833. formatRgba10x6WithoutYCbCrSampler = formatRgba10x6WithoutYCbCrSampler_;
  64834. return *this;
  64835. }
  64836. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64837. operator VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  64838. {
  64839. return *reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT *>( this );
  64840. }
  64841. operator VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  64842. {
  64843. return *reinterpret_cast<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT *>( this );
  64844. }
  64845. #if defined( VULKAN_HPP_USE_REFLECT )
  64846. # if 14 <= VULKAN_HPP_CPP_VERSION
  64847. auto
  64848. # else
  64849. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  64850. # endif
  64851. reflect() const VULKAN_HPP_NOEXCEPT
  64852. {
  64853. return std::tie( sType, pNext, formatRgba10x6WithoutYCbCrSampler );
  64854. }
  64855. #endif
  64856. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64857. auto operator<=>( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & ) const = default;
  64858. #else
  64859. bool operator==( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64860. {
  64861. # if defined( VULKAN_HPP_USE_REFLECT )
  64862. return this->reflect() == rhs.reflect();
  64863. # else
  64864. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( formatRgba10x6WithoutYCbCrSampler == rhs.formatRgba10x6WithoutYCbCrSampler );
  64865. # endif
  64866. }
  64867. bool operator!=( PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64868. {
  64869. return !operator==( rhs );
  64870. }
  64871. #endif
  64872. public:
  64873. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRgba10X6FormatsFeaturesEXT;
  64874. void * pNext = {};
  64875. VULKAN_HPP_NAMESPACE::Bool32 formatRgba10x6WithoutYCbCrSampler = {};
  64876. };
  64877. template <>
  64878. struct CppType<StructureType, StructureType::ePhysicalDeviceRgba10X6FormatsFeaturesEXT>
  64879. {
  64880. using Type = PhysicalDeviceRGBA10X6FormatsFeaturesEXT;
  64881. };
  64882. struct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
  64883. {
  64884. using NativeType = VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  64885. static const bool allowDuplicate = false;
  64886. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  64887. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  64888. VULKAN_HPP_CONSTEXPR
  64889. PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderColorAttachmentAccess_ = {},
  64890. VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderDepthAttachmentAccess_ = {},
  64891. VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderStencilAttachmentAccess_ = {},
  64892. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  64893. : pNext( pNext_ )
  64894. , rasterizationOrderColorAttachmentAccess( rasterizationOrderColorAttachmentAccess_ )
  64895. , rasterizationOrderDepthAttachmentAccess( rasterizationOrderDepthAttachmentAccess_ )
  64896. , rasterizationOrderStencilAttachmentAccess( rasterizationOrderStencilAttachmentAccess_ )
  64897. {
  64898. }
  64899. VULKAN_HPP_CONSTEXPR PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs )
  64900. VULKAN_HPP_NOEXCEPT = default;
  64901. PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT( VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64902. : PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(
  64903. *reinterpret_cast<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const *>( &rhs ) )
  64904. {
  64905. }
  64906. PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &
  64907. operator=( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  64908. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  64909. PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &
  64910. operator=( VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  64911. {
  64912. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const *>( &rhs );
  64913. return *this;
  64914. }
  64915. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  64916. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  64917. {
  64918. pNext = pNext_;
  64919. return *this;
  64920. }
  64921. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &
  64922. setRasterizationOrderColorAttachmentAccess( VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderColorAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
  64923. {
  64924. rasterizationOrderColorAttachmentAccess = rasterizationOrderColorAttachmentAccess_;
  64925. return *this;
  64926. }
  64927. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &
  64928. setRasterizationOrderDepthAttachmentAccess( VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderDepthAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
  64929. {
  64930. rasterizationOrderDepthAttachmentAccess = rasterizationOrderDepthAttachmentAccess_;
  64931. return *this;
  64932. }
  64933. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &
  64934. setRasterizationOrderStencilAttachmentAccess( VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderStencilAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
  64935. {
  64936. rasterizationOrderStencilAttachmentAccess = rasterizationOrderStencilAttachmentAccess_;
  64937. return *this;
  64938. }
  64939. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  64940. operator VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  64941. {
  64942. return *reinterpret_cast<const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT *>( this );
  64943. }
  64944. operator VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  64945. {
  64946. return *reinterpret_cast<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT *>( this );
  64947. }
  64948. #if defined( VULKAN_HPP_USE_REFLECT )
  64949. # if 14 <= VULKAN_HPP_CPP_VERSION
  64950. auto
  64951. # else
  64952. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  64953. void * const &,
  64954. VULKAN_HPP_NAMESPACE::Bool32 const &,
  64955. VULKAN_HPP_NAMESPACE::Bool32 const &,
  64956. VULKAN_HPP_NAMESPACE::Bool32 const &>
  64957. # endif
  64958. reflect() const VULKAN_HPP_NOEXCEPT
  64959. {
  64960. return std::tie(
  64961. sType, pNext, rasterizationOrderColorAttachmentAccess, rasterizationOrderDepthAttachmentAccess, rasterizationOrderStencilAttachmentAccess );
  64962. }
  64963. #endif
  64964. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  64965. auto operator<=>( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & ) const = default;
  64966. #else
  64967. bool operator==( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64968. {
  64969. # if defined( VULKAN_HPP_USE_REFLECT )
  64970. return this->reflect() == rhs.reflect();
  64971. # else
  64972. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rasterizationOrderColorAttachmentAccess == rhs.rasterizationOrderColorAttachmentAccess ) &&
  64973. ( rasterizationOrderDepthAttachmentAccess == rhs.rasterizationOrderDepthAttachmentAccess ) &&
  64974. ( rasterizationOrderStencilAttachmentAccess == rhs.rasterizationOrderStencilAttachmentAccess );
  64975. # endif
  64976. }
  64977. bool operator!=( PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  64978. {
  64979. return !operator==( rhs );
  64980. }
  64981. #endif
  64982. public:
  64983. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  64984. void * pNext = {};
  64985. VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderColorAttachmentAccess = {};
  64986. VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderDepthAttachmentAccess = {};
  64987. VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderStencilAttachmentAccess = {};
  64988. };
  64989. template <>
  64990. struct CppType<StructureType, StructureType::ePhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT>
  64991. {
  64992. using Type = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  64993. };
  64994. using PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  64995. struct PhysicalDeviceRayQueryFeaturesKHR
  64996. {
  64997. using NativeType = VkPhysicalDeviceRayQueryFeaturesKHR;
  64998. static const bool allowDuplicate = false;
  64999. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR;
  65000. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65001. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65002. : pNext( pNext_ )
  65003. , rayQuery( rayQuery_ )
  65004. {
  65005. }
  65006. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65007. PhysicalDeviceRayQueryFeaturesKHR( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65008. : PhysicalDeviceRayQueryFeaturesKHR( *reinterpret_cast<PhysicalDeviceRayQueryFeaturesKHR const *>( &rhs ) )
  65009. {
  65010. }
  65011. PhysicalDeviceRayQueryFeaturesKHR & operator=( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65012. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65013. PhysicalDeviceRayQueryFeaturesKHR & operator=( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65014. {
  65015. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR const *>( &rhs );
  65016. return *this;
  65017. }
  65018. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65019. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65020. {
  65021. pNext = pNext_;
  65022. return *this;
  65023. }
  65024. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayQueryFeaturesKHR & setRayQuery( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ ) VULKAN_HPP_NOEXCEPT
  65025. {
  65026. rayQuery = rayQuery_;
  65027. return *this;
  65028. }
  65029. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65030. operator VkPhysicalDeviceRayQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  65031. {
  65032. return *reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR *>( this );
  65033. }
  65034. operator VkPhysicalDeviceRayQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  65035. {
  65036. return *reinterpret_cast<VkPhysicalDeviceRayQueryFeaturesKHR *>( this );
  65037. }
  65038. #if defined( VULKAN_HPP_USE_REFLECT )
  65039. # if 14 <= VULKAN_HPP_CPP_VERSION
  65040. auto
  65041. # else
  65042. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  65043. # endif
  65044. reflect() const VULKAN_HPP_NOEXCEPT
  65045. {
  65046. return std::tie( sType, pNext, rayQuery );
  65047. }
  65048. #endif
  65049. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65050. auto operator<=>( PhysicalDeviceRayQueryFeaturesKHR const & ) const = default;
  65051. #else
  65052. bool operator==( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65053. {
  65054. # if defined( VULKAN_HPP_USE_REFLECT )
  65055. return this->reflect() == rhs.reflect();
  65056. # else
  65057. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayQuery == rhs.rayQuery );
  65058. # endif
  65059. }
  65060. bool operator!=( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65061. {
  65062. return !operator==( rhs );
  65063. }
  65064. #endif
  65065. public:
  65066. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR;
  65067. void * pNext = {};
  65068. VULKAN_HPP_NAMESPACE::Bool32 rayQuery = {};
  65069. };
  65070. template <>
  65071. struct CppType<StructureType, StructureType::ePhysicalDeviceRayQueryFeaturesKHR>
  65072. {
  65073. using Type = PhysicalDeviceRayQueryFeaturesKHR;
  65074. };
  65075. struct PhysicalDeviceRayTracingInvocationReorderFeaturesNV
  65076. {
  65077. using NativeType = VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
  65078. static const bool allowDuplicate = false;
  65079. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingInvocationReorderFeaturesNV;
  65080. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65081. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingInvocationReorderFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 rayTracingInvocationReorder_ = {},
  65082. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65083. : pNext( pNext_ )
  65084. , rayTracingInvocationReorder( rayTracingInvocationReorder_ )
  65085. {
  65086. }
  65087. VULKAN_HPP_CONSTEXPR
  65088. PhysicalDeviceRayTracingInvocationReorderFeaturesNV( PhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65089. PhysicalDeviceRayTracingInvocationReorderFeaturesNV( VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  65090. : PhysicalDeviceRayTracingInvocationReorderFeaturesNV( *reinterpret_cast<PhysicalDeviceRayTracingInvocationReorderFeaturesNV const *>( &rhs ) )
  65091. {
  65092. }
  65093. PhysicalDeviceRayTracingInvocationReorderFeaturesNV &
  65094. operator=( PhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65095. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65096. PhysicalDeviceRayTracingInvocationReorderFeaturesNV & operator=( VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  65097. {
  65098. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV const *>( &rhs );
  65099. return *this;
  65100. }
  65101. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65102. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingInvocationReorderFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65103. {
  65104. pNext = pNext_;
  65105. return *this;
  65106. }
  65107. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingInvocationReorderFeaturesNV &
  65108. setRayTracingInvocationReorder( VULKAN_HPP_NAMESPACE::Bool32 rayTracingInvocationReorder_ ) VULKAN_HPP_NOEXCEPT
  65109. {
  65110. rayTracingInvocationReorder = rayTracingInvocationReorder_;
  65111. return *this;
  65112. }
  65113. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65114. operator VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  65115. {
  65116. return *reinterpret_cast<const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV *>( this );
  65117. }
  65118. operator VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV &() VULKAN_HPP_NOEXCEPT
  65119. {
  65120. return *reinterpret_cast<VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV *>( this );
  65121. }
  65122. #if defined( VULKAN_HPP_USE_REFLECT )
  65123. # if 14 <= VULKAN_HPP_CPP_VERSION
  65124. auto
  65125. # else
  65126. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  65127. # endif
  65128. reflect() const VULKAN_HPP_NOEXCEPT
  65129. {
  65130. return std::tie( sType, pNext, rayTracingInvocationReorder );
  65131. }
  65132. #endif
  65133. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65134. auto operator<=>( PhysicalDeviceRayTracingInvocationReorderFeaturesNV const & ) const = default;
  65135. #else
  65136. bool operator==( PhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  65137. {
  65138. # if defined( VULKAN_HPP_USE_REFLECT )
  65139. return this->reflect() == rhs.reflect();
  65140. # else
  65141. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayTracingInvocationReorder == rhs.rayTracingInvocationReorder );
  65142. # endif
  65143. }
  65144. bool operator!=( PhysicalDeviceRayTracingInvocationReorderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  65145. {
  65146. return !operator==( rhs );
  65147. }
  65148. #endif
  65149. public:
  65150. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingInvocationReorderFeaturesNV;
  65151. void * pNext = {};
  65152. VULKAN_HPP_NAMESPACE::Bool32 rayTracingInvocationReorder = {};
  65153. };
  65154. template <>
  65155. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingInvocationReorderFeaturesNV>
  65156. {
  65157. using Type = PhysicalDeviceRayTracingInvocationReorderFeaturesNV;
  65158. };
  65159. struct PhysicalDeviceRayTracingInvocationReorderPropertiesNV
  65160. {
  65161. using NativeType = VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
  65162. static const bool allowDuplicate = false;
  65163. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingInvocationReorderPropertiesNV;
  65164. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65165. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingInvocationReorderPropertiesNV(
  65166. VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint_ =
  65167. VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV::eNone,
  65168. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65169. : pNext( pNext_ )
  65170. , rayTracingInvocationReorderReorderingHint( rayTracingInvocationReorderReorderingHint_ )
  65171. {
  65172. }
  65173. VULKAN_HPP_CONSTEXPR
  65174. PhysicalDeviceRayTracingInvocationReorderPropertiesNV( PhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65175. PhysicalDeviceRayTracingInvocationReorderPropertiesNV( VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  65176. : PhysicalDeviceRayTracingInvocationReorderPropertiesNV( *reinterpret_cast<PhysicalDeviceRayTracingInvocationReorderPropertiesNV const *>( &rhs ) )
  65177. {
  65178. }
  65179. PhysicalDeviceRayTracingInvocationReorderPropertiesNV &
  65180. operator=( PhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65181. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65182. PhysicalDeviceRayTracingInvocationReorderPropertiesNV & operator=( VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  65183. {
  65184. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV const *>( &rhs );
  65185. return *this;
  65186. }
  65187. operator VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  65188. {
  65189. return *reinterpret_cast<const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV *>( this );
  65190. }
  65191. operator VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV &() VULKAN_HPP_NOEXCEPT
  65192. {
  65193. return *reinterpret_cast<VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV *>( this );
  65194. }
  65195. #if defined( VULKAN_HPP_USE_REFLECT )
  65196. # if 14 <= VULKAN_HPP_CPP_VERSION
  65197. auto
  65198. # else
  65199. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV const &>
  65200. # endif
  65201. reflect() const VULKAN_HPP_NOEXCEPT
  65202. {
  65203. return std::tie( sType, pNext, rayTracingInvocationReorderReorderingHint );
  65204. }
  65205. #endif
  65206. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65207. auto operator<=>( PhysicalDeviceRayTracingInvocationReorderPropertiesNV const & ) const = default;
  65208. #else
  65209. bool operator==( PhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  65210. {
  65211. # if defined( VULKAN_HPP_USE_REFLECT )
  65212. return this->reflect() == rhs.reflect();
  65213. # else
  65214. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayTracingInvocationReorderReorderingHint == rhs.rayTracingInvocationReorderReorderingHint );
  65215. # endif
  65216. }
  65217. bool operator!=( PhysicalDeviceRayTracingInvocationReorderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  65218. {
  65219. return !operator==( rhs );
  65220. }
  65221. #endif
  65222. public:
  65223. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingInvocationReorderPropertiesNV;
  65224. void * pNext = {};
  65225. VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint =
  65226. VULKAN_HPP_NAMESPACE::RayTracingInvocationReorderModeNV::eNone;
  65227. };
  65228. template <>
  65229. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingInvocationReorderPropertiesNV>
  65230. {
  65231. using Type = PhysicalDeviceRayTracingInvocationReorderPropertiesNV;
  65232. };
  65233. struct PhysicalDeviceRayTracingMaintenance1FeaturesKHR
  65234. {
  65235. using NativeType = VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
  65236. static const bool allowDuplicate = false;
  65237. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingMaintenance1FeaturesKHR;
  65238. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65239. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMaintenance1FeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1_ = {},
  65240. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2_ = {},
  65241. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65242. : pNext( pNext_ )
  65243. , rayTracingMaintenance1( rayTracingMaintenance1_ )
  65244. , rayTracingPipelineTraceRaysIndirect2( rayTracingPipelineTraceRaysIndirect2_ )
  65245. {
  65246. }
  65247. VULKAN_HPP_CONSTEXPR
  65248. PhysicalDeviceRayTracingMaintenance1FeaturesKHR( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65249. PhysicalDeviceRayTracingMaintenance1FeaturesKHR( VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65250. : PhysicalDeviceRayTracingMaintenance1FeaturesKHR( *reinterpret_cast<PhysicalDeviceRayTracingMaintenance1FeaturesKHR const *>( &rhs ) )
  65251. {
  65252. }
  65253. PhysicalDeviceRayTracingMaintenance1FeaturesKHR & operator=( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65254. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65255. PhysicalDeviceRayTracingMaintenance1FeaturesKHR & operator=( VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65256. {
  65257. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR const *>( &rhs );
  65258. return *this;
  65259. }
  65260. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65261. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMaintenance1FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65262. {
  65263. pNext = pNext_;
  65264. return *this;
  65265. }
  65266. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMaintenance1FeaturesKHR &
  65267. setRayTracingMaintenance1( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1_ ) VULKAN_HPP_NOEXCEPT
  65268. {
  65269. rayTracingMaintenance1 = rayTracingMaintenance1_;
  65270. return *this;
  65271. }
  65272. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMaintenance1FeaturesKHR &
  65273. setRayTracingPipelineTraceRaysIndirect2( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2_ ) VULKAN_HPP_NOEXCEPT
  65274. {
  65275. rayTracingPipelineTraceRaysIndirect2 = rayTracingPipelineTraceRaysIndirect2_;
  65276. return *this;
  65277. }
  65278. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65279. operator VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  65280. {
  65281. return *reinterpret_cast<const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR *>( this );
  65282. }
  65283. operator VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR &() VULKAN_HPP_NOEXCEPT
  65284. {
  65285. return *reinterpret_cast<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR *>( this );
  65286. }
  65287. #if defined( VULKAN_HPP_USE_REFLECT )
  65288. # if 14 <= VULKAN_HPP_CPP_VERSION
  65289. auto
  65290. # else
  65291. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  65292. # endif
  65293. reflect() const VULKAN_HPP_NOEXCEPT
  65294. {
  65295. return std::tie( sType, pNext, rayTracingMaintenance1, rayTracingPipelineTraceRaysIndirect2 );
  65296. }
  65297. #endif
  65298. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65299. auto operator<=>( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & ) const = default;
  65300. #else
  65301. bool operator==( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65302. {
  65303. # if defined( VULKAN_HPP_USE_REFLECT )
  65304. return this->reflect() == rhs.reflect();
  65305. # else
  65306. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayTracingMaintenance1 == rhs.rayTracingMaintenance1 ) &&
  65307. ( rayTracingPipelineTraceRaysIndirect2 == rhs.rayTracingPipelineTraceRaysIndirect2 );
  65308. # endif
  65309. }
  65310. bool operator!=( PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65311. {
  65312. return !operator==( rhs );
  65313. }
  65314. #endif
  65315. public:
  65316. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingMaintenance1FeaturesKHR;
  65317. void * pNext = {};
  65318. VULKAN_HPP_NAMESPACE::Bool32 rayTracingMaintenance1 = {};
  65319. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect2 = {};
  65320. };
  65321. template <>
  65322. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingMaintenance1FeaturesKHR>
  65323. {
  65324. using Type = PhysicalDeviceRayTracingMaintenance1FeaturesKHR;
  65325. };
  65326. struct PhysicalDeviceRayTracingMotionBlurFeaturesNV
  65327. {
  65328. using NativeType = VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
  65329. static const bool allowDuplicate = false;
  65330. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV;
  65331. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65332. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMotionBlurFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur_ = {},
  65333. VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlurPipelineTraceRaysIndirect_ = {},
  65334. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65335. : pNext( pNext_ )
  65336. , rayTracingMotionBlur( rayTracingMotionBlur_ )
  65337. , rayTracingMotionBlurPipelineTraceRaysIndirect( rayTracingMotionBlurPipelineTraceRaysIndirect_ )
  65338. {
  65339. }
  65340. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingMotionBlurFeaturesNV( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65341. PhysicalDeviceRayTracingMotionBlurFeaturesNV( VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  65342. : PhysicalDeviceRayTracingMotionBlurFeaturesNV( *reinterpret_cast<PhysicalDeviceRayTracingMotionBlurFeaturesNV const *>( &rhs ) )
  65343. {
  65344. }
  65345. PhysicalDeviceRayTracingMotionBlurFeaturesNV & operator=( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65346. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65347. PhysicalDeviceRayTracingMotionBlurFeaturesNV & operator=( VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  65348. {
  65349. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV const *>( &rhs );
  65350. return *this;
  65351. }
  65352. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65353. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMotionBlurFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65354. {
  65355. pNext = pNext_;
  65356. return *this;
  65357. }
  65358. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMotionBlurFeaturesNV &
  65359. setRayTracingMotionBlur( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur_ ) VULKAN_HPP_NOEXCEPT
  65360. {
  65361. rayTracingMotionBlur = rayTracingMotionBlur_;
  65362. return *this;
  65363. }
  65364. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingMotionBlurFeaturesNV &
  65365. setRayTracingMotionBlurPipelineTraceRaysIndirect( VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlurPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT
  65366. {
  65367. rayTracingMotionBlurPipelineTraceRaysIndirect = rayTracingMotionBlurPipelineTraceRaysIndirect_;
  65368. return *this;
  65369. }
  65370. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65371. operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  65372. {
  65373. return *reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV *>( this );
  65374. }
  65375. operator VkPhysicalDeviceRayTracingMotionBlurFeaturesNV &() VULKAN_HPP_NOEXCEPT
  65376. {
  65377. return *reinterpret_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV *>( this );
  65378. }
  65379. #if defined( VULKAN_HPP_USE_REFLECT )
  65380. # if 14 <= VULKAN_HPP_CPP_VERSION
  65381. auto
  65382. # else
  65383. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  65384. # endif
  65385. reflect() const VULKAN_HPP_NOEXCEPT
  65386. {
  65387. return std::tie( sType, pNext, rayTracingMotionBlur, rayTracingMotionBlurPipelineTraceRaysIndirect );
  65388. }
  65389. #endif
  65390. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65391. auto operator<=>( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & ) const = default;
  65392. #else
  65393. bool operator==( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  65394. {
  65395. # if defined( VULKAN_HPP_USE_REFLECT )
  65396. return this->reflect() == rhs.reflect();
  65397. # else
  65398. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayTracingMotionBlur == rhs.rayTracingMotionBlur ) &&
  65399. ( rayTracingMotionBlurPipelineTraceRaysIndirect == rhs.rayTracingMotionBlurPipelineTraceRaysIndirect );
  65400. # endif
  65401. }
  65402. bool operator!=( PhysicalDeviceRayTracingMotionBlurFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  65403. {
  65404. return !operator==( rhs );
  65405. }
  65406. #endif
  65407. public:
  65408. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV;
  65409. void * pNext = {};
  65410. VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlur = {};
  65411. VULKAN_HPP_NAMESPACE::Bool32 rayTracingMotionBlurPipelineTraceRaysIndirect = {};
  65412. };
  65413. template <>
  65414. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingMotionBlurFeaturesNV>
  65415. {
  65416. using Type = PhysicalDeviceRayTracingMotionBlurFeaturesNV;
  65417. };
  65418. struct PhysicalDeviceRayTracingPipelineFeaturesKHR
  65419. {
  65420. using NativeType = VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
  65421. static const bool allowDuplicate = false;
  65422. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR;
  65423. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65424. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ = {},
  65425. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ = {},
  65426. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ = {},
  65427. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ = {},
  65428. VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ = {},
  65429. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65430. : pNext( pNext_ )
  65431. , rayTracingPipeline( rayTracingPipeline_ )
  65432. , rayTracingPipelineShaderGroupHandleCaptureReplay( rayTracingPipelineShaderGroupHandleCaptureReplay_ )
  65433. , rayTracingPipelineShaderGroupHandleCaptureReplayMixed( rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ )
  65434. , rayTracingPipelineTraceRaysIndirect( rayTracingPipelineTraceRaysIndirect_ )
  65435. , rayTraversalPrimitiveCulling( rayTraversalPrimitiveCulling_ )
  65436. {
  65437. }
  65438. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65439. PhysicalDeviceRayTracingPipelineFeaturesKHR( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65440. : PhysicalDeviceRayTracingPipelineFeaturesKHR( *reinterpret_cast<PhysicalDeviceRayTracingPipelineFeaturesKHR const *>( &rhs ) )
  65441. {
  65442. }
  65443. PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65444. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65445. PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65446. {
  65447. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR const *>( &rhs );
  65448. return *this;
  65449. }
  65450. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65451. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65452. {
  65453. pNext = pNext_;
  65454. return *this;
  65455. }
  65456. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR &
  65457. setRayTracingPipeline( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ ) VULKAN_HPP_NOEXCEPT
  65458. {
  65459. rayTracingPipeline = rayTracingPipeline_;
  65460. return *this;
  65461. }
  65462. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR &
  65463. setRayTracingPipelineShaderGroupHandleCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  65464. {
  65465. rayTracingPipelineShaderGroupHandleCaptureReplay = rayTracingPipelineShaderGroupHandleCaptureReplay_;
  65466. return *this;
  65467. }
  65468. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplayMixed(
  65469. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ) VULKAN_HPP_NOEXCEPT
  65470. {
  65471. rayTracingPipelineShaderGroupHandleCaptureReplayMixed = rayTracingPipelineShaderGroupHandleCaptureReplayMixed_;
  65472. return *this;
  65473. }
  65474. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR &
  65475. setRayTracingPipelineTraceRaysIndirect( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT
  65476. {
  65477. rayTracingPipelineTraceRaysIndirect = rayTracingPipelineTraceRaysIndirect_;
  65478. return *this;
  65479. }
  65480. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR &
  65481. setRayTraversalPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT
  65482. {
  65483. rayTraversalPrimitiveCulling = rayTraversalPrimitiveCulling_;
  65484. return *this;
  65485. }
  65486. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65487. operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  65488. {
  65489. return *reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR *>( this );
  65490. }
  65491. operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  65492. {
  65493. return *reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR *>( this );
  65494. }
  65495. #if defined( VULKAN_HPP_USE_REFLECT )
  65496. # if 14 <= VULKAN_HPP_CPP_VERSION
  65497. auto
  65498. # else
  65499. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  65500. void * const &,
  65501. VULKAN_HPP_NAMESPACE::Bool32 const &,
  65502. VULKAN_HPP_NAMESPACE::Bool32 const &,
  65503. VULKAN_HPP_NAMESPACE::Bool32 const &,
  65504. VULKAN_HPP_NAMESPACE::Bool32 const &,
  65505. VULKAN_HPP_NAMESPACE::Bool32 const &>
  65506. # endif
  65507. reflect() const VULKAN_HPP_NOEXCEPT
  65508. {
  65509. return std::tie( sType,
  65510. pNext,
  65511. rayTracingPipeline,
  65512. rayTracingPipelineShaderGroupHandleCaptureReplay,
  65513. rayTracingPipelineShaderGroupHandleCaptureReplayMixed,
  65514. rayTracingPipelineTraceRaysIndirect,
  65515. rayTraversalPrimitiveCulling );
  65516. }
  65517. #endif
  65518. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65519. auto operator<=>( PhysicalDeviceRayTracingPipelineFeaturesKHR const & ) const = default;
  65520. #else
  65521. bool operator==( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65522. {
  65523. # if defined( VULKAN_HPP_USE_REFLECT )
  65524. return this->reflect() == rhs.reflect();
  65525. # else
  65526. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayTracingPipeline == rhs.rayTracingPipeline ) &&
  65527. ( rayTracingPipelineShaderGroupHandleCaptureReplay == rhs.rayTracingPipelineShaderGroupHandleCaptureReplay ) &&
  65528. ( rayTracingPipelineShaderGroupHandleCaptureReplayMixed == rhs.rayTracingPipelineShaderGroupHandleCaptureReplayMixed ) &&
  65529. ( rayTracingPipelineTraceRaysIndirect == rhs.rayTracingPipelineTraceRaysIndirect ) &&
  65530. ( rayTraversalPrimitiveCulling == rhs.rayTraversalPrimitiveCulling );
  65531. # endif
  65532. }
  65533. bool operator!=( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65534. {
  65535. return !operator==( rhs );
  65536. }
  65537. #endif
  65538. public:
  65539. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR;
  65540. void * pNext = {};
  65541. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline = {};
  65542. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay = {};
  65543. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed = {};
  65544. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect = {};
  65545. VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling = {};
  65546. };
  65547. template <>
  65548. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR>
  65549. {
  65550. using Type = PhysicalDeviceRayTracingPipelineFeaturesKHR;
  65551. };
  65552. struct PhysicalDeviceRayTracingPipelinePropertiesKHR
  65553. {
  65554. using NativeType = VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
  65555. static const bool allowDuplicate = false;
  65556. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR;
  65557. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65558. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelinePropertiesKHR( uint32_t shaderGroupHandleSize_ = {},
  65559. uint32_t maxRayRecursionDepth_ = {},
  65560. uint32_t maxShaderGroupStride_ = {},
  65561. uint32_t shaderGroupBaseAlignment_ = {},
  65562. uint32_t shaderGroupHandleCaptureReplaySize_ = {},
  65563. uint32_t maxRayDispatchInvocationCount_ = {},
  65564. uint32_t shaderGroupHandleAlignment_ = {},
  65565. uint32_t maxRayHitAttributeSize_ = {},
  65566. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65567. : pNext( pNext_ )
  65568. , shaderGroupHandleSize( shaderGroupHandleSize_ )
  65569. , maxRayRecursionDepth( maxRayRecursionDepth_ )
  65570. , maxShaderGroupStride( maxShaderGroupStride_ )
  65571. , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ )
  65572. , shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ )
  65573. , maxRayDispatchInvocationCount( maxRayDispatchInvocationCount_ )
  65574. , shaderGroupHandleAlignment( shaderGroupHandleAlignment_ )
  65575. , maxRayHitAttributeSize( maxRayHitAttributeSize_ )
  65576. {
  65577. }
  65578. VULKAN_HPP_CONSTEXPR
  65579. PhysicalDeviceRayTracingPipelinePropertiesKHR( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65580. PhysicalDeviceRayTracingPipelinePropertiesKHR( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65581. : PhysicalDeviceRayTracingPipelinePropertiesKHR( *reinterpret_cast<PhysicalDeviceRayTracingPipelinePropertiesKHR const *>( &rhs ) )
  65582. {
  65583. }
  65584. PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65585. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65586. PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65587. {
  65588. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR const *>( &rhs );
  65589. return *this;
  65590. }
  65591. operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  65592. {
  65593. return *reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR *>( this );
  65594. }
  65595. operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  65596. {
  65597. return *reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR *>( this );
  65598. }
  65599. #if defined( VULKAN_HPP_USE_REFLECT )
  65600. # if 14 <= VULKAN_HPP_CPP_VERSION
  65601. auto
  65602. # else
  65603. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  65604. void * const &,
  65605. uint32_t const &,
  65606. uint32_t const &,
  65607. uint32_t const &,
  65608. uint32_t const &,
  65609. uint32_t const &,
  65610. uint32_t const &,
  65611. uint32_t const &,
  65612. uint32_t const &>
  65613. # endif
  65614. reflect() const VULKAN_HPP_NOEXCEPT
  65615. {
  65616. return std::tie( sType,
  65617. pNext,
  65618. shaderGroupHandleSize,
  65619. maxRayRecursionDepth,
  65620. maxShaderGroupStride,
  65621. shaderGroupBaseAlignment,
  65622. shaderGroupHandleCaptureReplaySize,
  65623. maxRayDispatchInvocationCount,
  65624. shaderGroupHandleAlignment,
  65625. maxRayHitAttributeSize );
  65626. }
  65627. #endif
  65628. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65629. auto operator<=>( PhysicalDeviceRayTracingPipelinePropertiesKHR const & ) const = default;
  65630. #else
  65631. bool operator==( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65632. {
  65633. # if defined( VULKAN_HPP_USE_REFLECT )
  65634. return this->reflect() == rhs.reflect();
  65635. # else
  65636. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize ) &&
  65637. ( maxRayRecursionDepth == rhs.maxRayRecursionDepth ) && ( maxShaderGroupStride == rhs.maxShaderGroupStride ) &&
  65638. ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment ) && ( shaderGroupHandleCaptureReplaySize == rhs.shaderGroupHandleCaptureReplaySize ) &&
  65639. ( maxRayDispatchInvocationCount == rhs.maxRayDispatchInvocationCount ) && ( shaderGroupHandleAlignment == rhs.shaderGroupHandleAlignment ) &&
  65640. ( maxRayHitAttributeSize == rhs.maxRayHitAttributeSize );
  65641. # endif
  65642. }
  65643. bool operator!=( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65644. {
  65645. return !operator==( rhs );
  65646. }
  65647. #endif
  65648. public:
  65649. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR;
  65650. void * pNext = {};
  65651. uint32_t shaderGroupHandleSize = {};
  65652. uint32_t maxRayRecursionDepth = {};
  65653. uint32_t maxShaderGroupStride = {};
  65654. uint32_t shaderGroupBaseAlignment = {};
  65655. uint32_t shaderGroupHandleCaptureReplaySize = {};
  65656. uint32_t maxRayDispatchInvocationCount = {};
  65657. uint32_t shaderGroupHandleAlignment = {};
  65658. uint32_t maxRayHitAttributeSize = {};
  65659. };
  65660. template <>
  65661. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR>
  65662. {
  65663. using Type = PhysicalDeviceRayTracingPipelinePropertiesKHR;
  65664. };
  65665. struct PhysicalDeviceRayTracingPositionFetchFeaturesKHR
  65666. {
  65667. using NativeType = VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
  65668. static const bool allowDuplicate = false;
  65669. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPositionFetchFeaturesKHR;
  65670. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65671. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPositionFetchFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPositionFetch_ = {},
  65672. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65673. : pNext( pNext_ )
  65674. , rayTracingPositionFetch( rayTracingPositionFetch_ )
  65675. {
  65676. }
  65677. VULKAN_HPP_CONSTEXPR
  65678. PhysicalDeviceRayTracingPositionFetchFeaturesKHR( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65679. PhysicalDeviceRayTracingPositionFetchFeaturesKHR( VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65680. : PhysicalDeviceRayTracingPositionFetchFeaturesKHR( *reinterpret_cast<PhysicalDeviceRayTracingPositionFetchFeaturesKHR const *>( &rhs ) )
  65681. {
  65682. }
  65683. PhysicalDeviceRayTracingPositionFetchFeaturesKHR & operator=( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65684. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65685. PhysicalDeviceRayTracingPositionFetchFeaturesKHR & operator=( VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  65686. {
  65687. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR const *>( &rhs );
  65688. return *this;
  65689. }
  65690. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65691. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPositionFetchFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65692. {
  65693. pNext = pNext_;
  65694. return *this;
  65695. }
  65696. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPositionFetchFeaturesKHR &
  65697. setRayTracingPositionFetch( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPositionFetch_ ) VULKAN_HPP_NOEXCEPT
  65698. {
  65699. rayTracingPositionFetch = rayTracingPositionFetch_;
  65700. return *this;
  65701. }
  65702. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65703. operator VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  65704. {
  65705. return *reinterpret_cast<const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR *>( this );
  65706. }
  65707. operator VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  65708. {
  65709. return *reinterpret_cast<VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR *>( this );
  65710. }
  65711. #if defined( VULKAN_HPP_USE_REFLECT )
  65712. # if 14 <= VULKAN_HPP_CPP_VERSION
  65713. auto
  65714. # else
  65715. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  65716. # endif
  65717. reflect() const VULKAN_HPP_NOEXCEPT
  65718. {
  65719. return std::tie( sType, pNext, rayTracingPositionFetch );
  65720. }
  65721. #endif
  65722. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65723. auto operator<=>( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & ) const = default;
  65724. #else
  65725. bool operator==( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65726. {
  65727. # if defined( VULKAN_HPP_USE_REFLECT )
  65728. return this->reflect() == rhs.reflect();
  65729. # else
  65730. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayTracingPositionFetch == rhs.rayTracingPositionFetch );
  65731. # endif
  65732. }
  65733. bool operator!=( PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  65734. {
  65735. return !operator==( rhs );
  65736. }
  65737. #endif
  65738. public:
  65739. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPositionFetchFeaturesKHR;
  65740. void * pNext = {};
  65741. VULKAN_HPP_NAMESPACE::Bool32 rayTracingPositionFetch = {};
  65742. };
  65743. template <>
  65744. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPositionFetchFeaturesKHR>
  65745. {
  65746. using Type = PhysicalDeviceRayTracingPositionFetchFeaturesKHR;
  65747. };
  65748. struct PhysicalDeviceRayTracingPropertiesNV
  65749. {
  65750. using NativeType = VkPhysicalDeviceRayTracingPropertiesNV;
  65751. static const bool allowDuplicate = false;
  65752. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
  65753. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65754. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( uint32_t shaderGroupHandleSize_ = {},
  65755. uint32_t maxRecursionDepth_ = {},
  65756. uint32_t maxShaderGroupStride_ = {},
  65757. uint32_t shaderGroupBaseAlignment_ = {},
  65758. uint64_t maxGeometryCount_ = {},
  65759. uint64_t maxInstanceCount_ = {},
  65760. uint64_t maxTriangleCount_ = {},
  65761. uint32_t maxDescriptorSetAccelerationStructures_ = {},
  65762. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65763. : pNext( pNext_ )
  65764. , shaderGroupHandleSize( shaderGroupHandleSize_ )
  65765. , maxRecursionDepth( maxRecursionDepth_ )
  65766. , maxShaderGroupStride( maxShaderGroupStride_ )
  65767. , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ )
  65768. , maxGeometryCount( maxGeometryCount_ )
  65769. , maxInstanceCount( maxInstanceCount_ )
  65770. , maxTriangleCount( maxTriangleCount_ )
  65771. , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ )
  65772. {
  65773. }
  65774. VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65775. PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  65776. : PhysicalDeviceRayTracingPropertiesNV( *reinterpret_cast<PhysicalDeviceRayTracingPropertiesNV const *>( &rhs ) )
  65777. {
  65778. }
  65779. PhysicalDeviceRayTracingPropertiesNV & operator=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65780. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65781. PhysicalDeviceRayTracingPropertiesNV & operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  65782. {
  65783. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const *>( &rhs );
  65784. return *this;
  65785. }
  65786. operator VkPhysicalDeviceRayTracingPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  65787. {
  65788. return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV *>( this );
  65789. }
  65790. operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT
  65791. {
  65792. return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV *>( this );
  65793. }
  65794. #if defined( VULKAN_HPP_USE_REFLECT )
  65795. # if 14 <= VULKAN_HPP_CPP_VERSION
  65796. auto
  65797. # else
  65798. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  65799. void * const &,
  65800. uint32_t const &,
  65801. uint32_t const &,
  65802. uint32_t const &,
  65803. uint32_t const &,
  65804. uint64_t const &,
  65805. uint64_t const &,
  65806. uint64_t const &,
  65807. uint32_t const &>
  65808. # endif
  65809. reflect() const VULKAN_HPP_NOEXCEPT
  65810. {
  65811. return std::tie( sType,
  65812. pNext,
  65813. shaderGroupHandleSize,
  65814. maxRecursionDepth,
  65815. maxShaderGroupStride,
  65816. shaderGroupBaseAlignment,
  65817. maxGeometryCount,
  65818. maxInstanceCount,
  65819. maxTriangleCount,
  65820. maxDescriptorSetAccelerationStructures );
  65821. }
  65822. #endif
  65823. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65824. auto operator<=>( PhysicalDeviceRayTracingPropertiesNV const & ) const = default;
  65825. #else
  65826. bool operator==( PhysicalDeviceRayTracingPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  65827. {
  65828. # if defined( VULKAN_HPP_USE_REFLECT )
  65829. return this->reflect() == rhs.reflect();
  65830. # else
  65831. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize ) &&
  65832. ( maxRecursionDepth == rhs.maxRecursionDepth ) && ( maxShaderGroupStride == rhs.maxShaderGroupStride ) &&
  65833. ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment ) && ( maxGeometryCount == rhs.maxGeometryCount ) &&
  65834. ( maxInstanceCount == rhs.maxInstanceCount ) && ( maxTriangleCount == rhs.maxTriangleCount ) &&
  65835. ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures );
  65836. # endif
  65837. }
  65838. bool operator!=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  65839. {
  65840. return !operator==( rhs );
  65841. }
  65842. #endif
  65843. public:
  65844. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
  65845. void * pNext = {};
  65846. uint32_t shaderGroupHandleSize = {};
  65847. uint32_t maxRecursionDepth = {};
  65848. uint32_t maxShaderGroupStride = {};
  65849. uint32_t shaderGroupBaseAlignment = {};
  65850. uint64_t maxGeometryCount = {};
  65851. uint64_t maxInstanceCount = {};
  65852. uint64_t maxTriangleCount = {};
  65853. uint32_t maxDescriptorSetAccelerationStructures = {};
  65854. };
  65855. template <>
  65856. struct CppType<StructureType, StructureType::ePhysicalDeviceRayTracingPropertiesNV>
  65857. {
  65858. using Type = PhysicalDeviceRayTracingPropertiesNV;
  65859. };
  65860. struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
  65861. {
  65862. using NativeType = VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  65863. static const bool allowDuplicate = false;
  65864. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  65865. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65866. VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {},
  65867. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65868. : pNext( pNext_ )
  65869. , representativeFragmentTest( representativeFragmentTest_ )
  65870. {
  65871. }
  65872. VULKAN_HPP_CONSTEXPR
  65873. PhysicalDeviceRepresentativeFragmentTestFeaturesNV( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65874. PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  65875. : PhysicalDeviceRepresentativeFragmentTestFeaturesNV( *reinterpret_cast<PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>( &rhs ) )
  65876. {
  65877. }
  65878. PhysicalDeviceRepresentativeFragmentTestFeaturesNV &
  65879. operator=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65880. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65881. PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  65882. {
  65883. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV const *>( &rhs );
  65884. return *this;
  65885. }
  65886. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65887. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65888. {
  65889. pNext = pNext_;
  65890. return *this;
  65891. }
  65892. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRepresentativeFragmentTestFeaturesNV &
  65893. setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT
  65894. {
  65895. representativeFragmentTest = representativeFragmentTest_;
  65896. return *this;
  65897. }
  65898. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65899. operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  65900. {
  65901. return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV *>( this );
  65902. }
  65903. operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT
  65904. {
  65905. return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV *>( this );
  65906. }
  65907. #if defined( VULKAN_HPP_USE_REFLECT )
  65908. # if 14 <= VULKAN_HPP_CPP_VERSION
  65909. auto
  65910. # else
  65911. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  65912. # endif
  65913. reflect() const VULKAN_HPP_NOEXCEPT
  65914. {
  65915. return std::tie( sType, pNext, representativeFragmentTest );
  65916. }
  65917. #endif
  65918. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  65919. auto operator<=>( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & ) const = default;
  65920. #else
  65921. bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  65922. {
  65923. # if defined( VULKAN_HPP_USE_REFLECT )
  65924. return this->reflect() == rhs.reflect();
  65925. # else
  65926. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( representativeFragmentTest == rhs.representativeFragmentTest );
  65927. # endif
  65928. }
  65929. bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  65930. {
  65931. return !operator==( rhs );
  65932. }
  65933. #endif
  65934. public:
  65935. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  65936. void * pNext = {};
  65937. VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {};
  65938. };
  65939. template <>
  65940. struct CppType<StructureType, StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV>
  65941. {
  65942. using Type = PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  65943. };
  65944. struct PhysicalDeviceRobustness2FeaturesEXT
  65945. {
  65946. using NativeType = VkPhysicalDeviceRobustness2FeaturesEXT;
  65947. static const bool allowDuplicate = false;
  65948. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
  65949. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  65950. VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ = {},
  65951. VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {},
  65952. VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {},
  65953. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  65954. : pNext( pNext_ )
  65955. , robustBufferAccess2( robustBufferAccess2_ )
  65956. , robustImageAccess2( robustImageAccess2_ )
  65957. , nullDescriptor( nullDescriptor_ )
  65958. {
  65959. }
  65960. VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65961. PhysicalDeviceRobustness2FeaturesEXT( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  65962. : PhysicalDeviceRobustness2FeaturesEXT( *reinterpret_cast<PhysicalDeviceRobustness2FeaturesEXT const *>( &rhs ) )
  65963. {
  65964. }
  65965. PhysicalDeviceRobustness2FeaturesEXT & operator=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  65966. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  65967. PhysicalDeviceRobustness2FeaturesEXT & operator=( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  65968. {
  65969. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT const *>( &rhs );
  65970. return *this;
  65971. }
  65972. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  65973. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  65974. {
  65975. pNext = pNext_;
  65976. return *this;
  65977. }
  65978. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT &
  65979. setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT
  65980. {
  65981. robustBufferAccess2 = robustBufferAccess2_;
  65982. return *this;
  65983. }
  65984. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & setRobustImageAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ ) VULKAN_HPP_NOEXCEPT
  65985. {
  65986. robustImageAccess2 = robustImageAccess2_;
  65987. return *this;
  65988. }
  65989. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & setNullDescriptor( VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ ) VULKAN_HPP_NOEXCEPT
  65990. {
  65991. nullDescriptor = nullDescriptor_;
  65992. return *this;
  65993. }
  65994. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  65995. operator VkPhysicalDeviceRobustness2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  65996. {
  65997. return *reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT *>( this );
  65998. }
  65999. operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  66000. {
  66001. return *reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT *>( this );
  66002. }
  66003. #if defined( VULKAN_HPP_USE_REFLECT )
  66004. # if 14 <= VULKAN_HPP_CPP_VERSION
  66005. auto
  66006. # else
  66007. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  66008. void * const &,
  66009. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66010. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66011. VULKAN_HPP_NAMESPACE::Bool32 const &>
  66012. # endif
  66013. reflect() const VULKAN_HPP_NOEXCEPT
  66014. {
  66015. return std::tie( sType, pNext, robustBufferAccess2, robustImageAccess2, nullDescriptor );
  66016. }
  66017. #endif
  66018. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66019. auto operator<=>( PhysicalDeviceRobustness2FeaturesEXT const & ) const = default;
  66020. #else
  66021. bool operator==( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  66022. {
  66023. # if defined( VULKAN_HPP_USE_REFLECT )
  66024. return this->reflect() == rhs.reflect();
  66025. # else
  66026. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( robustBufferAccess2 == rhs.robustBufferAccess2 ) &&
  66027. ( robustImageAccess2 == rhs.robustImageAccess2 ) && ( nullDescriptor == rhs.nullDescriptor );
  66028. # endif
  66029. }
  66030. bool operator!=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  66031. {
  66032. return !operator==( rhs );
  66033. }
  66034. #endif
  66035. public:
  66036. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT;
  66037. void * pNext = {};
  66038. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2 = {};
  66039. VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2 = {};
  66040. VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor = {};
  66041. };
  66042. template <>
  66043. struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2FeaturesEXT>
  66044. {
  66045. using Type = PhysicalDeviceRobustness2FeaturesEXT;
  66046. };
  66047. struct PhysicalDeviceRobustness2PropertiesEXT
  66048. {
  66049. using NativeType = VkPhysicalDeviceRobustness2PropertiesEXT;
  66050. static const bool allowDuplicate = false;
  66051. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
  66052. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66053. VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {},
  66054. VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {},
  66055. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66056. : pNext( pNext_ )
  66057. , robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ )
  66058. , robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ )
  66059. {
  66060. }
  66061. VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66062. PhysicalDeviceRobustness2PropertiesEXT( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  66063. : PhysicalDeviceRobustness2PropertiesEXT( *reinterpret_cast<PhysicalDeviceRobustness2PropertiesEXT const *>( &rhs ) )
  66064. {
  66065. }
  66066. PhysicalDeviceRobustness2PropertiesEXT & operator=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66067. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66068. PhysicalDeviceRobustness2PropertiesEXT & operator=( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  66069. {
  66070. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT const *>( &rhs );
  66071. return *this;
  66072. }
  66073. operator VkPhysicalDeviceRobustness2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  66074. {
  66075. return *reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT *>( this );
  66076. }
  66077. operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT
  66078. {
  66079. return *reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT *>( this );
  66080. }
  66081. #if defined( VULKAN_HPP_USE_REFLECT )
  66082. # if 14 <= VULKAN_HPP_CPP_VERSION
  66083. auto
  66084. # else
  66085. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  66086. # endif
  66087. reflect() const VULKAN_HPP_NOEXCEPT
  66088. {
  66089. return std::tie( sType, pNext, robustStorageBufferAccessSizeAlignment, robustUniformBufferAccessSizeAlignment );
  66090. }
  66091. #endif
  66092. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66093. auto operator<=>( PhysicalDeviceRobustness2PropertiesEXT const & ) const = default;
  66094. #else
  66095. bool operator==( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  66096. {
  66097. # if defined( VULKAN_HPP_USE_REFLECT )
  66098. return this->reflect() == rhs.reflect();
  66099. # else
  66100. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( robustStorageBufferAccessSizeAlignment == rhs.robustStorageBufferAccessSizeAlignment ) &&
  66101. ( robustUniformBufferAccessSizeAlignment == rhs.robustUniformBufferAccessSizeAlignment );
  66102. # endif
  66103. }
  66104. bool operator!=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  66105. {
  66106. return !operator==( rhs );
  66107. }
  66108. #endif
  66109. public:
  66110. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT;
  66111. void * pNext = {};
  66112. VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment = {};
  66113. VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment = {};
  66114. };
  66115. template <>
  66116. struct CppType<StructureType, StructureType::ePhysicalDeviceRobustness2PropertiesEXT>
  66117. {
  66118. using Type = PhysicalDeviceRobustness2PropertiesEXT;
  66119. };
  66120. struct PhysicalDeviceSampleLocationsPropertiesEXT
  66121. {
  66122. using NativeType = VkPhysicalDeviceSampleLocationsPropertiesEXT;
  66123. static const bool allowDuplicate = false;
  66124. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
  66125. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66126. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts_ = {},
  66127. VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {},
  66128. std::array<float, 2> const & sampleLocationCoordinateRange_ = {},
  66129. uint32_t sampleLocationSubPixelBits_ = {},
  66130. VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations_ = {},
  66131. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66132. : pNext( pNext_ )
  66133. , sampleLocationSampleCounts( sampleLocationSampleCounts_ )
  66134. , maxSampleLocationGridSize( maxSampleLocationGridSize_ )
  66135. , sampleLocationCoordinateRange( sampleLocationCoordinateRange_ )
  66136. , sampleLocationSubPixelBits( sampleLocationSubPixelBits_ )
  66137. , variableSampleLocations( variableSampleLocations_ )
  66138. {
  66139. }
  66140. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66141. PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  66142. : PhysicalDeviceSampleLocationsPropertiesEXT( *reinterpret_cast<PhysicalDeviceSampleLocationsPropertiesEXT const *>( &rhs ) )
  66143. {
  66144. }
  66145. PhysicalDeviceSampleLocationsPropertiesEXT & operator=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66146. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66147. PhysicalDeviceSampleLocationsPropertiesEXT & operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  66148. {
  66149. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT const *>( &rhs );
  66150. return *this;
  66151. }
  66152. operator VkPhysicalDeviceSampleLocationsPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  66153. {
  66154. return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT *>( this );
  66155. }
  66156. operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  66157. {
  66158. return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT *>( this );
  66159. }
  66160. #if defined( VULKAN_HPP_USE_REFLECT )
  66161. # if 14 <= VULKAN_HPP_CPP_VERSION
  66162. auto
  66163. # else
  66164. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  66165. void * const &,
  66166. VULKAN_HPP_NAMESPACE::SampleCountFlags const &,
  66167. VULKAN_HPP_NAMESPACE::Extent2D const &,
  66168. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> const &,
  66169. uint32_t const &,
  66170. VULKAN_HPP_NAMESPACE::Bool32 const &>
  66171. # endif
  66172. reflect() const VULKAN_HPP_NOEXCEPT
  66173. {
  66174. return std::tie( sType,
  66175. pNext,
  66176. sampleLocationSampleCounts,
  66177. maxSampleLocationGridSize,
  66178. sampleLocationCoordinateRange,
  66179. sampleLocationSubPixelBits,
  66180. variableSampleLocations );
  66181. }
  66182. #endif
  66183. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66184. auto operator<=>( PhysicalDeviceSampleLocationsPropertiesEXT const & ) const = default;
  66185. #else
  66186. bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  66187. {
  66188. # if defined( VULKAN_HPP_USE_REFLECT )
  66189. return this->reflect() == rhs.reflect();
  66190. # else
  66191. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts ) &&
  66192. ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize ) && ( sampleLocationCoordinateRange == rhs.sampleLocationCoordinateRange ) &&
  66193. ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits ) && ( variableSampleLocations == rhs.variableSampleLocations );
  66194. # endif
  66195. }
  66196. bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  66197. {
  66198. return !operator==( rhs );
  66199. }
  66200. #endif
  66201. public:
  66202. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
  66203. void * pNext = {};
  66204. VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {};
  66205. VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {};
  66206. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<float, 2> sampleLocationCoordinateRange = {};
  66207. uint32_t sampleLocationSubPixelBits = {};
  66208. VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {};
  66209. };
  66210. template <>
  66211. struct CppType<StructureType, StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT>
  66212. {
  66213. using Type = PhysicalDeviceSampleLocationsPropertiesEXT;
  66214. };
  66215. struct PhysicalDeviceSamplerFilterMinmaxProperties
  66216. {
  66217. using NativeType = VkPhysicalDeviceSamplerFilterMinmaxProperties;
  66218. static const bool allowDuplicate = false;
  66219. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
  66220. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66221. VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {},
  66222. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {},
  66223. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66224. : pNext( pNext_ )
  66225. , filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ )
  66226. , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
  66227. {
  66228. }
  66229. VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66230. PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  66231. : PhysicalDeviceSamplerFilterMinmaxProperties( *reinterpret_cast<PhysicalDeviceSamplerFilterMinmaxProperties const *>( &rhs ) )
  66232. {
  66233. }
  66234. PhysicalDeviceSamplerFilterMinmaxProperties & operator=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66235. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66236. PhysicalDeviceSamplerFilterMinmaxProperties & operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  66237. {
  66238. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties const *>( &rhs );
  66239. return *this;
  66240. }
  66241. operator VkPhysicalDeviceSamplerFilterMinmaxProperties const &() const VULKAN_HPP_NOEXCEPT
  66242. {
  66243. return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties *>( this );
  66244. }
  66245. operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT
  66246. {
  66247. return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties *>( this );
  66248. }
  66249. #if defined( VULKAN_HPP_USE_REFLECT )
  66250. # if 14 <= VULKAN_HPP_CPP_VERSION
  66251. auto
  66252. # else
  66253. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  66254. # endif
  66255. reflect() const VULKAN_HPP_NOEXCEPT
  66256. {
  66257. return std::tie( sType, pNext, filterMinmaxSingleComponentFormats, filterMinmaxImageComponentMapping );
  66258. }
  66259. #endif
  66260. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66261. auto operator<=>( PhysicalDeviceSamplerFilterMinmaxProperties const & ) const = default;
  66262. #else
  66263. bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  66264. {
  66265. # if defined( VULKAN_HPP_USE_REFLECT )
  66266. return this->reflect() == rhs.reflect();
  66267. # else
  66268. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) &&
  66269. ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping );
  66270. # endif
  66271. }
  66272. bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  66273. {
  66274. return !operator==( rhs );
  66275. }
  66276. #endif
  66277. public:
  66278. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties;
  66279. void * pNext = {};
  66280. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
  66281. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
  66282. };
  66283. template <>
  66284. struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties>
  66285. {
  66286. using Type = PhysicalDeviceSamplerFilterMinmaxProperties;
  66287. };
  66288. using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
  66289. struct PhysicalDeviceSamplerYcbcrConversionFeatures
  66290. {
  66291. using NativeType = VkPhysicalDeviceSamplerYcbcrConversionFeatures;
  66292. static const bool allowDuplicate = false;
  66293. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
  66294. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66295. VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {},
  66296. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66297. : pNext( pNext_ )
  66298. , samplerYcbcrConversion( samplerYcbcrConversion_ )
  66299. {
  66300. }
  66301. VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66302. PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  66303. : PhysicalDeviceSamplerYcbcrConversionFeatures( *reinterpret_cast<PhysicalDeviceSamplerYcbcrConversionFeatures const *>( &rhs ) )
  66304. {
  66305. }
  66306. PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66307. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66308. PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  66309. {
  66310. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures const *>( &rhs );
  66311. return *this;
  66312. }
  66313. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66314. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66315. {
  66316. pNext = pNext_;
  66317. return *this;
  66318. }
  66319. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerYcbcrConversionFeatures &
  66320. setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
  66321. {
  66322. samplerYcbcrConversion = samplerYcbcrConversion_;
  66323. return *this;
  66324. }
  66325. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66326. operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const &() const VULKAN_HPP_NOEXCEPT
  66327. {
  66328. return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures *>( this );
  66329. }
  66330. operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT
  66331. {
  66332. return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures *>( this );
  66333. }
  66334. #if defined( VULKAN_HPP_USE_REFLECT )
  66335. # if 14 <= VULKAN_HPP_CPP_VERSION
  66336. auto
  66337. # else
  66338. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  66339. # endif
  66340. reflect() const VULKAN_HPP_NOEXCEPT
  66341. {
  66342. return std::tie( sType, pNext, samplerYcbcrConversion );
  66343. }
  66344. #endif
  66345. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66346. auto operator<=>( PhysicalDeviceSamplerYcbcrConversionFeatures const & ) const = default;
  66347. #else
  66348. bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  66349. {
  66350. # if defined( VULKAN_HPP_USE_REFLECT )
  66351. return this->reflect() == rhs.reflect();
  66352. # else
  66353. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion );
  66354. # endif
  66355. }
  66356. bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  66357. {
  66358. return !operator==( rhs );
  66359. }
  66360. #endif
  66361. public:
  66362. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
  66363. void * pNext = {};
  66364. VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
  66365. };
  66366. template <>
  66367. struct CppType<StructureType, StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures>
  66368. {
  66369. using Type = PhysicalDeviceSamplerYcbcrConversionFeatures;
  66370. };
  66371. using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
  66372. struct PhysicalDeviceScalarBlockLayoutFeatures
  66373. {
  66374. using NativeType = VkPhysicalDeviceScalarBlockLayoutFeatures;
  66375. static const bool allowDuplicate = false;
  66376. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
  66377. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66378. VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {},
  66379. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66380. : pNext( pNext_ )
  66381. , scalarBlockLayout( scalarBlockLayout_ )
  66382. {
  66383. }
  66384. VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66385. PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  66386. : PhysicalDeviceScalarBlockLayoutFeatures( *reinterpret_cast<PhysicalDeviceScalarBlockLayoutFeatures const *>( &rhs ) )
  66387. {
  66388. }
  66389. PhysicalDeviceScalarBlockLayoutFeatures & operator=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66390. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66391. PhysicalDeviceScalarBlockLayoutFeatures & operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  66392. {
  66393. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures const *>( &rhs );
  66394. return *this;
  66395. }
  66396. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66397. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66398. {
  66399. pNext = pNext_;
  66400. return *this;
  66401. }
  66402. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceScalarBlockLayoutFeatures &
  66403. setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
  66404. {
  66405. scalarBlockLayout = scalarBlockLayout_;
  66406. return *this;
  66407. }
  66408. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66409. operator VkPhysicalDeviceScalarBlockLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
  66410. {
  66411. return *reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures *>( this );
  66412. }
  66413. operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT
  66414. {
  66415. return *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures *>( this );
  66416. }
  66417. #if defined( VULKAN_HPP_USE_REFLECT )
  66418. # if 14 <= VULKAN_HPP_CPP_VERSION
  66419. auto
  66420. # else
  66421. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  66422. # endif
  66423. reflect() const VULKAN_HPP_NOEXCEPT
  66424. {
  66425. return std::tie( sType, pNext, scalarBlockLayout );
  66426. }
  66427. #endif
  66428. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66429. auto operator<=>( PhysicalDeviceScalarBlockLayoutFeatures const & ) const = default;
  66430. #else
  66431. bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  66432. {
  66433. # if defined( VULKAN_HPP_USE_REFLECT )
  66434. return this->reflect() == rhs.reflect();
  66435. # else
  66436. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( scalarBlockLayout == rhs.scalarBlockLayout );
  66437. # endif
  66438. }
  66439. bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  66440. {
  66441. return !operator==( rhs );
  66442. }
  66443. #endif
  66444. public:
  66445. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures;
  66446. void * pNext = {};
  66447. VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
  66448. };
  66449. template <>
  66450. struct CppType<StructureType, StructureType::ePhysicalDeviceScalarBlockLayoutFeatures>
  66451. {
  66452. using Type = PhysicalDeviceScalarBlockLayoutFeatures;
  66453. };
  66454. using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
  66455. struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures
  66456. {
  66457. using NativeType = VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  66458. static const bool allowDuplicate = false;
  66459. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  66460. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66461. VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {},
  66462. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66463. : pNext( pNext_ )
  66464. , separateDepthStencilLayouts( separateDepthStencilLayouts_ )
  66465. {
  66466. }
  66467. VULKAN_HPP_CONSTEXPR
  66468. PhysicalDeviceSeparateDepthStencilLayoutsFeatures( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66469. PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  66470. : PhysicalDeviceSeparateDepthStencilLayoutsFeatures( *reinterpret_cast<PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>( &rhs ) )
  66471. {
  66472. }
  66473. PhysicalDeviceSeparateDepthStencilLayoutsFeatures &
  66474. operator=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66475. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66476. PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  66477. {
  66478. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const *>( &rhs );
  66479. return *this;
  66480. }
  66481. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66482. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66483. {
  66484. pNext = pNext_;
  66485. return *this;
  66486. }
  66487. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSeparateDepthStencilLayoutsFeatures &
  66488. setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
  66489. {
  66490. separateDepthStencilLayouts = separateDepthStencilLayouts_;
  66491. return *this;
  66492. }
  66493. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66494. operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const &() const VULKAN_HPP_NOEXCEPT
  66495. {
  66496. return *reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *>( this );
  66497. }
  66498. operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT
  66499. {
  66500. return *reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *>( this );
  66501. }
  66502. #if defined( VULKAN_HPP_USE_REFLECT )
  66503. # if 14 <= VULKAN_HPP_CPP_VERSION
  66504. auto
  66505. # else
  66506. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  66507. # endif
  66508. reflect() const VULKAN_HPP_NOEXCEPT
  66509. {
  66510. return std::tie( sType, pNext, separateDepthStencilLayouts );
  66511. }
  66512. #endif
  66513. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66514. auto operator<=>( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & ) const = default;
  66515. #else
  66516. bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  66517. {
  66518. # if defined( VULKAN_HPP_USE_REFLECT )
  66519. return this->reflect() == rhs.reflect();
  66520. # else
  66521. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts );
  66522. # endif
  66523. }
  66524. bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  66525. {
  66526. return !operator==( rhs );
  66527. }
  66528. #endif
  66529. public:
  66530. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  66531. void * pNext = {};
  66532. VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
  66533. };
  66534. template <>
  66535. struct CppType<StructureType, StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures>
  66536. {
  66537. using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  66538. };
  66539. using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  66540. struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT
  66541. {
  66542. using NativeType = VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
  66543. static const bool allowDuplicate = false;
  66544. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT;
  66545. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66546. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloat2FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics_ = {},
  66547. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd_ = {},
  66548. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax_ = {},
  66549. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax_ = {},
  66550. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax_ = {},
  66551. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics_ = {},
  66552. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd_ = {},
  66553. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax_ = {},
  66554. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax_ = {},
  66555. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax_ = {},
  66556. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax_ = {},
  66557. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax_ = {},
  66558. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66559. : pNext( pNext_ )
  66560. , shaderBufferFloat16Atomics( shaderBufferFloat16Atomics_ )
  66561. , shaderBufferFloat16AtomicAdd( shaderBufferFloat16AtomicAdd_ )
  66562. , shaderBufferFloat16AtomicMinMax( shaderBufferFloat16AtomicMinMax_ )
  66563. , shaderBufferFloat32AtomicMinMax( shaderBufferFloat32AtomicMinMax_ )
  66564. , shaderBufferFloat64AtomicMinMax( shaderBufferFloat64AtomicMinMax_ )
  66565. , shaderSharedFloat16Atomics( shaderSharedFloat16Atomics_ )
  66566. , shaderSharedFloat16AtomicAdd( shaderSharedFloat16AtomicAdd_ )
  66567. , shaderSharedFloat16AtomicMinMax( shaderSharedFloat16AtomicMinMax_ )
  66568. , shaderSharedFloat32AtomicMinMax( shaderSharedFloat32AtomicMinMax_ )
  66569. , shaderSharedFloat64AtomicMinMax( shaderSharedFloat64AtomicMinMax_ )
  66570. , shaderImageFloat32AtomicMinMax( shaderImageFloat32AtomicMinMax_ )
  66571. , sparseImageFloat32AtomicMinMax( sparseImageFloat32AtomicMinMax_ )
  66572. {
  66573. }
  66574. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloat2FeaturesEXT( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66575. PhysicalDeviceShaderAtomicFloat2FeaturesEXT( VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  66576. : PhysicalDeviceShaderAtomicFloat2FeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderAtomicFloat2FeaturesEXT const *>( &rhs ) )
  66577. {
  66578. }
  66579. PhysicalDeviceShaderAtomicFloat2FeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66580. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66581. PhysicalDeviceShaderAtomicFloat2FeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  66582. {
  66583. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT const *>( &rhs );
  66584. return *this;
  66585. }
  66586. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66587. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66588. {
  66589. pNext = pNext_;
  66590. return *this;
  66591. }
  66592. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66593. setShaderBufferFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
  66594. {
  66595. shaderBufferFloat16Atomics = shaderBufferFloat16Atomics_;
  66596. return *this;
  66597. }
  66598. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66599. setShaderBufferFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  66600. {
  66601. shaderBufferFloat16AtomicAdd = shaderBufferFloat16AtomicAdd_;
  66602. return *this;
  66603. }
  66604. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66605. setShaderBufferFloat16AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  66606. {
  66607. shaderBufferFloat16AtomicMinMax = shaderBufferFloat16AtomicMinMax_;
  66608. return *this;
  66609. }
  66610. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66611. setShaderBufferFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  66612. {
  66613. shaderBufferFloat32AtomicMinMax = shaderBufferFloat32AtomicMinMax_;
  66614. return *this;
  66615. }
  66616. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66617. setShaderBufferFloat64AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  66618. {
  66619. shaderBufferFloat64AtomicMinMax = shaderBufferFloat64AtomicMinMax_;
  66620. return *this;
  66621. }
  66622. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66623. setShaderSharedFloat16Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics_ ) VULKAN_HPP_NOEXCEPT
  66624. {
  66625. shaderSharedFloat16Atomics = shaderSharedFloat16Atomics_;
  66626. return *this;
  66627. }
  66628. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66629. setShaderSharedFloat16AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  66630. {
  66631. shaderSharedFloat16AtomicAdd = shaderSharedFloat16AtomicAdd_;
  66632. return *this;
  66633. }
  66634. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66635. setShaderSharedFloat16AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  66636. {
  66637. shaderSharedFloat16AtomicMinMax = shaderSharedFloat16AtomicMinMax_;
  66638. return *this;
  66639. }
  66640. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66641. setShaderSharedFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  66642. {
  66643. shaderSharedFloat32AtomicMinMax = shaderSharedFloat32AtomicMinMax_;
  66644. return *this;
  66645. }
  66646. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66647. setShaderSharedFloat64AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  66648. {
  66649. shaderSharedFloat64AtomicMinMax = shaderSharedFloat64AtomicMinMax_;
  66650. return *this;
  66651. }
  66652. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66653. setShaderImageFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  66654. {
  66655. shaderImageFloat32AtomicMinMax = shaderImageFloat32AtomicMinMax_;
  66656. return *this;
  66657. }
  66658. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloat2FeaturesEXT &
  66659. setSparseImageFloat32AtomicMinMax( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax_ ) VULKAN_HPP_NOEXCEPT
  66660. {
  66661. sparseImageFloat32AtomicMinMax = sparseImageFloat32AtomicMinMax_;
  66662. return *this;
  66663. }
  66664. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66665. operator VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  66666. {
  66667. return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>( this );
  66668. }
  66669. operator VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  66670. {
  66671. return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>( this );
  66672. }
  66673. #if defined( VULKAN_HPP_USE_REFLECT )
  66674. # if 14 <= VULKAN_HPP_CPP_VERSION
  66675. auto
  66676. # else
  66677. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  66678. void * const &,
  66679. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66680. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66681. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66682. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66683. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66684. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66685. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66686. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66687. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66688. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66689. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66690. VULKAN_HPP_NAMESPACE::Bool32 const &>
  66691. # endif
  66692. reflect() const VULKAN_HPP_NOEXCEPT
  66693. {
  66694. return std::tie( sType,
  66695. pNext,
  66696. shaderBufferFloat16Atomics,
  66697. shaderBufferFloat16AtomicAdd,
  66698. shaderBufferFloat16AtomicMinMax,
  66699. shaderBufferFloat32AtomicMinMax,
  66700. shaderBufferFloat64AtomicMinMax,
  66701. shaderSharedFloat16Atomics,
  66702. shaderSharedFloat16AtomicAdd,
  66703. shaderSharedFloat16AtomicMinMax,
  66704. shaderSharedFloat32AtomicMinMax,
  66705. shaderSharedFloat64AtomicMinMax,
  66706. shaderImageFloat32AtomicMinMax,
  66707. sparseImageFloat32AtomicMinMax );
  66708. }
  66709. #endif
  66710. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66711. auto operator<=>( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & ) const = default;
  66712. #else
  66713. bool operator==( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  66714. {
  66715. # if defined( VULKAN_HPP_USE_REFLECT )
  66716. return this->reflect() == rhs.reflect();
  66717. # else
  66718. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderBufferFloat16Atomics == rhs.shaderBufferFloat16Atomics ) &&
  66719. ( shaderBufferFloat16AtomicAdd == rhs.shaderBufferFloat16AtomicAdd ) &&
  66720. ( shaderBufferFloat16AtomicMinMax == rhs.shaderBufferFloat16AtomicMinMax ) &&
  66721. ( shaderBufferFloat32AtomicMinMax == rhs.shaderBufferFloat32AtomicMinMax ) &&
  66722. ( shaderBufferFloat64AtomicMinMax == rhs.shaderBufferFloat64AtomicMinMax ) && ( shaderSharedFloat16Atomics == rhs.shaderSharedFloat16Atomics ) &&
  66723. ( shaderSharedFloat16AtomicAdd == rhs.shaderSharedFloat16AtomicAdd ) &&
  66724. ( shaderSharedFloat16AtomicMinMax == rhs.shaderSharedFloat16AtomicMinMax ) &&
  66725. ( shaderSharedFloat32AtomicMinMax == rhs.shaderSharedFloat32AtomicMinMax ) &&
  66726. ( shaderSharedFloat64AtomicMinMax == rhs.shaderSharedFloat64AtomicMinMax ) &&
  66727. ( shaderImageFloat32AtomicMinMax == rhs.shaderImageFloat32AtomicMinMax ) &&
  66728. ( sparseImageFloat32AtomicMinMax == rhs.sparseImageFloat32AtomicMinMax );
  66729. # endif
  66730. }
  66731. bool operator!=( PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  66732. {
  66733. return !operator==( rhs );
  66734. }
  66735. #endif
  66736. public:
  66737. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT;
  66738. void * pNext = {};
  66739. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16Atomics = {};
  66740. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicAdd = {};
  66741. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat16AtomicMinMax = {};
  66742. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicMinMax = {};
  66743. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicMinMax = {};
  66744. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16Atomics = {};
  66745. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicAdd = {};
  66746. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat16AtomicMinMax = {};
  66747. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicMinMax = {};
  66748. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicMinMax = {};
  66749. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicMinMax = {};
  66750. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicMinMax = {};
  66751. };
  66752. template <>
  66753. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicFloat2FeaturesEXT>
  66754. {
  66755. using Type = PhysicalDeviceShaderAtomicFloat2FeaturesEXT;
  66756. };
  66757. struct PhysicalDeviceShaderAtomicFloatFeaturesEXT
  66758. {
  66759. using NativeType = VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
  66760. static const bool allowDuplicate = false;
  66761. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
  66762. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66763. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ = {},
  66764. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ = {},
  66765. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ = {},
  66766. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ = {},
  66767. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ = {},
  66768. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ = {},
  66769. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ = {},
  66770. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ = {},
  66771. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ = {},
  66772. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ = {},
  66773. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ = {},
  66774. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ = {},
  66775. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66776. : pNext( pNext_ )
  66777. , shaderBufferFloat32Atomics( shaderBufferFloat32Atomics_ )
  66778. , shaderBufferFloat32AtomicAdd( shaderBufferFloat32AtomicAdd_ )
  66779. , shaderBufferFloat64Atomics( shaderBufferFloat64Atomics_ )
  66780. , shaderBufferFloat64AtomicAdd( shaderBufferFloat64AtomicAdd_ )
  66781. , shaderSharedFloat32Atomics( shaderSharedFloat32Atomics_ )
  66782. , shaderSharedFloat32AtomicAdd( shaderSharedFloat32AtomicAdd_ )
  66783. , shaderSharedFloat64Atomics( shaderSharedFloat64Atomics_ )
  66784. , shaderSharedFloat64AtomicAdd( shaderSharedFloat64AtomicAdd_ )
  66785. , shaderImageFloat32Atomics( shaderImageFloat32Atomics_ )
  66786. , shaderImageFloat32AtomicAdd( shaderImageFloat32AtomicAdd_ )
  66787. , sparseImageFloat32Atomics( sparseImageFloat32Atomics_ )
  66788. , sparseImageFloat32AtomicAdd( sparseImageFloat32AtomicAdd_ )
  66789. {
  66790. }
  66791. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66792. PhysicalDeviceShaderAtomicFloatFeaturesEXT( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  66793. : PhysicalDeviceShaderAtomicFloatFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderAtomicFloatFeaturesEXT const *>( &rhs ) )
  66794. {
  66795. }
  66796. PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66797. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66798. PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  66799. {
  66800. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT const *>( &rhs );
  66801. return *this;
  66802. }
  66803. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66804. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66805. {
  66806. pNext = pNext_;
  66807. return *this;
  66808. }
  66809. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66810. setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
  66811. {
  66812. shaderBufferFloat32Atomics = shaderBufferFloat32Atomics_;
  66813. return *this;
  66814. }
  66815. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66816. setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  66817. {
  66818. shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd_;
  66819. return *this;
  66820. }
  66821. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66822. setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
  66823. {
  66824. shaderBufferFloat64Atomics = shaderBufferFloat64Atomics_;
  66825. return *this;
  66826. }
  66827. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66828. setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  66829. {
  66830. shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd_;
  66831. return *this;
  66832. }
  66833. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66834. setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
  66835. {
  66836. shaderSharedFloat32Atomics = shaderSharedFloat32Atomics_;
  66837. return *this;
  66838. }
  66839. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66840. setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  66841. {
  66842. shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd_;
  66843. return *this;
  66844. }
  66845. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66846. setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT
  66847. {
  66848. shaderSharedFloat64Atomics = shaderSharedFloat64Atomics_;
  66849. return *this;
  66850. }
  66851. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66852. setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  66853. {
  66854. shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd_;
  66855. return *this;
  66856. }
  66857. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66858. setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
  66859. {
  66860. shaderImageFloat32Atomics = shaderImageFloat32Atomics_;
  66861. return *this;
  66862. }
  66863. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66864. setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  66865. {
  66866. shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd_;
  66867. return *this;
  66868. }
  66869. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66870. setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT
  66871. {
  66872. sparseImageFloat32Atomics = sparseImageFloat32Atomics_;
  66873. return *this;
  66874. }
  66875. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT &
  66876. setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT
  66877. {
  66878. sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_;
  66879. return *this;
  66880. }
  66881. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  66882. operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  66883. {
  66884. return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>( this );
  66885. }
  66886. operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  66887. {
  66888. return *reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>( this );
  66889. }
  66890. #if defined( VULKAN_HPP_USE_REFLECT )
  66891. # if 14 <= VULKAN_HPP_CPP_VERSION
  66892. auto
  66893. # else
  66894. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  66895. void * const &,
  66896. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66897. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66898. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66899. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66900. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66901. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66902. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66903. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66904. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66905. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66906. VULKAN_HPP_NAMESPACE::Bool32 const &,
  66907. VULKAN_HPP_NAMESPACE::Bool32 const &>
  66908. # endif
  66909. reflect() const VULKAN_HPP_NOEXCEPT
  66910. {
  66911. return std::tie( sType,
  66912. pNext,
  66913. shaderBufferFloat32Atomics,
  66914. shaderBufferFloat32AtomicAdd,
  66915. shaderBufferFloat64Atomics,
  66916. shaderBufferFloat64AtomicAdd,
  66917. shaderSharedFloat32Atomics,
  66918. shaderSharedFloat32AtomicAdd,
  66919. shaderSharedFloat64Atomics,
  66920. shaderSharedFloat64AtomicAdd,
  66921. shaderImageFloat32Atomics,
  66922. shaderImageFloat32AtomicAdd,
  66923. sparseImageFloat32Atomics,
  66924. sparseImageFloat32AtomicAdd );
  66925. }
  66926. #endif
  66927. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  66928. auto operator<=>( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & ) const = default;
  66929. #else
  66930. bool operator==( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  66931. {
  66932. # if defined( VULKAN_HPP_USE_REFLECT )
  66933. return this->reflect() == rhs.reflect();
  66934. # else
  66935. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderBufferFloat32Atomics == rhs.shaderBufferFloat32Atomics ) &&
  66936. ( shaderBufferFloat32AtomicAdd == rhs.shaderBufferFloat32AtomicAdd ) && ( shaderBufferFloat64Atomics == rhs.shaderBufferFloat64Atomics ) &&
  66937. ( shaderBufferFloat64AtomicAdd == rhs.shaderBufferFloat64AtomicAdd ) && ( shaderSharedFloat32Atomics == rhs.shaderSharedFloat32Atomics ) &&
  66938. ( shaderSharedFloat32AtomicAdd == rhs.shaderSharedFloat32AtomicAdd ) && ( shaderSharedFloat64Atomics == rhs.shaderSharedFloat64Atomics ) &&
  66939. ( shaderSharedFloat64AtomicAdd == rhs.shaderSharedFloat64AtomicAdd ) && ( shaderImageFloat32Atomics == rhs.shaderImageFloat32Atomics ) &&
  66940. ( shaderImageFloat32AtomicAdd == rhs.shaderImageFloat32AtomicAdd ) && ( sparseImageFloat32Atomics == rhs.sparseImageFloat32Atomics ) &&
  66941. ( sparseImageFloat32AtomicAdd == rhs.sparseImageFloat32AtomicAdd );
  66942. # endif
  66943. }
  66944. bool operator!=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  66945. {
  66946. return !operator==( rhs );
  66947. }
  66948. #endif
  66949. public:
  66950. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT;
  66951. void * pNext = {};
  66952. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics = {};
  66953. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd = {};
  66954. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics = {};
  66955. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd = {};
  66956. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics = {};
  66957. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd = {};
  66958. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics = {};
  66959. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd = {};
  66960. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics = {};
  66961. VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd = {};
  66962. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics = {};
  66963. VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd = {};
  66964. };
  66965. template <>
  66966. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT>
  66967. {
  66968. using Type = PhysicalDeviceShaderAtomicFloatFeaturesEXT;
  66969. };
  66970. struct PhysicalDeviceShaderAtomicInt64Features
  66971. {
  66972. using NativeType = VkPhysicalDeviceShaderAtomicInt64Features;
  66973. static const bool allowDuplicate = false;
  66974. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
  66975. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  66976. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {},
  66977. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {},
  66978. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  66979. : pNext( pNext_ )
  66980. , shaderBufferInt64Atomics( shaderBufferInt64Atomics_ )
  66981. , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
  66982. {
  66983. }
  66984. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66985. PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
  66986. : PhysicalDeviceShaderAtomicInt64Features( *reinterpret_cast<PhysicalDeviceShaderAtomicInt64Features const *>( &rhs ) )
  66987. {
  66988. }
  66989. PhysicalDeviceShaderAtomicInt64Features & operator=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  66990. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  66991. PhysicalDeviceShaderAtomicInt64Features & operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT
  66992. {
  66993. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features const *>( &rhs );
  66994. return *this;
  66995. }
  66996. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  66997. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  66998. {
  66999. pNext = pNext_;
  67000. return *this;
  67001. }
  67002. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features &
  67003. setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  67004. {
  67005. shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
  67006. return *this;
  67007. }
  67008. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features &
  67009. setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  67010. {
  67011. shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
  67012. return *this;
  67013. }
  67014. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67015. operator VkPhysicalDeviceShaderAtomicInt64Features const &() const VULKAN_HPP_NOEXCEPT
  67016. {
  67017. return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features *>( this );
  67018. }
  67019. operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT
  67020. {
  67021. return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features *>( this );
  67022. }
  67023. #if defined( VULKAN_HPP_USE_REFLECT )
  67024. # if 14 <= VULKAN_HPP_CPP_VERSION
  67025. auto
  67026. # else
  67027. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  67028. # endif
  67029. reflect() const VULKAN_HPP_NOEXCEPT
  67030. {
  67031. return std::tie( sType, pNext, shaderBufferInt64Atomics, shaderSharedInt64Atomics );
  67032. }
  67033. #endif
  67034. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67035. auto operator<=>( PhysicalDeviceShaderAtomicInt64Features const & ) const = default;
  67036. #else
  67037. bool operator==( PhysicalDeviceShaderAtomicInt64Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  67038. {
  67039. # if defined( VULKAN_HPP_USE_REFLECT )
  67040. return this->reflect() == rhs.reflect();
  67041. # else
  67042. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) &&
  67043. ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics );
  67044. # endif
  67045. }
  67046. bool operator!=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  67047. {
  67048. return !operator==( rhs );
  67049. }
  67050. #endif
  67051. public:
  67052. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features;
  67053. void * pNext = {};
  67054. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
  67055. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
  67056. };
  67057. template <>
  67058. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderAtomicInt64Features>
  67059. {
  67060. using Type = PhysicalDeviceShaderAtomicInt64Features;
  67061. };
  67062. using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
  67063. struct PhysicalDeviceShaderClockFeaturesKHR
  67064. {
  67065. using NativeType = VkPhysicalDeviceShaderClockFeaturesKHR;
  67066. static const bool allowDuplicate = false;
  67067. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
  67068. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67069. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {},
  67070. VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {},
  67071. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67072. : pNext( pNext_ )
  67073. , shaderSubgroupClock( shaderSubgroupClock_ )
  67074. , shaderDeviceClock( shaderDeviceClock_ )
  67075. {
  67076. }
  67077. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67078. PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  67079. : PhysicalDeviceShaderClockFeaturesKHR( *reinterpret_cast<PhysicalDeviceShaderClockFeaturesKHR const *>( &rhs ) )
  67080. {
  67081. }
  67082. PhysicalDeviceShaderClockFeaturesKHR & operator=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67083. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67084. PhysicalDeviceShaderClockFeaturesKHR & operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  67085. {
  67086. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR const *>( &rhs );
  67087. return *this;
  67088. }
  67089. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67090. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67091. {
  67092. pNext = pNext_;
  67093. return *this;
  67094. }
  67095. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR &
  67096. setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT
  67097. {
  67098. shaderSubgroupClock = shaderSubgroupClock_;
  67099. return *this;
  67100. }
  67101. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR & setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT
  67102. {
  67103. shaderDeviceClock = shaderDeviceClock_;
  67104. return *this;
  67105. }
  67106. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67107. operator VkPhysicalDeviceShaderClockFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  67108. {
  67109. return *reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR *>( this );
  67110. }
  67111. operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  67112. {
  67113. return *reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR *>( this );
  67114. }
  67115. #if defined( VULKAN_HPP_USE_REFLECT )
  67116. # if 14 <= VULKAN_HPP_CPP_VERSION
  67117. auto
  67118. # else
  67119. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  67120. # endif
  67121. reflect() const VULKAN_HPP_NOEXCEPT
  67122. {
  67123. return std::tie( sType, pNext, shaderSubgroupClock, shaderDeviceClock );
  67124. }
  67125. #endif
  67126. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67127. auto operator<=>( PhysicalDeviceShaderClockFeaturesKHR const & ) const = default;
  67128. #else
  67129. bool operator==( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  67130. {
  67131. # if defined( VULKAN_HPP_USE_REFLECT )
  67132. return this->reflect() == rhs.reflect();
  67133. # else
  67134. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSubgroupClock == rhs.shaderSubgroupClock ) &&
  67135. ( shaderDeviceClock == rhs.shaderDeviceClock );
  67136. # endif
  67137. }
  67138. bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  67139. {
  67140. return !operator==( rhs );
  67141. }
  67142. #endif
  67143. public:
  67144. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR;
  67145. void * pNext = {};
  67146. VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {};
  67147. VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {};
  67148. };
  67149. template <>
  67150. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderClockFeaturesKHR>
  67151. {
  67152. using Type = PhysicalDeviceShaderClockFeaturesKHR;
  67153. };
  67154. struct PhysicalDeviceShaderCoreBuiltinsFeaturesARM
  67155. {
  67156. using NativeType = VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
  67157. static const bool allowDuplicate = false;
  67158. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreBuiltinsFeaturesARM;
  67159. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67160. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreBuiltinsFeaturesARM( VULKAN_HPP_NAMESPACE::Bool32 shaderCoreBuiltins_ = {},
  67161. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67162. : pNext( pNext_ )
  67163. , shaderCoreBuiltins( shaderCoreBuiltins_ )
  67164. {
  67165. }
  67166. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreBuiltinsFeaturesARM( PhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67167. PhysicalDeviceShaderCoreBuiltinsFeaturesARM( VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT
  67168. : PhysicalDeviceShaderCoreBuiltinsFeaturesARM( *reinterpret_cast<PhysicalDeviceShaderCoreBuiltinsFeaturesARM const *>( &rhs ) )
  67169. {
  67170. }
  67171. PhysicalDeviceShaderCoreBuiltinsFeaturesARM & operator=( PhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67172. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67173. PhysicalDeviceShaderCoreBuiltinsFeaturesARM & operator=( VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT
  67174. {
  67175. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM const *>( &rhs );
  67176. return *this;
  67177. }
  67178. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67179. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderCoreBuiltinsFeaturesARM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67180. {
  67181. pNext = pNext_;
  67182. return *this;
  67183. }
  67184. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderCoreBuiltinsFeaturesARM &
  67185. setShaderCoreBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderCoreBuiltins_ ) VULKAN_HPP_NOEXCEPT
  67186. {
  67187. shaderCoreBuiltins = shaderCoreBuiltins_;
  67188. return *this;
  67189. }
  67190. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67191. operator VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM const &() const VULKAN_HPP_NOEXCEPT
  67192. {
  67193. return *reinterpret_cast<const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM *>( this );
  67194. }
  67195. operator VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM &() VULKAN_HPP_NOEXCEPT
  67196. {
  67197. return *reinterpret_cast<VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM *>( this );
  67198. }
  67199. #if defined( VULKAN_HPP_USE_REFLECT )
  67200. # if 14 <= VULKAN_HPP_CPP_VERSION
  67201. auto
  67202. # else
  67203. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  67204. # endif
  67205. reflect() const VULKAN_HPP_NOEXCEPT
  67206. {
  67207. return std::tie( sType, pNext, shaderCoreBuiltins );
  67208. }
  67209. #endif
  67210. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67211. auto operator<=>( PhysicalDeviceShaderCoreBuiltinsFeaturesARM const & ) const = default;
  67212. #else
  67213. bool operator==( PhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
  67214. {
  67215. # if defined( VULKAN_HPP_USE_REFLECT )
  67216. return this->reflect() == rhs.reflect();
  67217. # else
  67218. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderCoreBuiltins == rhs.shaderCoreBuiltins );
  67219. # endif
  67220. }
  67221. bool operator!=( PhysicalDeviceShaderCoreBuiltinsFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
  67222. {
  67223. return !operator==( rhs );
  67224. }
  67225. #endif
  67226. public:
  67227. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreBuiltinsFeaturesARM;
  67228. void * pNext = {};
  67229. VULKAN_HPP_NAMESPACE::Bool32 shaderCoreBuiltins = {};
  67230. };
  67231. template <>
  67232. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreBuiltinsFeaturesARM>
  67233. {
  67234. using Type = PhysicalDeviceShaderCoreBuiltinsFeaturesARM;
  67235. };
  67236. struct PhysicalDeviceShaderCoreBuiltinsPropertiesARM
  67237. {
  67238. using NativeType = VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
  67239. static const bool allowDuplicate = false;
  67240. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreBuiltinsPropertiesARM;
  67241. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67242. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreBuiltinsPropertiesARM( uint64_t shaderCoreMask_ = {},
  67243. uint32_t shaderCoreCount_ = {},
  67244. uint32_t shaderWarpsPerCore_ = {},
  67245. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67246. : pNext( pNext_ )
  67247. , shaderCoreMask( shaderCoreMask_ )
  67248. , shaderCoreCount( shaderCoreCount_ )
  67249. , shaderWarpsPerCore( shaderWarpsPerCore_ )
  67250. {
  67251. }
  67252. VULKAN_HPP_CONSTEXPR
  67253. PhysicalDeviceShaderCoreBuiltinsPropertiesARM( PhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67254. PhysicalDeviceShaderCoreBuiltinsPropertiesARM( VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
  67255. : PhysicalDeviceShaderCoreBuiltinsPropertiesARM( *reinterpret_cast<PhysicalDeviceShaderCoreBuiltinsPropertiesARM const *>( &rhs ) )
  67256. {
  67257. }
  67258. PhysicalDeviceShaderCoreBuiltinsPropertiesARM & operator=( PhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67259. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67260. PhysicalDeviceShaderCoreBuiltinsPropertiesARM & operator=( VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
  67261. {
  67262. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM const *>( &rhs );
  67263. return *this;
  67264. }
  67265. operator VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM const &() const VULKAN_HPP_NOEXCEPT
  67266. {
  67267. return *reinterpret_cast<const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM *>( this );
  67268. }
  67269. operator VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM &() VULKAN_HPP_NOEXCEPT
  67270. {
  67271. return *reinterpret_cast<VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM *>( this );
  67272. }
  67273. #if defined( VULKAN_HPP_USE_REFLECT )
  67274. # if 14 <= VULKAN_HPP_CPP_VERSION
  67275. auto
  67276. # else
  67277. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &, uint32_t const &, uint32_t const &>
  67278. # endif
  67279. reflect() const VULKAN_HPP_NOEXCEPT
  67280. {
  67281. return std::tie( sType, pNext, shaderCoreMask, shaderCoreCount, shaderWarpsPerCore );
  67282. }
  67283. #endif
  67284. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67285. auto operator<=>( PhysicalDeviceShaderCoreBuiltinsPropertiesARM const & ) const = default;
  67286. #else
  67287. bool operator==( PhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
  67288. {
  67289. # if defined( VULKAN_HPP_USE_REFLECT )
  67290. return this->reflect() == rhs.reflect();
  67291. # else
  67292. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderCoreMask == rhs.shaderCoreMask ) && ( shaderCoreCount == rhs.shaderCoreCount ) &&
  67293. ( shaderWarpsPerCore == rhs.shaderWarpsPerCore );
  67294. # endif
  67295. }
  67296. bool operator!=( PhysicalDeviceShaderCoreBuiltinsPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
  67297. {
  67298. return !operator==( rhs );
  67299. }
  67300. #endif
  67301. public:
  67302. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreBuiltinsPropertiesARM;
  67303. void * pNext = {};
  67304. uint64_t shaderCoreMask = {};
  67305. uint32_t shaderCoreCount = {};
  67306. uint32_t shaderWarpsPerCore = {};
  67307. };
  67308. template <>
  67309. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreBuiltinsPropertiesARM>
  67310. {
  67311. using Type = PhysicalDeviceShaderCoreBuiltinsPropertiesARM;
  67312. };
  67313. struct PhysicalDeviceShaderCoreProperties2AMD
  67314. {
  67315. using NativeType = VkPhysicalDeviceShaderCoreProperties2AMD;
  67316. static const bool allowDuplicate = false;
  67317. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
  67318. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67319. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {},
  67320. uint32_t activeComputeUnitCount_ = {},
  67321. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67322. : pNext( pNext_ )
  67323. , shaderCoreFeatures( shaderCoreFeatures_ )
  67324. , activeComputeUnitCount( activeComputeUnitCount_ )
  67325. {
  67326. }
  67327. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67328. PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
  67329. : PhysicalDeviceShaderCoreProperties2AMD( *reinterpret_cast<PhysicalDeviceShaderCoreProperties2AMD const *>( &rhs ) )
  67330. {
  67331. }
  67332. PhysicalDeviceShaderCoreProperties2AMD & operator=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67333. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67334. PhysicalDeviceShaderCoreProperties2AMD & operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT
  67335. {
  67336. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD const *>( &rhs );
  67337. return *this;
  67338. }
  67339. operator VkPhysicalDeviceShaderCoreProperties2AMD const &() const VULKAN_HPP_NOEXCEPT
  67340. {
  67341. return *reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD *>( this );
  67342. }
  67343. operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT
  67344. {
  67345. return *reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD *>( this );
  67346. }
  67347. #if defined( VULKAN_HPP_USE_REFLECT )
  67348. # if 14 <= VULKAN_HPP_CPP_VERSION
  67349. auto
  67350. # else
  67351. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD const &, uint32_t const &>
  67352. # endif
  67353. reflect() const VULKAN_HPP_NOEXCEPT
  67354. {
  67355. return std::tie( sType, pNext, shaderCoreFeatures, activeComputeUnitCount );
  67356. }
  67357. #endif
  67358. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67359. auto operator<=>( PhysicalDeviceShaderCoreProperties2AMD const & ) const = default;
  67360. #else
  67361. bool operator==( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  67362. {
  67363. # if defined( VULKAN_HPP_USE_REFLECT )
  67364. return this->reflect() == rhs.reflect();
  67365. # else
  67366. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderCoreFeatures == rhs.shaderCoreFeatures ) &&
  67367. ( activeComputeUnitCount == rhs.activeComputeUnitCount );
  67368. # endif
  67369. }
  67370. bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  67371. {
  67372. return !operator==( rhs );
  67373. }
  67374. #endif
  67375. public:
  67376. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD;
  67377. void * pNext = {};
  67378. VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {};
  67379. uint32_t activeComputeUnitCount = {};
  67380. };
  67381. template <>
  67382. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCoreProperties2AMD>
  67383. {
  67384. using Type = PhysicalDeviceShaderCoreProperties2AMD;
  67385. };
  67386. struct PhysicalDeviceShaderCorePropertiesAMD
  67387. {
  67388. using NativeType = VkPhysicalDeviceShaderCorePropertiesAMD;
  67389. static const bool allowDuplicate = false;
  67390. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
  67391. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67392. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( uint32_t shaderEngineCount_ = {},
  67393. uint32_t shaderArraysPerEngineCount_ = {},
  67394. uint32_t computeUnitsPerShaderArray_ = {},
  67395. uint32_t simdPerComputeUnit_ = {},
  67396. uint32_t wavefrontsPerSimd_ = {},
  67397. uint32_t wavefrontSize_ = {},
  67398. uint32_t sgprsPerSimd_ = {},
  67399. uint32_t minSgprAllocation_ = {},
  67400. uint32_t maxSgprAllocation_ = {},
  67401. uint32_t sgprAllocationGranularity_ = {},
  67402. uint32_t vgprsPerSimd_ = {},
  67403. uint32_t minVgprAllocation_ = {},
  67404. uint32_t maxVgprAllocation_ = {},
  67405. uint32_t vgprAllocationGranularity_ = {},
  67406. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67407. : pNext( pNext_ )
  67408. , shaderEngineCount( shaderEngineCount_ )
  67409. , shaderArraysPerEngineCount( shaderArraysPerEngineCount_ )
  67410. , computeUnitsPerShaderArray( computeUnitsPerShaderArray_ )
  67411. , simdPerComputeUnit( simdPerComputeUnit_ )
  67412. , wavefrontsPerSimd( wavefrontsPerSimd_ )
  67413. , wavefrontSize( wavefrontSize_ )
  67414. , sgprsPerSimd( sgprsPerSimd_ )
  67415. , minSgprAllocation( minSgprAllocation_ )
  67416. , maxSgprAllocation( maxSgprAllocation_ )
  67417. , sgprAllocationGranularity( sgprAllocationGranularity_ )
  67418. , vgprsPerSimd( vgprsPerSimd_ )
  67419. , minVgprAllocation( minVgprAllocation_ )
  67420. , maxVgprAllocation( maxVgprAllocation_ )
  67421. , vgprAllocationGranularity( vgprAllocationGranularity_ )
  67422. {
  67423. }
  67424. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67425. PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  67426. : PhysicalDeviceShaderCorePropertiesAMD( *reinterpret_cast<PhysicalDeviceShaderCorePropertiesAMD const *>( &rhs ) )
  67427. {
  67428. }
  67429. PhysicalDeviceShaderCorePropertiesAMD & operator=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67430. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67431. PhysicalDeviceShaderCorePropertiesAMD & operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  67432. {
  67433. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD const *>( &rhs );
  67434. return *this;
  67435. }
  67436. operator VkPhysicalDeviceShaderCorePropertiesAMD const &() const VULKAN_HPP_NOEXCEPT
  67437. {
  67438. return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD *>( this );
  67439. }
  67440. operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT
  67441. {
  67442. return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD *>( this );
  67443. }
  67444. #if defined( VULKAN_HPP_USE_REFLECT )
  67445. # if 14 <= VULKAN_HPP_CPP_VERSION
  67446. auto
  67447. # else
  67448. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  67449. void * const &,
  67450. uint32_t const &,
  67451. uint32_t const &,
  67452. uint32_t const &,
  67453. uint32_t const &,
  67454. uint32_t const &,
  67455. uint32_t const &,
  67456. uint32_t const &,
  67457. uint32_t const &,
  67458. uint32_t const &,
  67459. uint32_t const &,
  67460. uint32_t const &,
  67461. uint32_t const &,
  67462. uint32_t const &,
  67463. uint32_t const &>
  67464. # endif
  67465. reflect() const VULKAN_HPP_NOEXCEPT
  67466. {
  67467. return std::tie( sType,
  67468. pNext,
  67469. shaderEngineCount,
  67470. shaderArraysPerEngineCount,
  67471. computeUnitsPerShaderArray,
  67472. simdPerComputeUnit,
  67473. wavefrontsPerSimd,
  67474. wavefrontSize,
  67475. sgprsPerSimd,
  67476. minSgprAllocation,
  67477. maxSgprAllocation,
  67478. sgprAllocationGranularity,
  67479. vgprsPerSimd,
  67480. minVgprAllocation,
  67481. maxVgprAllocation,
  67482. vgprAllocationGranularity );
  67483. }
  67484. #endif
  67485. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67486. auto operator<=>( PhysicalDeviceShaderCorePropertiesAMD const & ) const = default;
  67487. #else
  67488. bool operator==( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  67489. {
  67490. # if defined( VULKAN_HPP_USE_REFLECT )
  67491. return this->reflect() == rhs.reflect();
  67492. # else
  67493. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderEngineCount == rhs.shaderEngineCount ) &&
  67494. ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount ) && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray ) &&
  67495. ( simdPerComputeUnit == rhs.simdPerComputeUnit ) && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd ) && ( wavefrontSize == rhs.wavefrontSize ) &&
  67496. ( sgprsPerSimd == rhs.sgprsPerSimd ) && ( minSgprAllocation == rhs.minSgprAllocation ) && ( maxSgprAllocation == rhs.maxSgprAllocation ) &&
  67497. ( sgprAllocationGranularity == rhs.sgprAllocationGranularity ) && ( vgprsPerSimd == rhs.vgprsPerSimd ) &&
  67498. ( minVgprAllocation == rhs.minVgprAllocation ) && ( maxVgprAllocation == rhs.maxVgprAllocation ) &&
  67499. ( vgprAllocationGranularity == rhs.vgprAllocationGranularity );
  67500. # endif
  67501. }
  67502. bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  67503. {
  67504. return !operator==( rhs );
  67505. }
  67506. #endif
  67507. public:
  67508. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
  67509. void * pNext = {};
  67510. uint32_t shaderEngineCount = {};
  67511. uint32_t shaderArraysPerEngineCount = {};
  67512. uint32_t computeUnitsPerShaderArray = {};
  67513. uint32_t simdPerComputeUnit = {};
  67514. uint32_t wavefrontsPerSimd = {};
  67515. uint32_t wavefrontSize = {};
  67516. uint32_t sgprsPerSimd = {};
  67517. uint32_t minSgprAllocation = {};
  67518. uint32_t maxSgprAllocation = {};
  67519. uint32_t sgprAllocationGranularity = {};
  67520. uint32_t vgprsPerSimd = {};
  67521. uint32_t minVgprAllocation = {};
  67522. uint32_t maxVgprAllocation = {};
  67523. uint32_t vgprAllocationGranularity = {};
  67524. };
  67525. template <>
  67526. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCorePropertiesAMD>
  67527. {
  67528. using Type = PhysicalDeviceShaderCorePropertiesAMD;
  67529. };
  67530. struct PhysicalDeviceShaderCorePropertiesARM
  67531. {
  67532. using NativeType = VkPhysicalDeviceShaderCorePropertiesARM;
  67533. static const bool allowDuplicate = false;
  67534. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesARM;
  67535. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67536. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesARM( uint32_t pixelRate_ = {},
  67537. uint32_t texelRate_ = {},
  67538. uint32_t fmaRate_ = {},
  67539. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67540. : pNext( pNext_ )
  67541. , pixelRate( pixelRate_ )
  67542. , texelRate( texelRate_ )
  67543. , fmaRate( fmaRate_ )
  67544. {
  67545. }
  67546. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesARM( PhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67547. PhysicalDeviceShaderCorePropertiesARM( VkPhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
  67548. : PhysicalDeviceShaderCorePropertiesARM( *reinterpret_cast<PhysicalDeviceShaderCorePropertiesARM const *>( &rhs ) )
  67549. {
  67550. }
  67551. PhysicalDeviceShaderCorePropertiesARM & operator=( PhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67552. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67553. PhysicalDeviceShaderCorePropertiesARM & operator=( VkPhysicalDeviceShaderCorePropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT
  67554. {
  67555. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM const *>( &rhs );
  67556. return *this;
  67557. }
  67558. operator VkPhysicalDeviceShaderCorePropertiesARM const &() const VULKAN_HPP_NOEXCEPT
  67559. {
  67560. return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesARM *>( this );
  67561. }
  67562. operator VkPhysicalDeviceShaderCorePropertiesARM &() VULKAN_HPP_NOEXCEPT
  67563. {
  67564. return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesARM *>( this );
  67565. }
  67566. #if defined( VULKAN_HPP_USE_REFLECT )
  67567. # if 14 <= VULKAN_HPP_CPP_VERSION
  67568. auto
  67569. # else
  67570. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &, uint32_t const &>
  67571. # endif
  67572. reflect() const VULKAN_HPP_NOEXCEPT
  67573. {
  67574. return std::tie( sType, pNext, pixelRate, texelRate, fmaRate );
  67575. }
  67576. #endif
  67577. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67578. auto operator<=>( PhysicalDeviceShaderCorePropertiesARM const & ) const = default;
  67579. #else
  67580. bool operator==( PhysicalDeviceShaderCorePropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
  67581. {
  67582. # if defined( VULKAN_HPP_USE_REFLECT )
  67583. return this->reflect() == rhs.reflect();
  67584. # else
  67585. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pixelRate == rhs.pixelRate ) && ( texelRate == rhs.texelRate ) && ( fmaRate == rhs.fmaRate );
  67586. # endif
  67587. }
  67588. bool operator!=( PhysicalDeviceShaderCorePropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT
  67589. {
  67590. return !operator==( rhs );
  67591. }
  67592. #endif
  67593. public:
  67594. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesARM;
  67595. void * pNext = {};
  67596. uint32_t pixelRate = {};
  67597. uint32_t texelRate = {};
  67598. uint32_t fmaRate = {};
  67599. };
  67600. template <>
  67601. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderCorePropertiesARM>
  67602. {
  67603. using Type = PhysicalDeviceShaderCorePropertiesARM;
  67604. };
  67605. struct PhysicalDeviceShaderDemoteToHelperInvocationFeatures
  67606. {
  67607. using NativeType = VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
  67608. static const bool allowDuplicate = false;
  67609. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeatures;
  67610. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67611. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {},
  67612. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67613. : pNext( pNext_ )
  67614. , shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
  67615. {
  67616. }
  67617. VULKAN_HPP_CONSTEXPR
  67618. PhysicalDeviceShaderDemoteToHelperInvocationFeatures( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67619. PhysicalDeviceShaderDemoteToHelperInvocationFeatures( VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  67620. : PhysicalDeviceShaderDemoteToHelperInvocationFeatures( *reinterpret_cast<PhysicalDeviceShaderDemoteToHelperInvocationFeatures const *>( &rhs ) )
  67621. {
  67622. }
  67623. PhysicalDeviceShaderDemoteToHelperInvocationFeatures &
  67624. operator=( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67625. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67626. PhysicalDeviceShaderDemoteToHelperInvocationFeatures & operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  67627. {
  67628. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures const *>( &rhs );
  67629. return *this;
  67630. }
  67631. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67632. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDemoteToHelperInvocationFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67633. {
  67634. pNext = pNext_;
  67635. return *this;
  67636. }
  67637. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDemoteToHelperInvocationFeatures &
  67638. setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
  67639. {
  67640. shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
  67641. return *this;
  67642. }
  67643. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67644. operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures const &() const VULKAN_HPP_NOEXCEPT
  67645. {
  67646. return *reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *>( this );
  67647. }
  67648. operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures &() VULKAN_HPP_NOEXCEPT
  67649. {
  67650. return *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *>( this );
  67651. }
  67652. #if defined( VULKAN_HPP_USE_REFLECT )
  67653. # if 14 <= VULKAN_HPP_CPP_VERSION
  67654. auto
  67655. # else
  67656. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  67657. # endif
  67658. reflect() const VULKAN_HPP_NOEXCEPT
  67659. {
  67660. return std::tie( sType, pNext, shaderDemoteToHelperInvocation );
  67661. }
  67662. #endif
  67663. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67664. auto operator<=>( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & ) const = default;
  67665. #else
  67666. bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  67667. {
  67668. # if defined( VULKAN_HPP_USE_REFLECT )
  67669. return this->reflect() == rhs.reflect();
  67670. # else
  67671. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation );
  67672. # endif
  67673. }
  67674. bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  67675. {
  67676. return !operator==( rhs );
  67677. }
  67678. #endif
  67679. public:
  67680. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeatures;
  67681. void * pNext = {};
  67682. VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {};
  67683. };
  67684. template <>
  67685. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeatures>
  67686. {
  67687. using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
  67688. };
  67689. using PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
  67690. struct PhysicalDeviceShaderDrawParametersFeatures
  67691. {
  67692. using NativeType = VkPhysicalDeviceShaderDrawParametersFeatures;
  67693. static const bool allowDuplicate = false;
  67694. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
  67695. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67696. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {},
  67697. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67698. : pNext( pNext_ )
  67699. , shaderDrawParameters( shaderDrawParameters_ )
  67700. {
  67701. }
  67702. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67703. PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  67704. : PhysicalDeviceShaderDrawParametersFeatures( *reinterpret_cast<PhysicalDeviceShaderDrawParametersFeatures const *>( &rhs ) )
  67705. {
  67706. }
  67707. PhysicalDeviceShaderDrawParametersFeatures & operator=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67708. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67709. PhysicalDeviceShaderDrawParametersFeatures & operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  67710. {
  67711. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures const *>( &rhs );
  67712. return *this;
  67713. }
  67714. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67715. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDrawParametersFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67716. {
  67717. pNext = pNext_;
  67718. return *this;
  67719. }
  67720. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDrawParametersFeatures &
  67721. setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
  67722. {
  67723. shaderDrawParameters = shaderDrawParameters_;
  67724. return *this;
  67725. }
  67726. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67727. operator VkPhysicalDeviceShaderDrawParametersFeatures const &() const VULKAN_HPP_NOEXCEPT
  67728. {
  67729. return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures *>( this );
  67730. }
  67731. operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT
  67732. {
  67733. return *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures *>( this );
  67734. }
  67735. #if defined( VULKAN_HPP_USE_REFLECT )
  67736. # if 14 <= VULKAN_HPP_CPP_VERSION
  67737. auto
  67738. # else
  67739. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  67740. # endif
  67741. reflect() const VULKAN_HPP_NOEXCEPT
  67742. {
  67743. return std::tie( sType, pNext, shaderDrawParameters );
  67744. }
  67745. #endif
  67746. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67747. auto operator<=>( PhysicalDeviceShaderDrawParametersFeatures const & ) const = default;
  67748. #else
  67749. bool operator==( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  67750. {
  67751. # if defined( VULKAN_HPP_USE_REFLECT )
  67752. return this->reflect() == rhs.reflect();
  67753. # else
  67754. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderDrawParameters == rhs.shaderDrawParameters );
  67755. # endif
  67756. }
  67757. bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  67758. {
  67759. return !operator==( rhs );
  67760. }
  67761. #endif
  67762. public:
  67763. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
  67764. void * pNext = {};
  67765. VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
  67766. };
  67767. template <>
  67768. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderDrawParametersFeatures>
  67769. {
  67770. using Type = PhysicalDeviceShaderDrawParametersFeatures;
  67771. };
  67772. using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
  67773. struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD
  67774. {
  67775. using NativeType = VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
  67776. static const bool allowDuplicate = false;
  67777. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
  67778. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67779. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests_ = {},
  67780. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67781. : pNext( pNext_ )
  67782. , shaderEarlyAndLateFragmentTests( shaderEarlyAndLateFragmentTests_ )
  67783. {
  67784. }
  67785. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs )
  67786. VULKAN_HPP_NOEXCEPT = default;
  67787. PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  67788. : PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD( *reinterpret_cast<PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const *>( &rhs ) )
  67789. {
  67790. }
  67791. PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD &
  67792. operator=( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67793. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67794. PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD &
  67795. operator=( VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  67796. {
  67797. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const *>( &rhs );
  67798. return *this;
  67799. }
  67800. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67801. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67802. {
  67803. pNext = pNext_;
  67804. return *this;
  67805. }
  67806. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD &
  67807. setShaderEarlyAndLateFragmentTests( VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests_ ) VULKAN_HPP_NOEXCEPT
  67808. {
  67809. shaderEarlyAndLateFragmentTests = shaderEarlyAndLateFragmentTests_;
  67810. return *this;
  67811. }
  67812. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67813. operator VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const &() const VULKAN_HPP_NOEXCEPT
  67814. {
  67815. return *reinterpret_cast<const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD *>( this );
  67816. }
  67817. operator VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD &() VULKAN_HPP_NOEXCEPT
  67818. {
  67819. return *reinterpret_cast<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD *>( this );
  67820. }
  67821. #if defined( VULKAN_HPP_USE_REFLECT )
  67822. # if 14 <= VULKAN_HPP_CPP_VERSION
  67823. auto
  67824. # else
  67825. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  67826. # endif
  67827. reflect() const VULKAN_HPP_NOEXCEPT
  67828. {
  67829. return std::tie( sType, pNext, shaderEarlyAndLateFragmentTests );
  67830. }
  67831. #endif
  67832. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67833. auto operator<=>( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & ) const = default;
  67834. #else
  67835. bool operator==( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  67836. {
  67837. # if defined( VULKAN_HPP_USE_REFLECT )
  67838. return this->reflect() == rhs.reflect();
  67839. # else
  67840. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderEarlyAndLateFragmentTests == rhs.shaderEarlyAndLateFragmentTests );
  67841. # endif
  67842. }
  67843. bool operator!=( PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  67844. {
  67845. return !operator==( rhs );
  67846. }
  67847. #endif
  67848. public:
  67849. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
  67850. void * pNext = {};
  67851. VULKAN_HPP_NAMESPACE::Bool32 shaderEarlyAndLateFragmentTests = {};
  67852. };
  67853. template <>
  67854. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>
  67855. {
  67856. using Type = PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
  67857. };
  67858. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  67859. struct PhysicalDeviceShaderEnqueueFeaturesAMDX
  67860. {
  67861. using NativeType = VkPhysicalDeviceShaderEnqueueFeaturesAMDX;
  67862. static const bool allowDuplicate = false;
  67863. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderEnqueueFeaturesAMDX;
  67864. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67865. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueueFeaturesAMDX( VULKAN_HPP_NAMESPACE::Bool32 shaderEnqueue_ = {},
  67866. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67867. : pNext( pNext_ )
  67868. , shaderEnqueue( shaderEnqueue_ )
  67869. {
  67870. }
  67871. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueueFeaturesAMDX( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67872. PhysicalDeviceShaderEnqueueFeaturesAMDX( VkPhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  67873. : PhysicalDeviceShaderEnqueueFeaturesAMDX( *reinterpret_cast<PhysicalDeviceShaderEnqueueFeaturesAMDX const *>( &rhs ) )
  67874. {
  67875. }
  67876. PhysicalDeviceShaderEnqueueFeaturesAMDX & operator=( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67877. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67878. PhysicalDeviceShaderEnqueueFeaturesAMDX & operator=( VkPhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  67879. {
  67880. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX const *>( &rhs );
  67881. return *this;
  67882. }
  67883. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67884. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueueFeaturesAMDX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67885. {
  67886. pNext = pNext_;
  67887. return *this;
  67888. }
  67889. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueueFeaturesAMDX & setShaderEnqueue( VULKAN_HPP_NAMESPACE::Bool32 shaderEnqueue_ ) VULKAN_HPP_NOEXCEPT
  67890. {
  67891. shaderEnqueue = shaderEnqueue_;
  67892. return *this;
  67893. }
  67894. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  67895. operator VkPhysicalDeviceShaderEnqueueFeaturesAMDX const &() const VULKAN_HPP_NOEXCEPT
  67896. {
  67897. return *reinterpret_cast<const VkPhysicalDeviceShaderEnqueueFeaturesAMDX *>( this );
  67898. }
  67899. operator VkPhysicalDeviceShaderEnqueueFeaturesAMDX &() VULKAN_HPP_NOEXCEPT
  67900. {
  67901. return *reinterpret_cast<VkPhysicalDeviceShaderEnqueueFeaturesAMDX *>( this );
  67902. }
  67903. # if defined( VULKAN_HPP_USE_REFLECT )
  67904. # if 14 <= VULKAN_HPP_CPP_VERSION
  67905. auto
  67906. # else
  67907. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  67908. # endif
  67909. reflect() const VULKAN_HPP_NOEXCEPT
  67910. {
  67911. return std::tie( sType, pNext, shaderEnqueue );
  67912. }
  67913. # endif
  67914. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  67915. auto operator<=>( PhysicalDeviceShaderEnqueueFeaturesAMDX const & ) const = default;
  67916. # else
  67917. bool operator==( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
  67918. {
  67919. # if defined( VULKAN_HPP_USE_REFLECT )
  67920. return this->reflect() == rhs.reflect();
  67921. # else
  67922. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderEnqueue == rhs.shaderEnqueue );
  67923. # endif
  67924. }
  67925. bool operator!=( PhysicalDeviceShaderEnqueueFeaturesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
  67926. {
  67927. return !operator==( rhs );
  67928. }
  67929. # endif
  67930. public:
  67931. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderEnqueueFeaturesAMDX;
  67932. void * pNext = {};
  67933. VULKAN_HPP_NAMESPACE::Bool32 shaderEnqueue = {};
  67934. };
  67935. template <>
  67936. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderEnqueueFeaturesAMDX>
  67937. {
  67938. using Type = PhysicalDeviceShaderEnqueueFeaturesAMDX;
  67939. };
  67940. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  67941. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  67942. struct PhysicalDeviceShaderEnqueuePropertiesAMDX
  67943. {
  67944. using NativeType = VkPhysicalDeviceShaderEnqueuePropertiesAMDX;
  67945. static const bool allowDuplicate = false;
  67946. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderEnqueuePropertiesAMDX;
  67947. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  67948. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueuePropertiesAMDX( uint32_t maxExecutionGraphDepth_ = {},
  67949. uint32_t maxExecutionGraphShaderOutputNodes_ = {},
  67950. uint32_t maxExecutionGraphShaderPayloadSize_ = {},
  67951. uint32_t maxExecutionGraphShaderPayloadCount_ = {},
  67952. uint32_t executionGraphDispatchAddressAlignment_ = {},
  67953. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  67954. : pNext( pNext_ )
  67955. , maxExecutionGraphDepth( maxExecutionGraphDepth_ )
  67956. , maxExecutionGraphShaderOutputNodes( maxExecutionGraphShaderOutputNodes_ )
  67957. , maxExecutionGraphShaderPayloadSize( maxExecutionGraphShaderPayloadSize_ )
  67958. , maxExecutionGraphShaderPayloadCount( maxExecutionGraphShaderPayloadCount_ )
  67959. , executionGraphDispatchAddressAlignment( executionGraphDispatchAddressAlignment_ )
  67960. {
  67961. }
  67962. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderEnqueuePropertiesAMDX( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67963. PhysicalDeviceShaderEnqueuePropertiesAMDX( VkPhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  67964. : PhysicalDeviceShaderEnqueuePropertiesAMDX( *reinterpret_cast<PhysicalDeviceShaderEnqueuePropertiesAMDX const *>( &rhs ) )
  67965. {
  67966. }
  67967. PhysicalDeviceShaderEnqueuePropertiesAMDX & operator=( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  67968. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  67969. PhysicalDeviceShaderEnqueuePropertiesAMDX & operator=( VkPhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  67970. {
  67971. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX const *>( &rhs );
  67972. return *this;
  67973. }
  67974. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  67975. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  67976. {
  67977. pNext = pNext_;
  67978. return *this;
  67979. }
  67980. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX & setMaxExecutionGraphDepth( uint32_t maxExecutionGraphDepth_ ) VULKAN_HPP_NOEXCEPT
  67981. {
  67982. maxExecutionGraphDepth = maxExecutionGraphDepth_;
  67983. return *this;
  67984. }
  67985. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX &
  67986. setMaxExecutionGraphShaderOutputNodes( uint32_t maxExecutionGraphShaderOutputNodes_ ) VULKAN_HPP_NOEXCEPT
  67987. {
  67988. maxExecutionGraphShaderOutputNodes = maxExecutionGraphShaderOutputNodes_;
  67989. return *this;
  67990. }
  67991. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX &
  67992. setMaxExecutionGraphShaderPayloadSize( uint32_t maxExecutionGraphShaderPayloadSize_ ) VULKAN_HPP_NOEXCEPT
  67993. {
  67994. maxExecutionGraphShaderPayloadSize = maxExecutionGraphShaderPayloadSize_;
  67995. return *this;
  67996. }
  67997. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX &
  67998. setMaxExecutionGraphShaderPayloadCount( uint32_t maxExecutionGraphShaderPayloadCount_ ) VULKAN_HPP_NOEXCEPT
  67999. {
  68000. maxExecutionGraphShaderPayloadCount = maxExecutionGraphShaderPayloadCount_;
  68001. return *this;
  68002. }
  68003. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderEnqueuePropertiesAMDX &
  68004. setExecutionGraphDispatchAddressAlignment( uint32_t executionGraphDispatchAddressAlignment_ ) VULKAN_HPP_NOEXCEPT
  68005. {
  68006. executionGraphDispatchAddressAlignment = executionGraphDispatchAddressAlignment_;
  68007. return *this;
  68008. }
  68009. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68010. operator VkPhysicalDeviceShaderEnqueuePropertiesAMDX const &() const VULKAN_HPP_NOEXCEPT
  68011. {
  68012. return *reinterpret_cast<const VkPhysicalDeviceShaderEnqueuePropertiesAMDX *>( this );
  68013. }
  68014. operator VkPhysicalDeviceShaderEnqueuePropertiesAMDX &() VULKAN_HPP_NOEXCEPT
  68015. {
  68016. return *reinterpret_cast<VkPhysicalDeviceShaderEnqueuePropertiesAMDX *>( this );
  68017. }
  68018. # if defined( VULKAN_HPP_USE_REFLECT )
  68019. # if 14 <= VULKAN_HPP_CPP_VERSION
  68020. auto
  68021. # else
  68022. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  68023. void * const &,
  68024. uint32_t const &,
  68025. uint32_t const &,
  68026. uint32_t const &,
  68027. uint32_t const &,
  68028. uint32_t const &>
  68029. # endif
  68030. reflect() const VULKAN_HPP_NOEXCEPT
  68031. {
  68032. return std::tie( sType,
  68033. pNext,
  68034. maxExecutionGraphDepth,
  68035. maxExecutionGraphShaderOutputNodes,
  68036. maxExecutionGraphShaderPayloadSize,
  68037. maxExecutionGraphShaderPayloadCount,
  68038. executionGraphDispatchAddressAlignment );
  68039. }
  68040. # endif
  68041. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68042. auto operator<=>( PhysicalDeviceShaderEnqueuePropertiesAMDX const & ) const = default;
  68043. # else
  68044. bool operator==( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
  68045. {
  68046. # if defined( VULKAN_HPP_USE_REFLECT )
  68047. return this->reflect() == rhs.reflect();
  68048. # else
  68049. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxExecutionGraphDepth == rhs.maxExecutionGraphDepth ) &&
  68050. ( maxExecutionGraphShaderOutputNodes == rhs.maxExecutionGraphShaderOutputNodes ) &&
  68051. ( maxExecutionGraphShaderPayloadSize == rhs.maxExecutionGraphShaderPayloadSize ) &&
  68052. ( maxExecutionGraphShaderPayloadCount == rhs.maxExecutionGraphShaderPayloadCount ) &&
  68053. ( executionGraphDispatchAddressAlignment == rhs.executionGraphDispatchAddressAlignment );
  68054. # endif
  68055. }
  68056. bool operator!=( PhysicalDeviceShaderEnqueuePropertiesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
  68057. {
  68058. return !operator==( rhs );
  68059. }
  68060. # endif
  68061. public:
  68062. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderEnqueuePropertiesAMDX;
  68063. void * pNext = {};
  68064. uint32_t maxExecutionGraphDepth = {};
  68065. uint32_t maxExecutionGraphShaderOutputNodes = {};
  68066. uint32_t maxExecutionGraphShaderPayloadSize = {};
  68067. uint32_t maxExecutionGraphShaderPayloadCount = {};
  68068. uint32_t executionGraphDispatchAddressAlignment = {};
  68069. };
  68070. template <>
  68071. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderEnqueuePropertiesAMDX>
  68072. {
  68073. using Type = PhysicalDeviceShaderEnqueuePropertiesAMDX;
  68074. };
  68075. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  68076. struct PhysicalDeviceShaderFloat16Int8Features
  68077. {
  68078. using NativeType = VkPhysicalDeviceShaderFloat16Int8Features;
  68079. static const bool allowDuplicate = false;
  68080. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
  68081. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68082. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {},
  68083. VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {},
  68084. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68085. : pNext( pNext_ )
  68086. , shaderFloat16( shaderFloat16_ )
  68087. , shaderInt8( shaderInt8_ )
  68088. {
  68089. }
  68090. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68091. PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
  68092. : PhysicalDeviceShaderFloat16Int8Features( *reinterpret_cast<PhysicalDeviceShaderFloat16Int8Features const *>( &rhs ) )
  68093. {
  68094. }
  68095. PhysicalDeviceShaderFloat16Int8Features & operator=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68096. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68097. PhysicalDeviceShaderFloat16Int8Features & operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT
  68098. {
  68099. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features const *>( &rhs );
  68100. return *this;
  68101. }
  68102. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68103. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  68104. {
  68105. pNext = pNext_;
  68106. return *this;
  68107. }
  68108. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
  68109. {
  68110. shaderFloat16 = shaderFloat16_;
  68111. return *this;
  68112. }
  68113. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
  68114. {
  68115. shaderInt8 = shaderInt8_;
  68116. return *this;
  68117. }
  68118. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68119. operator VkPhysicalDeviceShaderFloat16Int8Features const &() const VULKAN_HPP_NOEXCEPT
  68120. {
  68121. return *reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features *>( this );
  68122. }
  68123. operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT
  68124. {
  68125. return *reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features *>( this );
  68126. }
  68127. #if defined( VULKAN_HPP_USE_REFLECT )
  68128. # if 14 <= VULKAN_HPP_CPP_VERSION
  68129. auto
  68130. # else
  68131. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  68132. # endif
  68133. reflect() const VULKAN_HPP_NOEXCEPT
  68134. {
  68135. return std::tie( sType, pNext, shaderFloat16, shaderInt8 );
  68136. }
  68137. #endif
  68138. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68139. auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const & ) const = default;
  68140. #else
  68141. bool operator==( PhysicalDeviceShaderFloat16Int8Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  68142. {
  68143. # if defined( VULKAN_HPP_USE_REFLECT )
  68144. return this->reflect() == rhs.reflect();
  68145. # else
  68146. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderFloat16 == rhs.shaderFloat16 ) && ( shaderInt8 == rhs.shaderInt8 );
  68147. # endif
  68148. }
  68149. bool operator!=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  68150. {
  68151. return !operator==( rhs );
  68152. }
  68153. #endif
  68154. public:
  68155. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features;
  68156. void * pNext = {};
  68157. VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
  68158. VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
  68159. };
  68160. template <>
  68161. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderFloat16Int8Features>
  68162. {
  68163. using Type = PhysicalDeviceShaderFloat16Int8Features;
  68164. };
  68165. using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
  68166. using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
  68167. struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
  68168. {
  68169. using NativeType = VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  68170. static const bool allowDuplicate = false;
  68171. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  68172. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68173. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ = {},
  68174. VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ = {},
  68175. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68176. : pNext( pNext_ )
  68177. , shaderImageInt64Atomics( shaderImageInt64Atomics_ )
  68178. , sparseImageInt64Atomics( sparseImageInt64Atomics_ )
  68179. {
  68180. }
  68181. VULKAN_HPP_CONSTEXPR
  68182. PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68183. PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  68184. : PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const *>( &rhs ) )
  68185. {
  68186. }
  68187. PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68188. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68189. PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  68190. {
  68191. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const *>( &rhs );
  68192. return *this;
  68193. }
  68194. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68195. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  68196. {
  68197. pNext = pNext_;
  68198. return *this;
  68199. }
  68200. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT &
  68201. setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  68202. {
  68203. shaderImageInt64Atomics = shaderImageInt64Atomics_;
  68204. return *this;
  68205. }
  68206. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT &
  68207. setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  68208. {
  68209. sparseImageInt64Atomics = sparseImageInt64Atomics_;
  68210. return *this;
  68211. }
  68212. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68213. operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  68214. {
  68215. return *reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT *>( this );
  68216. }
  68217. operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  68218. {
  68219. return *reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT *>( this );
  68220. }
  68221. #if defined( VULKAN_HPP_USE_REFLECT )
  68222. # if 14 <= VULKAN_HPP_CPP_VERSION
  68223. auto
  68224. # else
  68225. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  68226. # endif
  68227. reflect() const VULKAN_HPP_NOEXCEPT
  68228. {
  68229. return std::tie( sType, pNext, shaderImageInt64Atomics, sparseImageInt64Atomics );
  68230. }
  68231. #endif
  68232. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68233. auto operator<=>( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & ) const = default;
  68234. #else
  68235. bool operator==( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  68236. {
  68237. # if defined( VULKAN_HPP_USE_REFLECT )
  68238. return this->reflect() == rhs.reflect();
  68239. # else
  68240. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderImageInt64Atomics == rhs.shaderImageInt64Atomics ) &&
  68241. ( sparseImageInt64Atomics == rhs.sparseImageInt64Atomics );
  68242. # endif
  68243. }
  68244. bool operator!=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  68245. {
  68246. return !operator==( rhs );
  68247. }
  68248. #endif
  68249. public:
  68250. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  68251. void * pNext = {};
  68252. VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics = {};
  68253. VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics = {};
  68254. };
  68255. template <>
  68256. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT>
  68257. {
  68258. using Type = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  68259. };
  68260. struct PhysicalDeviceShaderImageFootprintFeaturesNV
  68261. {
  68262. using NativeType = VkPhysicalDeviceShaderImageFootprintFeaturesNV;
  68263. static const bool allowDuplicate = false;
  68264. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
  68265. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68266. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {},
  68267. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68268. : pNext( pNext_ )
  68269. , imageFootprint( imageFootprint_ )
  68270. {
  68271. }
  68272. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68273. PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  68274. : PhysicalDeviceShaderImageFootprintFeaturesNV( *reinterpret_cast<PhysicalDeviceShaderImageFootprintFeaturesNV const *>( &rhs ) )
  68275. {
  68276. }
  68277. PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68278. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68279. PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  68280. {
  68281. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV const *>( &rhs );
  68282. return *this;
  68283. }
  68284. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68285. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  68286. {
  68287. pNext = pNext_;
  68288. return *this;
  68289. }
  68290. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT
  68291. {
  68292. imageFootprint = imageFootprint_;
  68293. return *this;
  68294. }
  68295. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68296. operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  68297. {
  68298. return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV *>( this );
  68299. }
  68300. operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT
  68301. {
  68302. return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV *>( this );
  68303. }
  68304. #if defined( VULKAN_HPP_USE_REFLECT )
  68305. # if 14 <= VULKAN_HPP_CPP_VERSION
  68306. auto
  68307. # else
  68308. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  68309. # endif
  68310. reflect() const VULKAN_HPP_NOEXCEPT
  68311. {
  68312. return std::tie( sType, pNext, imageFootprint );
  68313. }
  68314. #endif
  68315. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68316. auto operator<=>( PhysicalDeviceShaderImageFootprintFeaturesNV const & ) const = default;
  68317. #else
  68318. bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  68319. {
  68320. # if defined( VULKAN_HPP_USE_REFLECT )
  68321. return this->reflect() == rhs.reflect();
  68322. # else
  68323. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageFootprint == rhs.imageFootprint );
  68324. # endif
  68325. }
  68326. bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  68327. {
  68328. return !operator==( rhs );
  68329. }
  68330. #endif
  68331. public:
  68332. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
  68333. void * pNext = {};
  68334. VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {};
  68335. };
  68336. template <>
  68337. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV>
  68338. {
  68339. using Type = PhysicalDeviceShaderImageFootprintFeaturesNV;
  68340. };
  68341. struct PhysicalDeviceShaderIntegerDotProductFeatures
  68342. {
  68343. using NativeType = VkPhysicalDeviceShaderIntegerDotProductFeatures;
  68344. static const bool allowDuplicate = false;
  68345. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerDotProductFeatures;
  68346. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68347. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ = {},
  68348. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68349. : pNext( pNext_ )
  68350. , shaderIntegerDotProduct( shaderIntegerDotProduct_ )
  68351. {
  68352. }
  68353. VULKAN_HPP_CONSTEXPR
  68354. PhysicalDeviceShaderIntegerDotProductFeatures( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68355. PhysicalDeviceShaderIntegerDotProductFeatures( VkPhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  68356. : PhysicalDeviceShaderIntegerDotProductFeatures( *reinterpret_cast<PhysicalDeviceShaderIntegerDotProductFeatures const *>( &rhs ) )
  68357. {
  68358. }
  68359. PhysicalDeviceShaderIntegerDotProductFeatures & operator=( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68360. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68361. PhysicalDeviceShaderIntegerDotProductFeatures & operator=( VkPhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  68362. {
  68363. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures const *>( &rhs );
  68364. return *this;
  68365. }
  68366. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68367. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerDotProductFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  68368. {
  68369. pNext = pNext_;
  68370. return *this;
  68371. }
  68372. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerDotProductFeatures &
  68373. setShaderIntegerDotProduct( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ ) VULKAN_HPP_NOEXCEPT
  68374. {
  68375. shaderIntegerDotProduct = shaderIntegerDotProduct_;
  68376. return *this;
  68377. }
  68378. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68379. operator VkPhysicalDeviceShaderIntegerDotProductFeatures const &() const VULKAN_HPP_NOEXCEPT
  68380. {
  68381. return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures *>( this );
  68382. }
  68383. operator VkPhysicalDeviceShaderIntegerDotProductFeatures &() VULKAN_HPP_NOEXCEPT
  68384. {
  68385. return *reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeatures *>( this );
  68386. }
  68387. #if defined( VULKAN_HPP_USE_REFLECT )
  68388. # if 14 <= VULKAN_HPP_CPP_VERSION
  68389. auto
  68390. # else
  68391. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  68392. # endif
  68393. reflect() const VULKAN_HPP_NOEXCEPT
  68394. {
  68395. return std::tie( sType, pNext, shaderIntegerDotProduct );
  68396. }
  68397. #endif
  68398. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68399. auto operator<=>( PhysicalDeviceShaderIntegerDotProductFeatures const & ) const = default;
  68400. #else
  68401. bool operator==( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  68402. {
  68403. # if defined( VULKAN_HPP_USE_REFLECT )
  68404. return this->reflect() == rhs.reflect();
  68405. # else
  68406. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderIntegerDotProduct == rhs.shaderIntegerDotProduct );
  68407. # endif
  68408. }
  68409. bool operator!=( PhysicalDeviceShaderIntegerDotProductFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  68410. {
  68411. return !operator==( rhs );
  68412. }
  68413. #endif
  68414. public:
  68415. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerDotProductFeatures;
  68416. void * pNext = {};
  68417. VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct = {};
  68418. };
  68419. template <>
  68420. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerDotProductFeatures>
  68421. {
  68422. using Type = PhysicalDeviceShaderIntegerDotProductFeatures;
  68423. };
  68424. using PhysicalDeviceShaderIntegerDotProductFeaturesKHR = PhysicalDeviceShaderIntegerDotProductFeatures;
  68425. struct PhysicalDeviceShaderIntegerDotProductProperties
  68426. {
  68427. using NativeType = VkPhysicalDeviceShaderIntegerDotProductProperties;
  68428. static const bool allowDuplicate = false;
  68429. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerDotProductProperties;
  68430. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68431. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerDotProductProperties(
  68432. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated_ = {},
  68433. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated_ = {},
  68434. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated_ = {},
  68435. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated_ = {},
  68436. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated_ = {},
  68437. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated_ = {},
  68438. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated_ = {},
  68439. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated_ = {},
  68440. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated_ = {},
  68441. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated_ = {},
  68442. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated_ = {},
  68443. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated_ = {},
  68444. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated_ = {},
  68445. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated_ = {},
  68446. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated_ = {},
  68447. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ = {},
  68448. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated_ = {},
  68449. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ = {},
  68450. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ = {},
  68451. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ = {},
  68452. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ = {},
  68453. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ = {},
  68454. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated_ = {},
  68455. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ = {},
  68456. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ = {},
  68457. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated_ = {},
  68458. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ = {},
  68459. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ = {},
  68460. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated_ = {},
  68461. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ = {},
  68462. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68463. : pNext( pNext_ )
  68464. , integerDotProduct8BitUnsignedAccelerated( integerDotProduct8BitUnsignedAccelerated_ )
  68465. , integerDotProduct8BitSignedAccelerated( integerDotProduct8BitSignedAccelerated_ )
  68466. , integerDotProduct8BitMixedSignednessAccelerated( integerDotProduct8BitMixedSignednessAccelerated_ )
  68467. , integerDotProduct4x8BitPackedUnsignedAccelerated( integerDotProduct4x8BitPackedUnsignedAccelerated_ )
  68468. , integerDotProduct4x8BitPackedSignedAccelerated( integerDotProduct4x8BitPackedSignedAccelerated_ )
  68469. , integerDotProduct4x8BitPackedMixedSignednessAccelerated( integerDotProduct4x8BitPackedMixedSignednessAccelerated_ )
  68470. , integerDotProduct16BitUnsignedAccelerated( integerDotProduct16BitUnsignedAccelerated_ )
  68471. , integerDotProduct16BitSignedAccelerated( integerDotProduct16BitSignedAccelerated_ )
  68472. , integerDotProduct16BitMixedSignednessAccelerated( integerDotProduct16BitMixedSignednessAccelerated_ )
  68473. , integerDotProduct32BitUnsignedAccelerated( integerDotProduct32BitUnsignedAccelerated_ )
  68474. , integerDotProduct32BitSignedAccelerated( integerDotProduct32BitSignedAccelerated_ )
  68475. , integerDotProduct32BitMixedSignednessAccelerated( integerDotProduct32BitMixedSignednessAccelerated_ )
  68476. , integerDotProduct64BitUnsignedAccelerated( integerDotProduct64BitUnsignedAccelerated_ )
  68477. , integerDotProduct64BitSignedAccelerated( integerDotProduct64BitSignedAccelerated_ )
  68478. , integerDotProduct64BitMixedSignednessAccelerated( integerDotProduct64BitMixedSignednessAccelerated_ )
  68479. , integerDotProductAccumulatingSaturating8BitUnsignedAccelerated( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ )
  68480. , integerDotProductAccumulatingSaturating8BitSignedAccelerated( integerDotProductAccumulatingSaturating8BitSignedAccelerated_ )
  68481. , integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ )
  68482. , integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ )
  68483. , integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ )
  68484. , integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated(
  68485. integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ )
  68486. , integerDotProductAccumulatingSaturating16BitUnsignedAccelerated( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ )
  68487. , integerDotProductAccumulatingSaturating16BitSignedAccelerated( integerDotProductAccumulatingSaturating16BitSignedAccelerated_ )
  68488. , integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ )
  68489. , integerDotProductAccumulatingSaturating32BitUnsignedAccelerated( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ )
  68490. , integerDotProductAccumulatingSaturating32BitSignedAccelerated( integerDotProductAccumulatingSaturating32BitSignedAccelerated_ )
  68491. , integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ )
  68492. , integerDotProductAccumulatingSaturating64BitUnsignedAccelerated( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ )
  68493. , integerDotProductAccumulatingSaturating64BitSignedAccelerated( integerDotProductAccumulatingSaturating64BitSignedAccelerated_ )
  68494. , integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ )
  68495. {
  68496. }
  68497. VULKAN_HPP_CONSTEXPR
  68498. PhysicalDeviceShaderIntegerDotProductProperties( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68499. PhysicalDeviceShaderIntegerDotProductProperties( VkPhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  68500. : PhysicalDeviceShaderIntegerDotProductProperties( *reinterpret_cast<PhysicalDeviceShaderIntegerDotProductProperties const *>( &rhs ) )
  68501. {
  68502. }
  68503. PhysicalDeviceShaderIntegerDotProductProperties & operator=( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68504. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68505. PhysicalDeviceShaderIntegerDotProductProperties & operator=( VkPhysicalDeviceShaderIntegerDotProductProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  68506. {
  68507. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties const *>( &rhs );
  68508. return *this;
  68509. }
  68510. operator VkPhysicalDeviceShaderIntegerDotProductProperties const &() const VULKAN_HPP_NOEXCEPT
  68511. {
  68512. return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductProperties *>( this );
  68513. }
  68514. operator VkPhysicalDeviceShaderIntegerDotProductProperties &() VULKAN_HPP_NOEXCEPT
  68515. {
  68516. return *reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductProperties *>( this );
  68517. }
  68518. #if defined( VULKAN_HPP_USE_REFLECT )
  68519. # if 14 <= VULKAN_HPP_CPP_VERSION
  68520. auto
  68521. # else
  68522. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  68523. void * const &,
  68524. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68525. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68526. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68527. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68528. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68529. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68530. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68531. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68532. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68533. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68534. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68535. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68536. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68537. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68538. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68539. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68540. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68541. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68542. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68543. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68544. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68545. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68546. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68547. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68548. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68549. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68550. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68551. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68552. VULKAN_HPP_NAMESPACE::Bool32 const &,
  68553. VULKAN_HPP_NAMESPACE::Bool32 const &>
  68554. # endif
  68555. reflect() const VULKAN_HPP_NOEXCEPT
  68556. {
  68557. return std::tie( sType,
  68558. pNext,
  68559. integerDotProduct8BitUnsignedAccelerated,
  68560. integerDotProduct8BitSignedAccelerated,
  68561. integerDotProduct8BitMixedSignednessAccelerated,
  68562. integerDotProduct4x8BitPackedUnsignedAccelerated,
  68563. integerDotProduct4x8BitPackedSignedAccelerated,
  68564. integerDotProduct4x8BitPackedMixedSignednessAccelerated,
  68565. integerDotProduct16BitUnsignedAccelerated,
  68566. integerDotProduct16BitSignedAccelerated,
  68567. integerDotProduct16BitMixedSignednessAccelerated,
  68568. integerDotProduct32BitUnsignedAccelerated,
  68569. integerDotProduct32BitSignedAccelerated,
  68570. integerDotProduct32BitMixedSignednessAccelerated,
  68571. integerDotProduct64BitUnsignedAccelerated,
  68572. integerDotProduct64BitSignedAccelerated,
  68573. integerDotProduct64BitMixedSignednessAccelerated,
  68574. integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
  68575. integerDotProductAccumulatingSaturating8BitSignedAccelerated,
  68576. integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
  68577. integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
  68578. integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
  68579. integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
  68580. integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
  68581. integerDotProductAccumulatingSaturating16BitSignedAccelerated,
  68582. integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
  68583. integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
  68584. integerDotProductAccumulatingSaturating32BitSignedAccelerated,
  68585. integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
  68586. integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
  68587. integerDotProductAccumulatingSaturating64BitSignedAccelerated,
  68588. integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated );
  68589. }
  68590. #endif
  68591. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68592. auto operator<=>( PhysicalDeviceShaderIntegerDotProductProperties const & ) const = default;
  68593. #else
  68594. bool operator==( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  68595. {
  68596. # if defined( VULKAN_HPP_USE_REFLECT )
  68597. return this->reflect() == rhs.reflect();
  68598. # else
  68599. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( integerDotProduct8BitUnsignedAccelerated == rhs.integerDotProduct8BitUnsignedAccelerated ) &&
  68600. ( integerDotProduct8BitSignedAccelerated == rhs.integerDotProduct8BitSignedAccelerated ) &&
  68601. ( integerDotProduct8BitMixedSignednessAccelerated == rhs.integerDotProduct8BitMixedSignednessAccelerated ) &&
  68602. ( integerDotProduct4x8BitPackedUnsignedAccelerated == rhs.integerDotProduct4x8BitPackedUnsignedAccelerated ) &&
  68603. ( integerDotProduct4x8BitPackedSignedAccelerated == rhs.integerDotProduct4x8BitPackedSignedAccelerated ) &&
  68604. ( integerDotProduct4x8BitPackedMixedSignednessAccelerated == rhs.integerDotProduct4x8BitPackedMixedSignednessAccelerated ) &&
  68605. ( integerDotProduct16BitUnsignedAccelerated == rhs.integerDotProduct16BitUnsignedAccelerated ) &&
  68606. ( integerDotProduct16BitSignedAccelerated == rhs.integerDotProduct16BitSignedAccelerated ) &&
  68607. ( integerDotProduct16BitMixedSignednessAccelerated == rhs.integerDotProduct16BitMixedSignednessAccelerated ) &&
  68608. ( integerDotProduct32BitUnsignedAccelerated == rhs.integerDotProduct32BitUnsignedAccelerated ) &&
  68609. ( integerDotProduct32BitSignedAccelerated == rhs.integerDotProduct32BitSignedAccelerated ) &&
  68610. ( integerDotProduct32BitMixedSignednessAccelerated == rhs.integerDotProduct32BitMixedSignednessAccelerated ) &&
  68611. ( integerDotProduct64BitUnsignedAccelerated == rhs.integerDotProduct64BitUnsignedAccelerated ) &&
  68612. ( integerDotProduct64BitSignedAccelerated == rhs.integerDotProduct64BitSignedAccelerated ) &&
  68613. ( integerDotProduct64BitMixedSignednessAccelerated == rhs.integerDotProduct64BitMixedSignednessAccelerated ) &&
  68614. ( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated ) &&
  68615. ( integerDotProductAccumulatingSaturating8BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitSignedAccelerated ) &&
  68616. ( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated ==
  68617. rhs.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated ) &&
  68618. ( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated ==
  68619. rhs.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated ) &&
  68620. ( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated ==
  68621. rhs.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated ) &&
  68622. ( integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated ==
  68623. rhs.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated ) &&
  68624. ( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated ) &&
  68625. ( integerDotProductAccumulatingSaturating16BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitSignedAccelerated ) &&
  68626. ( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated ==
  68627. rhs.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated ) &&
  68628. ( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated ) &&
  68629. ( integerDotProductAccumulatingSaturating32BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitSignedAccelerated ) &&
  68630. ( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated ==
  68631. rhs.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated ) &&
  68632. ( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated ) &&
  68633. ( integerDotProductAccumulatingSaturating64BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitSignedAccelerated ) &&
  68634. ( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated ==
  68635. rhs.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated );
  68636. # endif
  68637. }
  68638. bool operator!=( PhysicalDeviceShaderIntegerDotProductProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  68639. {
  68640. return !operator==( rhs );
  68641. }
  68642. #endif
  68643. public:
  68644. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerDotProductProperties;
  68645. void * pNext = {};
  68646. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated = {};
  68647. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated = {};
  68648. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated = {};
  68649. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated = {};
  68650. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated = {};
  68651. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated = {};
  68652. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated = {};
  68653. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated = {};
  68654. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated = {};
  68655. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated = {};
  68656. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated = {};
  68657. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated = {};
  68658. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated = {};
  68659. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated = {};
  68660. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated = {};
  68661. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = {};
  68662. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated = {};
  68663. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = {};
  68664. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = {};
  68665. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = {};
  68666. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = {};
  68667. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = {};
  68668. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated = {};
  68669. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = {};
  68670. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = {};
  68671. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated = {};
  68672. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = {};
  68673. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = {};
  68674. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated = {};
  68675. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = {};
  68676. };
  68677. template <>
  68678. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerDotProductProperties>
  68679. {
  68680. using Type = PhysicalDeviceShaderIntegerDotProductProperties;
  68681. };
  68682. using PhysicalDeviceShaderIntegerDotProductPropertiesKHR = PhysicalDeviceShaderIntegerDotProductProperties;
  68683. struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
  68684. {
  68685. using NativeType = VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  68686. static const bool allowDuplicate = false;
  68687. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  68688. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68689. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {},
  68690. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68691. : pNext( pNext_ )
  68692. , shaderIntegerFunctions2( shaderIntegerFunctions2_ )
  68693. {
  68694. }
  68695. VULKAN_HPP_CONSTEXPR
  68696. PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68697. PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  68698. : PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( *reinterpret_cast<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>( &rhs ) )
  68699. {
  68700. }
  68701. PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &
  68702. operator=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68703. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68704. PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  68705. {
  68706. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const *>( &rhs );
  68707. return *this;
  68708. }
  68709. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68710. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  68711. {
  68712. pNext = pNext_;
  68713. return *this;
  68714. }
  68715. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &
  68716. setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT
  68717. {
  68718. shaderIntegerFunctions2 = shaderIntegerFunctions2_;
  68719. return *this;
  68720. }
  68721. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68722. operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const &() const VULKAN_HPP_NOEXCEPT
  68723. {
  68724. return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL *>( this );
  68725. }
  68726. operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT
  68727. {
  68728. return *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL *>( this );
  68729. }
  68730. #if defined( VULKAN_HPP_USE_REFLECT )
  68731. # if 14 <= VULKAN_HPP_CPP_VERSION
  68732. auto
  68733. # else
  68734. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  68735. # endif
  68736. reflect() const VULKAN_HPP_NOEXCEPT
  68737. {
  68738. return std::tie( sType, pNext, shaderIntegerFunctions2 );
  68739. }
  68740. #endif
  68741. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68742. auto operator<=>( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & ) const = default;
  68743. #else
  68744. bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  68745. {
  68746. # if defined( VULKAN_HPP_USE_REFLECT )
  68747. return this->reflect() == rhs.reflect();
  68748. # else
  68749. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 );
  68750. # endif
  68751. }
  68752. bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  68753. {
  68754. return !operator==( rhs );
  68755. }
  68756. #endif
  68757. public:
  68758. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  68759. void * pNext = {};
  68760. VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {};
  68761. };
  68762. template <>
  68763. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>
  68764. {
  68765. using Type = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  68766. };
  68767. struct PhysicalDeviceShaderModuleIdentifierFeaturesEXT
  68768. {
  68769. using NativeType = VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
  68770. static const bool allowDuplicate = false;
  68771. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderModuleIdentifierFeaturesEXT;
  68772. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68773. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderModuleIdentifierFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier_ = {},
  68774. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68775. : pNext( pNext_ )
  68776. , shaderModuleIdentifier( shaderModuleIdentifier_ )
  68777. {
  68778. }
  68779. VULKAN_HPP_CONSTEXPR
  68780. PhysicalDeviceShaderModuleIdentifierFeaturesEXT( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68781. PhysicalDeviceShaderModuleIdentifierFeaturesEXT( VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  68782. : PhysicalDeviceShaderModuleIdentifierFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderModuleIdentifierFeaturesEXT const *>( &rhs ) )
  68783. {
  68784. }
  68785. PhysicalDeviceShaderModuleIdentifierFeaturesEXT & operator=( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68786. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68787. PhysicalDeviceShaderModuleIdentifierFeaturesEXT & operator=( VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  68788. {
  68789. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT const *>( &rhs );
  68790. return *this;
  68791. }
  68792. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68793. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderModuleIdentifierFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  68794. {
  68795. pNext = pNext_;
  68796. return *this;
  68797. }
  68798. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderModuleIdentifierFeaturesEXT &
  68799. setShaderModuleIdentifier( VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier_ ) VULKAN_HPP_NOEXCEPT
  68800. {
  68801. shaderModuleIdentifier = shaderModuleIdentifier_;
  68802. return *this;
  68803. }
  68804. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68805. operator VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  68806. {
  68807. return *reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *>( this );
  68808. }
  68809. operator VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  68810. {
  68811. return *reinterpret_cast<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *>( this );
  68812. }
  68813. #if defined( VULKAN_HPP_USE_REFLECT )
  68814. # if 14 <= VULKAN_HPP_CPP_VERSION
  68815. auto
  68816. # else
  68817. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  68818. # endif
  68819. reflect() const VULKAN_HPP_NOEXCEPT
  68820. {
  68821. return std::tie( sType, pNext, shaderModuleIdentifier );
  68822. }
  68823. #endif
  68824. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68825. auto operator<=>( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & ) const = default;
  68826. #else
  68827. bool operator==( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  68828. {
  68829. # if defined( VULKAN_HPP_USE_REFLECT )
  68830. return this->reflect() == rhs.reflect();
  68831. # else
  68832. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderModuleIdentifier == rhs.shaderModuleIdentifier );
  68833. # endif
  68834. }
  68835. bool operator!=( PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  68836. {
  68837. return !operator==( rhs );
  68838. }
  68839. #endif
  68840. public:
  68841. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderModuleIdentifierFeaturesEXT;
  68842. void * pNext = {};
  68843. VULKAN_HPP_NAMESPACE::Bool32 shaderModuleIdentifier = {};
  68844. };
  68845. template <>
  68846. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderModuleIdentifierFeaturesEXT>
  68847. {
  68848. using Type = PhysicalDeviceShaderModuleIdentifierFeaturesEXT;
  68849. };
  68850. struct PhysicalDeviceShaderModuleIdentifierPropertiesEXT
  68851. {
  68852. using NativeType = VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
  68853. static const bool allowDuplicate = false;
  68854. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderModuleIdentifierPropertiesEXT;
  68855. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68856. VULKAN_HPP_CONSTEXPR_14
  68857. PhysicalDeviceShaderModuleIdentifierPropertiesEXT( std::array<uint8_t, VK_UUID_SIZE> const & shaderModuleIdentifierAlgorithmUUID_ = {},
  68858. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68859. : pNext( pNext_ )
  68860. , shaderModuleIdentifierAlgorithmUUID( shaderModuleIdentifierAlgorithmUUID_ )
  68861. {
  68862. }
  68863. VULKAN_HPP_CONSTEXPR_14
  68864. PhysicalDeviceShaderModuleIdentifierPropertiesEXT( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68865. PhysicalDeviceShaderModuleIdentifierPropertiesEXT( VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  68866. : PhysicalDeviceShaderModuleIdentifierPropertiesEXT( *reinterpret_cast<PhysicalDeviceShaderModuleIdentifierPropertiesEXT const *>( &rhs ) )
  68867. {
  68868. }
  68869. PhysicalDeviceShaderModuleIdentifierPropertiesEXT &
  68870. operator=( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68871. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68872. PhysicalDeviceShaderModuleIdentifierPropertiesEXT & operator=( VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  68873. {
  68874. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT const *>( &rhs );
  68875. return *this;
  68876. }
  68877. operator VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  68878. {
  68879. return *reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT *>( this );
  68880. }
  68881. operator VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  68882. {
  68883. return *reinterpret_cast<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT *>( this );
  68884. }
  68885. #if defined( VULKAN_HPP_USE_REFLECT )
  68886. # if 14 <= VULKAN_HPP_CPP_VERSION
  68887. auto
  68888. # else
  68889. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
  68890. # endif
  68891. reflect() const VULKAN_HPP_NOEXCEPT
  68892. {
  68893. return std::tie( sType, pNext, shaderModuleIdentifierAlgorithmUUID );
  68894. }
  68895. #endif
  68896. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68897. auto operator<=>( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & ) const = default;
  68898. #else
  68899. bool operator==( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  68900. {
  68901. # if defined( VULKAN_HPP_USE_REFLECT )
  68902. return this->reflect() == rhs.reflect();
  68903. # else
  68904. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderModuleIdentifierAlgorithmUUID == rhs.shaderModuleIdentifierAlgorithmUUID );
  68905. # endif
  68906. }
  68907. bool operator!=( PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  68908. {
  68909. return !operator==( rhs );
  68910. }
  68911. #endif
  68912. public:
  68913. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderModuleIdentifierPropertiesEXT;
  68914. void * pNext = {};
  68915. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> shaderModuleIdentifierAlgorithmUUID = {};
  68916. };
  68917. template <>
  68918. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderModuleIdentifierPropertiesEXT>
  68919. {
  68920. using Type = PhysicalDeviceShaderModuleIdentifierPropertiesEXT;
  68921. };
  68922. struct PhysicalDeviceShaderObjectFeaturesEXT
  68923. {
  68924. using NativeType = VkPhysicalDeviceShaderObjectFeaturesEXT;
  68925. static const bool allowDuplicate = false;
  68926. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderObjectFeaturesEXT;
  68927. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  68928. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderObjectFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderObject_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  68929. : pNext( pNext_ )
  68930. , shaderObject( shaderObject_ )
  68931. {
  68932. }
  68933. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderObjectFeaturesEXT( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68934. PhysicalDeviceShaderObjectFeaturesEXT( VkPhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  68935. : PhysicalDeviceShaderObjectFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderObjectFeaturesEXT const *>( &rhs ) )
  68936. {
  68937. }
  68938. PhysicalDeviceShaderObjectFeaturesEXT & operator=( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  68939. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  68940. PhysicalDeviceShaderObjectFeaturesEXT & operator=( VkPhysicalDeviceShaderObjectFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  68941. {
  68942. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT const *>( &rhs );
  68943. return *this;
  68944. }
  68945. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  68946. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  68947. {
  68948. pNext = pNext_;
  68949. return *this;
  68950. }
  68951. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectFeaturesEXT & setShaderObject( VULKAN_HPP_NAMESPACE::Bool32 shaderObject_ ) VULKAN_HPP_NOEXCEPT
  68952. {
  68953. shaderObject = shaderObject_;
  68954. return *this;
  68955. }
  68956. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  68957. operator VkPhysicalDeviceShaderObjectFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  68958. {
  68959. return *reinterpret_cast<const VkPhysicalDeviceShaderObjectFeaturesEXT *>( this );
  68960. }
  68961. operator VkPhysicalDeviceShaderObjectFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  68962. {
  68963. return *reinterpret_cast<VkPhysicalDeviceShaderObjectFeaturesEXT *>( this );
  68964. }
  68965. #if defined( VULKAN_HPP_USE_REFLECT )
  68966. # if 14 <= VULKAN_HPP_CPP_VERSION
  68967. auto
  68968. # else
  68969. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  68970. # endif
  68971. reflect() const VULKAN_HPP_NOEXCEPT
  68972. {
  68973. return std::tie( sType, pNext, shaderObject );
  68974. }
  68975. #endif
  68976. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  68977. auto operator<=>( PhysicalDeviceShaderObjectFeaturesEXT const & ) const = default;
  68978. #else
  68979. bool operator==( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  68980. {
  68981. # if defined( VULKAN_HPP_USE_REFLECT )
  68982. return this->reflect() == rhs.reflect();
  68983. # else
  68984. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderObject == rhs.shaderObject );
  68985. # endif
  68986. }
  68987. bool operator!=( PhysicalDeviceShaderObjectFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  68988. {
  68989. return !operator==( rhs );
  68990. }
  68991. #endif
  68992. public:
  68993. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderObjectFeaturesEXT;
  68994. void * pNext = {};
  68995. VULKAN_HPP_NAMESPACE::Bool32 shaderObject = {};
  68996. };
  68997. template <>
  68998. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderObjectFeaturesEXT>
  68999. {
  69000. using Type = PhysicalDeviceShaderObjectFeaturesEXT;
  69001. };
  69002. struct PhysicalDeviceShaderObjectPropertiesEXT
  69003. {
  69004. using NativeType = VkPhysicalDeviceShaderObjectPropertiesEXT;
  69005. static const bool allowDuplicate = false;
  69006. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderObjectPropertiesEXT;
  69007. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69008. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectPropertiesEXT( std::array<uint8_t, VK_UUID_SIZE> const & shaderBinaryUUID_ = {},
  69009. uint32_t shaderBinaryVersion_ = {},
  69010. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69011. : pNext( pNext_ )
  69012. , shaderBinaryUUID( shaderBinaryUUID_ )
  69013. , shaderBinaryVersion( shaderBinaryVersion_ )
  69014. {
  69015. }
  69016. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderObjectPropertiesEXT( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69017. PhysicalDeviceShaderObjectPropertiesEXT( VkPhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69018. : PhysicalDeviceShaderObjectPropertiesEXT( *reinterpret_cast<PhysicalDeviceShaderObjectPropertiesEXT const *>( &rhs ) )
  69019. {
  69020. }
  69021. PhysicalDeviceShaderObjectPropertiesEXT & operator=( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69022. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69023. PhysicalDeviceShaderObjectPropertiesEXT & operator=( VkPhysicalDeviceShaderObjectPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69024. {
  69025. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT const *>( &rhs );
  69026. return *this;
  69027. }
  69028. operator VkPhysicalDeviceShaderObjectPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  69029. {
  69030. return *reinterpret_cast<const VkPhysicalDeviceShaderObjectPropertiesEXT *>( this );
  69031. }
  69032. operator VkPhysicalDeviceShaderObjectPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  69033. {
  69034. return *reinterpret_cast<VkPhysicalDeviceShaderObjectPropertiesEXT *>( this );
  69035. }
  69036. #if defined( VULKAN_HPP_USE_REFLECT )
  69037. # if 14 <= VULKAN_HPP_CPP_VERSION
  69038. auto
  69039. # else
  69040. std::
  69041. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &, uint32_t const &>
  69042. # endif
  69043. reflect() const VULKAN_HPP_NOEXCEPT
  69044. {
  69045. return std::tie( sType, pNext, shaderBinaryUUID, shaderBinaryVersion );
  69046. }
  69047. #endif
  69048. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69049. auto operator<=>( PhysicalDeviceShaderObjectPropertiesEXT const & ) const = default;
  69050. #else
  69051. bool operator==( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69052. {
  69053. # if defined( VULKAN_HPP_USE_REFLECT )
  69054. return this->reflect() == rhs.reflect();
  69055. # else
  69056. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderBinaryUUID == rhs.shaderBinaryUUID ) &&
  69057. ( shaderBinaryVersion == rhs.shaderBinaryVersion );
  69058. # endif
  69059. }
  69060. bool operator!=( PhysicalDeviceShaderObjectPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69061. {
  69062. return !operator==( rhs );
  69063. }
  69064. #endif
  69065. public:
  69066. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderObjectPropertiesEXT;
  69067. void * pNext = {};
  69068. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> shaderBinaryUUID = {};
  69069. uint32_t shaderBinaryVersion = {};
  69070. };
  69071. template <>
  69072. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderObjectPropertiesEXT>
  69073. {
  69074. using Type = PhysicalDeviceShaderObjectPropertiesEXT;
  69075. };
  69076. struct PhysicalDeviceShaderSMBuiltinsFeaturesNV
  69077. {
  69078. using NativeType = VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
  69079. static const bool allowDuplicate = false;
  69080. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
  69081. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69082. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {},
  69083. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69084. : pNext( pNext_ )
  69085. , shaderSMBuiltins( shaderSMBuiltins_ )
  69086. {
  69087. }
  69088. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69089. PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  69090. : PhysicalDeviceShaderSMBuiltinsFeaturesNV( *reinterpret_cast<PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>( &rhs ) )
  69091. {
  69092. }
  69093. PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69094. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69095. PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  69096. {
  69097. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV const *>( &rhs );
  69098. return *this;
  69099. }
  69100. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69101. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69102. {
  69103. pNext = pNext_;
  69104. return *this;
  69105. }
  69106. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT
  69107. {
  69108. shaderSMBuiltins = shaderSMBuiltins_;
  69109. return *this;
  69110. }
  69111. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69112. operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  69113. {
  69114. return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV *>( this );
  69115. }
  69116. operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT
  69117. {
  69118. return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV *>( this );
  69119. }
  69120. #if defined( VULKAN_HPP_USE_REFLECT )
  69121. # if 14 <= VULKAN_HPP_CPP_VERSION
  69122. auto
  69123. # else
  69124. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  69125. # endif
  69126. reflect() const VULKAN_HPP_NOEXCEPT
  69127. {
  69128. return std::tie( sType, pNext, shaderSMBuiltins );
  69129. }
  69130. #endif
  69131. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69132. auto operator<=>( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & ) const = default;
  69133. #else
  69134. bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  69135. {
  69136. # if defined( VULKAN_HPP_USE_REFLECT )
  69137. return this->reflect() == rhs.reflect();
  69138. # else
  69139. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSMBuiltins == rhs.shaderSMBuiltins );
  69140. # endif
  69141. }
  69142. bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  69143. {
  69144. return !operator==( rhs );
  69145. }
  69146. #endif
  69147. public:
  69148. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
  69149. void * pNext = {};
  69150. VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {};
  69151. };
  69152. template <>
  69153. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV>
  69154. {
  69155. using Type = PhysicalDeviceShaderSMBuiltinsFeaturesNV;
  69156. };
  69157. struct PhysicalDeviceShaderSMBuiltinsPropertiesNV
  69158. {
  69159. using NativeType = VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
  69160. static const bool allowDuplicate = false;
  69161. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
  69162. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69163. VULKAN_HPP_CONSTEXPR
  69164. PhysicalDeviceShaderSMBuiltinsPropertiesNV( uint32_t shaderSMCount_ = {}, uint32_t shaderWarpsPerSM_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69165. : pNext( pNext_ )
  69166. , shaderSMCount( shaderSMCount_ )
  69167. , shaderWarpsPerSM( shaderWarpsPerSM_ )
  69168. {
  69169. }
  69170. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69171. PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  69172. : PhysicalDeviceShaderSMBuiltinsPropertiesNV( *reinterpret_cast<PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>( &rhs ) )
  69173. {
  69174. }
  69175. PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69176. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69177. PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  69178. {
  69179. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV const *>( &rhs );
  69180. return *this;
  69181. }
  69182. operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  69183. {
  69184. return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV *>( this );
  69185. }
  69186. operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT
  69187. {
  69188. return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV *>( this );
  69189. }
  69190. #if defined( VULKAN_HPP_USE_REFLECT )
  69191. # if 14 <= VULKAN_HPP_CPP_VERSION
  69192. auto
  69193. # else
  69194. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, uint32_t const &>
  69195. # endif
  69196. reflect() const VULKAN_HPP_NOEXCEPT
  69197. {
  69198. return std::tie( sType, pNext, shaderSMCount, shaderWarpsPerSM );
  69199. }
  69200. #endif
  69201. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69202. auto operator<=>( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & ) const = default;
  69203. #else
  69204. bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  69205. {
  69206. # if defined( VULKAN_HPP_USE_REFLECT )
  69207. return this->reflect() == rhs.reflect();
  69208. # else
  69209. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSMCount == rhs.shaderSMCount ) && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM );
  69210. # endif
  69211. }
  69212. bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  69213. {
  69214. return !operator==( rhs );
  69215. }
  69216. #endif
  69217. public:
  69218. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
  69219. void * pNext = {};
  69220. uint32_t shaderSMCount = {};
  69221. uint32_t shaderWarpsPerSM = {};
  69222. };
  69223. template <>
  69224. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV>
  69225. {
  69226. using Type = PhysicalDeviceShaderSMBuiltinsPropertiesNV;
  69227. };
  69228. struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures
  69229. {
  69230. using NativeType = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  69231. static const bool allowDuplicate = false;
  69232. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  69233. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69234. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {},
  69235. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69236. : pNext( pNext_ )
  69237. , shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
  69238. {
  69239. }
  69240. VULKAN_HPP_CONSTEXPR
  69241. PhysicalDeviceShaderSubgroupExtendedTypesFeatures( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69242. PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  69243. : PhysicalDeviceShaderSubgroupExtendedTypesFeatures( *reinterpret_cast<PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>( &rhs ) )
  69244. {
  69245. }
  69246. PhysicalDeviceShaderSubgroupExtendedTypesFeatures &
  69247. operator=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69248. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69249. PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  69250. {
  69251. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures const *>( &rhs );
  69252. return *this;
  69253. }
  69254. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69255. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69256. {
  69257. pNext = pNext_;
  69258. return *this;
  69259. }
  69260. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupExtendedTypesFeatures &
  69261. setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
  69262. {
  69263. shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
  69264. return *this;
  69265. }
  69266. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69267. operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const &() const VULKAN_HPP_NOEXCEPT
  69268. {
  69269. return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *>( this );
  69270. }
  69271. operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT
  69272. {
  69273. return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *>( this );
  69274. }
  69275. #if defined( VULKAN_HPP_USE_REFLECT )
  69276. # if 14 <= VULKAN_HPP_CPP_VERSION
  69277. auto
  69278. # else
  69279. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  69280. # endif
  69281. reflect() const VULKAN_HPP_NOEXCEPT
  69282. {
  69283. return std::tie( sType, pNext, shaderSubgroupExtendedTypes );
  69284. }
  69285. #endif
  69286. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69287. auto operator<=>( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & ) const = default;
  69288. #else
  69289. bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  69290. {
  69291. # if defined( VULKAN_HPP_USE_REFLECT )
  69292. return this->reflect() == rhs.reflect();
  69293. # else
  69294. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes );
  69295. # endif
  69296. }
  69297. bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  69298. {
  69299. return !operator==( rhs );
  69300. }
  69301. #endif
  69302. public:
  69303. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  69304. void * pNext = {};
  69305. VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
  69306. };
  69307. template <>
  69308. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures>
  69309. {
  69310. using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  69311. };
  69312. using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  69313. struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
  69314. {
  69315. using NativeType = VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
  69316. static const bool allowDuplicate = false;
  69317. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
  69318. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69319. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow_ = {},
  69320. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69321. : pNext( pNext_ )
  69322. , shaderSubgroupUniformControlFlow( shaderSubgroupUniformControlFlow_ )
  69323. {
  69324. }
  69325. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs )
  69326. VULKAN_HPP_NOEXCEPT = default;
  69327. PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR( VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  69328. : PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
  69329. *reinterpret_cast<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const *>( &rhs ) )
  69330. {
  69331. }
  69332. PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &
  69333. operator=( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69334. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69335. PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &
  69336. operator=( VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  69337. {
  69338. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const *>( &rhs );
  69339. return *this;
  69340. }
  69341. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69342. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69343. {
  69344. pNext = pNext_;
  69345. return *this;
  69346. }
  69347. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &
  69348. setShaderSubgroupUniformControlFlow( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow_ ) VULKAN_HPP_NOEXCEPT
  69349. {
  69350. shaderSubgroupUniformControlFlow = shaderSubgroupUniformControlFlow_;
  69351. return *this;
  69352. }
  69353. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69354. operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  69355. {
  69356. return *reinterpret_cast<const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR *>( this );
  69357. }
  69358. operator VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  69359. {
  69360. return *reinterpret_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR *>( this );
  69361. }
  69362. #if defined( VULKAN_HPP_USE_REFLECT )
  69363. # if 14 <= VULKAN_HPP_CPP_VERSION
  69364. auto
  69365. # else
  69366. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  69367. # endif
  69368. reflect() const VULKAN_HPP_NOEXCEPT
  69369. {
  69370. return std::tie( sType, pNext, shaderSubgroupUniformControlFlow );
  69371. }
  69372. #endif
  69373. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69374. auto operator<=>( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & ) const = default;
  69375. #else
  69376. bool operator==( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  69377. {
  69378. # if defined( VULKAN_HPP_USE_REFLECT )
  69379. return this->reflect() == rhs.reflect();
  69380. # else
  69381. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSubgroupUniformControlFlow == rhs.shaderSubgroupUniformControlFlow );
  69382. # endif
  69383. }
  69384. bool operator!=( PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  69385. {
  69386. return !operator==( rhs );
  69387. }
  69388. #endif
  69389. public:
  69390. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
  69391. void * pNext = {};
  69392. VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupUniformControlFlow = {};
  69393. };
  69394. template <>
  69395. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>
  69396. {
  69397. using Type = PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
  69398. };
  69399. struct PhysicalDeviceShaderTerminateInvocationFeatures
  69400. {
  69401. using NativeType = VkPhysicalDeviceShaderTerminateInvocationFeatures;
  69402. static const bool allowDuplicate = false;
  69403. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeatures;
  69404. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69405. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {},
  69406. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69407. : pNext( pNext_ )
  69408. , shaderTerminateInvocation( shaderTerminateInvocation_ )
  69409. {
  69410. }
  69411. VULKAN_HPP_CONSTEXPR
  69412. PhysicalDeviceShaderTerminateInvocationFeatures( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69413. PhysicalDeviceShaderTerminateInvocationFeatures( VkPhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  69414. : PhysicalDeviceShaderTerminateInvocationFeatures( *reinterpret_cast<PhysicalDeviceShaderTerminateInvocationFeatures const *>( &rhs ) )
  69415. {
  69416. }
  69417. PhysicalDeviceShaderTerminateInvocationFeatures & operator=( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69418. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69419. PhysicalDeviceShaderTerminateInvocationFeatures & operator=( VkPhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  69420. {
  69421. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures const *>( &rhs );
  69422. return *this;
  69423. }
  69424. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69425. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTerminateInvocationFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69426. {
  69427. pNext = pNext_;
  69428. return *this;
  69429. }
  69430. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTerminateInvocationFeatures &
  69431. setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
  69432. {
  69433. shaderTerminateInvocation = shaderTerminateInvocation_;
  69434. return *this;
  69435. }
  69436. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69437. operator VkPhysicalDeviceShaderTerminateInvocationFeatures const &() const VULKAN_HPP_NOEXCEPT
  69438. {
  69439. return *reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures *>( this );
  69440. }
  69441. operator VkPhysicalDeviceShaderTerminateInvocationFeatures &() VULKAN_HPP_NOEXCEPT
  69442. {
  69443. return *reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeatures *>( this );
  69444. }
  69445. #if defined( VULKAN_HPP_USE_REFLECT )
  69446. # if 14 <= VULKAN_HPP_CPP_VERSION
  69447. auto
  69448. # else
  69449. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  69450. # endif
  69451. reflect() const VULKAN_HPP_NOEXCEPT
  69452. {
  69453. return std::tie( sType, pNext, shaderTerminateInvocation );
  69454. }
  69455. #endif
  69456. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69457. auto operator<=>( PhysicalDeviceShaderTerminateInvocationFeatures const & ) const = default;
  69458. #else
  69459. bool operator==( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  69460. {
  69461. # if defined( VULKAN_HPP_USE_REFLECT )
  69462. return this->reflect() == rhs.reflect();
  69463. # else
  69464. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderTerminateInvocation == rhs.shaderTerminateInvocation );
  69465. # endif
  69466. }
  69467. bool operator!=( PhysicalDeviceShaderTerminateInvocationFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  69468. {
  69469. return !operator==( rhs );
  69470. }
  69471. #endif
  69472. public:
  69473. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeatures;
  69474. void * pNext = {};
  69475. VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {};
  69476. };
  69477. template <>
  69478. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTerminateInvocationFeatures>
  69479. {
  69480. using Type = PhysicalDeviceShaderTerminateInvocationFeatures;
  69481. };
  69482. using PhysicalDeviceShaderTerminateInvocationFeaturesKHR = PhysicalDeviceShaderTerminateInvocationFeatures;
  69483. struct PhysicalDeviceShaderTileImageFeaturesEXT
  69484. {
  69485. using NativeType = VkPhysicalDeviceShaderTileImageFeaturesEXT;
  69486. static const bool allowDuplicate = false;
  69487. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTileImageFeaturesEXT;
  69488. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69489. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImageFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageColorReadAccess_ = {},
  69490. VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageDepthReadAccess_ = {},
  69491. VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageStencilReadAccess_ = {},
  69492. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69493. : pNext( pNext_ )
  69494. , shaderTileImageColorReadAccess( shaderTileImageColorReadAccess_ )
  69495. , shaderTileImageDepthReadAccess( shaderTileImageDepthReadAccess_ )
  69496. , shaderTileImageStencilReadAccess( shaderTileImageStencilReadAccess_ )
  69497. {
  69498. }
  69499. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImageFeaturesEXT( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69500. PhysicalDeviceShaderTileImageFeaturesEXT( VkPhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69501. : PhysicalDeviceShaderTileImageFeaturesEXT( *reinterpret_cast<PhysicalDeviceShaderTileImageFeaturesEXT const *>( &rhs ) )
  69502. {
  69503. }
  69504. PhysicalDeviceShaderTileImageFeaturesEXT & operator=( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69505. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69506. PhysicalDeviceShaderTileImageFeaturesEXT & operator=( VkPhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69507. {
  69508. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT const *>( &rhs );
  69509. return *this;
  69510. }
  69511. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69512. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69513. {
  69514. pNext = pNext_;
  69515. return *this;
  69516. }
  69517. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT &
  69518. setShaderTileImageColorReadAccess( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageColorReadAccess_ ) VULKAN_HPP_NOEXCEPT
  69519. {
  69520. shaderTileImageColorReadAccess = shaderTileImageColorReadAccess_;
  69521. return *this;
  69522. }
  69523. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT &
  69524. setShaderTileImageDepthReadAccess( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageDepthReadAccess_ ) VULKAN_HPP_NOEXCEPT
  69525. {
  69526. shaderTileImageDepthReadAccess = shaderTileImageDepthReadAccess_;
  69527. return *this;
  69528. }
  69529. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTileImageFeaturesEXT &
  69530. setShaderTileImageStencilReadAccess( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageStencilReadAccess_ ) VULKAN_HPP_NOEXCEPT
  69531. {
  69532. shaderTileImageStencilReadAccess = shaderTileImageStencilReadAccess_;
  69533. return *this;
  69534. }
  69535. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69536. operator VkPhysicalDeviceShaderTileImageFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  69537. {
  69538. return *reinterpret_cast<const VkPhysicalDeviceShaderTileImageFeaturesEXT *>( this );
  69539. }
  69540. operator VkPhysicalDeviceShaderTileImageFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  69541. {
  69542. return *reinterpret_cast<VkPhysicalDeviceShaderTileImageFeaturesEXT *>( this );
  69543. }
  69544. #if defined( VULKAN_HPP_USE_REFLECT )
  69545. # if 14 <= VULKAN_HPP_CPP_VERSION
  69546. auto
  69547. # else
  69548. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  69549. void * const &,
  69550. VULKAN_HPP_NAMESPACE::Bool32 const &,
  69551. VULKAN_HPP_NAMESPACE::Bool32 const &,
  69552. VULKAN_HPP_NAMESPACE::Bool32 const &>
  69553. # endif
  69554. reflect() const VULKAN_HPP_NOEXCEPT
  69555. {
  69556. return std::tie( sType, pNext, shaderTileImageColorReadAccess, shaderTileImageDepthReadAccess, shaderTileImageStencilReadAccess );
  69557. }
  69558. #endif
  69559. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69560. auto operator<=>( PhysicalDeviceShaderTileImageFeaturesEXT const & ) const = default;
  69561. #else
  69562. bool operator==( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69563. {
  69564. # if defined( VULKAN_HPP_USE_REFLECT )
  69565. return this->reflect() == rhs.reflect();
  69566. # else
  69567. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderTileImageColorReadAccess == rhs.shaderTileImageColorReadAccess ) &&
  69568. ( shaderTileImageDepthReadAccess == rhs.shaderTileImageDepthReadAccess ) &&
  69569. ( shaderTileImageStencilReadAccess == rhs.shaderTileImageStencilReadAccess );
  69570. # endif
  69571. }
  69572. bool operator!=( PhysicalDeviceShaderTileImageFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69573. {
  69574. return !operator==( rhs );
  69575. }
  69576. #endif
  69577. public:
  69578. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTileImageFeaturesEXT;
  69579. void * pNext = {};
  69580. VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageColorReadAccess = {};
  69581. VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageDepthReadAccess = {};
  69582. VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageStencilReadAccess = {};
  69583. };
  69584. template <>
  69585. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTileImageFeaturesEXT>
  69586. {
  69587. using Type = PhysicalDeviceShaderTileImageFeaturesEXT;
  69588. };
  69589. struct PhysicalDeviceShaderTileImagePropertiesEXT
  69590. {
  69591. using NativeType = VkPhysicalDeviceShaderTileImagePropertiesEXT;
  69592. static const bool allowDuplicate = false;
  69593. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTileImagePropertiesEXT;
  69594. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69595. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImagePropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageCoherentReadAccelerated_ = {},
  69596. VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadSampleFromPixelRateInvocation_ = {},
  69597. VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadFromHelperInvocation_ = {},
  69598. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69599. : pNext( pNext_ )
  69600. , shaderTileImageCoherentReadAccelerated( shaderTileImageCoherentReadAccelerated_ )
  69601. , shaderTileImageReadSampleFromPixelRateInvocation( shaderTileImageReadSampleFromPixelRateInvocation_ )
  69602. , shaderTileImageReadFromHelperInvocation( shaderTileImageReadFromHelperInvocation_ )
  69603. {
  69604. }
  69605. VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTileImagePropertiesEXT( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69606. PhysicalDeviceShaderTileImagePropertiesEXT( VkPhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69607. : PhysicalDeviceShaderTileImagePropertiesEXT( *reinterpret_cast<PhysicalDeviceShaderTileImagePropertiesEXT const *>( &rhs ) )
  69608. {
  69609. }
  69610. PhysicalDeviceShaderTileImagePropertiesEXT & operator=( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69611. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69612. PhysicalDeviceShaderTileImagePropertiesEXT & operator=( VkPhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  69613. {
  69614. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT const *>( &rhs );
  69615. return *this;
  69616. }
  69617. operator VkPhysicalDeviceShaderTileImagePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  69618. {
  69619. return *reinterpret_cast<const VkPhysicalDeviceShaderTileImagePropertiesEXT *>( this );
  69620. }
  69621. operator VkPhysicalDeviceShaderTileImagePropertiesEXT &() VULKAN_HPP_NOEXCEPT
  69622. {
  69623. return *reinterpret_cast<VkPhysicalDeviceShaderTileImagePropertiesEXT *>( this );
  69624. }
  69625. #if defined( VULKAN_HPP_USE_REFLECT )
  69626. # if 14 <= VULKAN_HPP_CPP_VERSION
  69627. auto
  69628. # else
  69629. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  69630. void * const &,
  69631. VULKAN_HPP_NAMESPACE::Bool32 const &,
  69632. VULKAN_HPP_NAMESPACE::Bool32 const &,
  69633. VULKAN_HPP_NAMESPACE::Bool32 const &>
  69634. # endif
  69635. reflect() const VULKAN_HPP_NOEXCEPT
  69636. {
  69637. return std::tie(
  69638. sType, pNext, shaderTileImageCoherentReadAccelerated, shaderTileImageReadSampleFromPixelRateInvocation, shaderTileImageReadFromHelperInvocation );
  69639. }
  69640. #endif
  69641. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69642. auto operator<=>( PhysicalDeviceShaderTileImagePropertiesEXT const & ) const = default;
  69643. #else
  69644. bool operator==( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69645. {
  69646. # if defined( VULKAN_HPP_USE_REFLECT )
  69647. return this->reflect() == rhs.reflect();
  69648. # else
  69649. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderTileImageCoherentReadAccelerated == rhs.shaderTileImageCoherentReadAccelerated ) &&
  69650. ( shaderTileImageReadSampleFromPixelRateInvocation == rhs.shaderTileImageReadSampleFromPixelRateInvocation ) &&
  69651. ( shaderTileImageReadFromHelperInvocation == rhs.shaderTileImageReadFromHelperInvocation );
  69652. # endif
  69653. }
  69654. bool operator!=( PhysicalDeviceShaderTileImagePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  69655. {
  69656. return !operator==( rhs );
  69657. }
  69658. #endif
  69659. public:
  69660. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTileImagePropertiesEXT;
  69661. void * pNext = {};
  69662. VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageCoherentReadAccelerated = {};
  69663. VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadSampleFromPixelRateInvocation = {};
  69664. VULKAN_HPP_NAMESPACE::Bool32 shaderTileImageReadFromHelperInvocation = {};
  69665. };
  69666. template <>
  69667. struct CppType<StructureType, StructureType::ePhysicalDeviceShaderTileImagePropertiesEXT>
  69668. {
  69669. using Type = PhysicalDeviceShaderTileImagePropertiesEXT;
  69670. };
  69671. struct PhysicalDeviceShadingRateImageFeaturesNV
  69672. {
  69673. using NativeType = VkPhysicalDeviceShadingRateImageFeaturesNV;
  69674. static const bool allowDuplicate = false;
  69675. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
  69676. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69677. VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {},
  69678. VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {},
  69679. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69680. : pNext( pNext_ )
  69681. , shadingRateImage( shadingRateImage_ )
  69682. , shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ )
  69683. {
  69684. }
  69685. VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69686. PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  69687. : PhysicalDeviceShadingRateImageFeaturesNV( *reinterpret_cast<PhysicalDeviceShadingRateImageFeaturesNV const *>( &rhs ) )
  69688. {
  69689. }
  69690. PhysicalDeviceShadingRateImageFeaturesNV & operator=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69691. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69692. PhysicalDeviceShadingRateImageFeaturesNV & operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  69693. {
  69694. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV const *>( &rhs );
  69695. return *this;
  69696. }
  69697. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69698. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69699. {
  69700. pNext = pNext_;
  69701. return *this;
  69702. }
  69703. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT
  69704. {
  69705. shadingRateImage = shadingRateImage_;
  69706. return *this;
  69707. }
  69708. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV &
  69709. setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT
  69710. {
  69711. shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
  69712. return *this;
  69713. }
  69714. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69715. operator VkPhysicalDeviceShadingRateImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT
  69716. {
  69717. return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV *>( this );
  69718. }
  69719. operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT
  69720. {
  69721. return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV *>( this );
  69722. }
  69723. #if defined( VULKAN_HPP_USE_REFLECT )
  69724. # if 14 <= VULKAN_HPP_CPP_VERSION
  69725. auto
  69726. # else
  69727. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  69728. # endif
  69729. reflect() const VULKAN_HPP_NOEXCEPT
  69730. {
  69731. return std::tie( sType, pNext, shadingRateImage, shadingRateCoarseSampleOrder );
  69732. }
  69733. #endif
  69734. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69735. auto operator<=>( PhysicalDeviceShadingRateImageFeaturesNV const & ) const = default;
  69736. #else
  69737. bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  69738. {
  69739. # if defined( VULKAN_HPP_USE_REFLECT )
  69740. return this->reflect() == rhs.reflect();
  69741. # else
  69742. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shadingRateImage == rhs.shadingRateImage ) &&
  69743. ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder );
  69744. # endif
  69745. }
  69746. bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  69747. {
  69748. return !operator==( rhs );
  69749. }
  69750. #endif
  69751. public:
  69752. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
  69753. void * pNext = {};
  69754. VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {};
  69755. VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {};
  69756. };
  69757. template <>
  69758. struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImageFeaturesNV>
  69759. {
  69760. using Type = PhysicalDeviceShadingRateImageFeaturesNV;
  69761. };
  69762. struct PhysicalDeviceShadingRateImagePropertiesNV
  69763. {
  69764. using NativeType = VkPhysicalDeviceShadingRateImagePropertiesNV;
  69765. static const bool allowDuplicate = false;
  69766. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
  69767. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69768. VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {},
  69769. uint32_t shadingRatePaletteSize_ = {},
  69770. uint32_t shadingRateMaxCoarseSamples_ = {},
  69771. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69772. : pNext( pNext_ )
  69773. , shadingRateTexelSize( shadingRateTexelSize_ )
  69774. , shadingRatePaletteSize( shadingRatePaletteSize_ )
  69775. , shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ )
  69776. {
  69777. }
  69778. VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69779. PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  69780. : PhysicalDeviceShadingRateImagePropertiesNV( *reinterpret_cast<PhysicalDeviceShadingRateImagePropertiesNV const *>( &rhs ) )
  69781. {
  69782. }
  69783. PhysicalDeviceShadingRateImagePropertiesNV & operator=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69784. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69785. PhysicalDeviceShadingRateImagePropertiesNV & operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  69786. {
  69787. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV const *>( &rhs );
  69788. return *this;
  69789. }
  69790. operator VkPhysicalDeviceShadingRateImagePropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  69791. {
  69792. return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV *>( this );
  69793. }
  69794. operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT
  69795. {
  69796. return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV *>( this );
  69797. }
  69798. #if defined( VULKAN_HPP_USE_REFLECT )
  69799. # if 14 <= VULKAN_HPP_CPP_VERSION
  69800. auto
  69801. # else
  69802. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &, uint32_t const &>
  69803. # endif
  69804. reflect() const VULKAN_HPP_NOEXCEPT
  69805. {
  69806. return std::tie( sType, pNext, shadingRateTexelSize, shadingRatePaletteSize, shadingRateMaxCoarseSamples );
  69807. }
  69808. #endif
  69809. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69810. auto operator<=>( PhysicalDeviceShadingRateImagePropertiesNV const & ) const = default;
  69811. #else
  69812. bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  69813. {
  69814. # if defined( VULKAN_HPP_USE_REFLECT )
  69815. return this->reflect() == rhs.reflect();
  69816. # else
  69817. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shadingRateTexelSize == rhs.shadingRateTexelSize ) &&
  69818. ( shadingRatePaletteSize == rhs.shadingRatePaletteSize ) && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples );
  69819. # endif
  69820. }
  69821. bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  69822. {
  69823. return !operator==( rhs );
  69824. }
  69825. #endif
  69826. public:
  69827. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
  69828. void * pNext = {};
  69829. VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {};
  69830. uint32_t shadingRatePaletteSize = {};
  69831. uint32_t shadingRateMaxCoarseSamples = {};
  69832. };
  69833. template <>
  69834. struct CppType<StructureType, StructureType::ePhysicalDeviceShadingRateImagePropertiesNV>
  69835. {
  69836. using Type = PhysicalDeviceShadingRateImagePropertiesNV;
  69837. };
  69838. struct PhysicalDeviceSparseImageFormatInfo2
  69839. {
  69840. using NativeType = VkPhysicalDeviceSparseImageFormatInfo2;
  69841. static const bool allowDuplicate = false;
  69842. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
  69843. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69844. VULKAN_HPP_CONSTEXPR
  69845. PhysicalDeviceSparseImageFormatInfo2( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  69846. VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D,
  69847. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1,
  69848. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {},
  69849. VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
  69850. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69851. : pNext( pNext_ )
  69852. , format( format_ )
  69853. , type( type_ )
  69854. , samples( samples_ )
  69855. , usage( usage_ )
  69856. , tiling( tiling_ )
  69857. {
  69858. }
  69859. VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69860. PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  69861. : PhysicalDeviceSparseImageFormatInfo2( *reinterpret_cast<PhysicalDeviceSparseImageFormatInfo2 const *>( &rhs ) )
  69862. {
  69863. }
  69864. PhysicalDeviceSparseImageFormatInfo2 & operator=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69865. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69866. PhysicalDeviceSparseImageFormatInfo2 & operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  69867. {
  69868. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 const *>( &rhs );
  69869. return *this;
  69870. }
  69871. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  69872. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  69873. {
  69874. pNext = pNext_;
  69875. return *this;
  69876. }
  69877. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  69878. {
  69879. format = format_;
  69880. return *this;
  69881. }
  69882. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT
  69883. {
  69884. type = type_;
  69885. return *this;
  69886. }
  69887. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT
  69888. {
  69889. samples = samples_;
  69890. return *this;
  69891. }
  69892. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT
  69893. {
  69894. usage = usage_;
  69895. return *this;
  69896. }
  69897. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT
  69898. {
  69899. tiling = tiling_;
  69900. return *this;
  69901. }
  69902. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  69903. operator VkPhysicalDeviceSparseImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT
  69904. {
  69905. return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( this );
  69906. }
  69907. operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT
  69908. {
  69909. return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2 *>( this );
  69910. }
  69911. #if defined( VULKAN_HPP_USE_REFLECT )
  69912. # if 14 <= VULKAN_HPP_CPP_VERSION
  69913. auto
  69914. # else
  69915. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  69916. const void * const &,
  69917. VULKAN_HPP_NAMESPACE::Format const &,
  69918. VULKAN_HPP_NAMESPACE::ImageType const &,
  69919. VULKAN_HPP_NAMESPACE::SampleCountFlagBits const &,
  69920. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  69921. VULKAN_HPP_NAMESPACE::ImageTiling const &>
  69922. # endif
  69923. reflect() const VULKAN_HPP_NOEXCEPT
  69924. {
  69925. return std::tie( sType, pNext, format, type, samples, usage, tiling );
  69926. }
  69927. #endif
  69928. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  69929. auto operator<=>( PhysicalDeviceSparseImageFormatInfo2 const & ) const = default;
  69930. #else
  69931. bool operator==( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  69932. {
  69933. # if defined( VULKAN_HPP_USE_REFLECT )
  69934. return this->reflect() == rhs.reflect();
  69935. # else
  69936. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( type == rhs.type ) && ( samples == rhs.samples ) &&
  69937. ( usage == rhs.usage ) && ( tiling == rhs.tiling );
  69938. # endif
  69939. }
  69940. bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  69941. {
  69942. return !operator==( rhs );
  69943. }
  69944. #endif
  69945. public:
  69946. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
  69947. const void * pNext = {};
  69948. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  69949. VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D;
  69950. VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1;
  69951. VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {};
  69952. VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
  69953. };
  69954. template <>
  69955. struct CppType<StructureType, StructureType::ePhysicalDeviceSparseImageFormatInfo2>
  69956. {
  69957. using Type = PhysicalDeviceSparseImageFormatInfo2;
  69958. };
  69959. using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
  69960. struct PhysicalDeviceSubgroupProperties
  69961. {
  69962. using NativeType = VkPhysicalDeviceSubgroupProperties;
  69963. static const bool allowDuplicate = false;
  69964. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupProperties;
  69965. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  69966. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( uint32_t subgroupSize_ = {},
  69967. VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages_ = {},
  69968. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations_ = {},
  69969. VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages_ = {},
  69970. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  69971. : pNext( pNext_ )
  69972. , subgroupSize( subgroupSize_ )
  69973. , supportedStages( supportedStages_ )
  69974. , supportedOperations( supportedOperations_ )
  69975. , quadOperationsInAllStages( quadOperationsInAllStages_ )
  69976. {
  69977. }
  69978. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69979. PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  69980. : PhysicalDeviceSubgroupProperties( *reinterpret_cast<PhysicalDeviceSubgroupProperties const *>( &rhs ) )
  69981. {
  69982. }
  69983. PhysicalDeviceSubgroupProperties & operator=( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  69984. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  69985. PhysicalDeviceSubgroupProperties & operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  69986. {
  69987. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties const *>( &rhs );
  69988. return *this;
  69989. }
  69990. operator VkPhysicalDeviceSubgroupProperties const &() const VULKAN_HPP_NOEXCEPT
  69991. {
  69992. return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties *>( this );
  69993. }
  69994. operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT
  69995. {
  69996. return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties *>( this );
  69997. }
  69998. #if defined( VULKAN_HPP_USE_REFLECT )
  69999. # if 14 <= VULKAN_HPP_CPP_VERSION
  70000. auto
  70001. # else
  70002. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  70003. void * const &,
  70004. uint32_t const &,
  70005. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  70006. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags const &,
  70007. VULKAN_HPP_NAMESPACE::Bool32 const &>
  70008. # endif
  70009. reflect() const VULKAN_HPP_NOEXCEPT
  70010. {
  70011. return std::tie( sType, pNext, subgroupSize, supportedStages, supportedOperations, quadOperationsInAllStages );
  70012. }
  70013. #endif
  70014. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70015. auto operator<=>( PhysicalDeviceSubgroupProperties const & ) const = default;
  70016. #else
  70017. bool operator==( PhysicalDeviceSubgroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  70018. {
  70019. # if defined( VULKAN_HPP_USE_REFLECT )
  70020. return this->reflect() == rhs.reflect();
  70021. # else
  70022. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subgroupSize == rhs.subgroupSize ) && ( supportedStages == rhs.supportedStages ) &&
  70023. ( supportedOperations == rhs.supportedOperations ) && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages );
  70024. # endif
  70025. }
  70026. bool operator!=( PhysicalDeviceSubgroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  70027. {
  70028. return !operator==( rhs );
  70029. }
  70030. #endif
  70031. public:
  70032. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties;
  70033. void * pNext = {};
  70034. uint32_t subgroupSize = {};
  70035. VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {};
  70036. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {};
  70037. VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {};
  70038. };
  70039. template <>
  70040. struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupProperties>
  70041. {
  70042. using Type = PhysicalDeviceSubgroupProperties;
  70043. };
  70044. struct PhysicalDeviceSubgroupSizeControlFeatures
  70045. {
  70046. using NativeType = VkPhysicalDeviceSubgroupSizeControlFeatures;
  70047. static const bool allowDuplicate = false;
  70048. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlFeatures;
  70049. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70050. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeatures( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {},
  70051. VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {},
  70052. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70053. : pNext( pNext_ )
  70054. , subgroupSizeControl( subgroupSizeControl_ )
  70055. , computeFullSubgroups( computeFullSubgroups_ )
  70056. {
  70057. }
  70058. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeatures( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70059. PhysicalDeviceSubgroupSizeControlFeatures( VkPhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  70060. : PhysicalDeviceSubgroupSizeControlFeatures( *reinterpret_cast<PhysicalDeviceSubgroupSizeControlFeatures const *>( &rhs ) )
  70061. {
  70062. }
  70063. PhysicalDeviceSubgroupSizeControlFeatures & operator=( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70064. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70065. PhysicalDeviceSubgroupSizeControlFeatures & operator=( VkPhysicalDeviceSubgroupSizeControlFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  70066. {
  70067. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures const *>( &rhs );
  70068. return *this;
  70069. }
  70070. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70071. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70072. {
  70073. pNext = pNext_;
  70074. return *this;
  70075. }
  70076. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeatures &
  70077. setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
  70078. {
  70079. subgroupSizeControl = subgroupSizeControl_;
  70080. return *this;
  70081. }
  70082. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeatures &
  70083. setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
  70084. {
  70085. computeFullSubgroups = computeFullSubgroups_;
  70086. return *this;
  70087. }
  70088. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70089. operator VkPhysicalDeviceSubgroupSizeControlFeatures const &() const VULKAN_HPP_NOEXCEPT
  70090. {
  70091. return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures *>( this );
  70092. }
  70093. operator VkPhysicalDeviceSubgroupSizeControlFeatures &() VULKAN_HPP_NOEXCEPT
  70094. {
  70095. return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeatures *>( this );
  70096. }
  70097. #if defined( VULKAN_HPP_USE_REFLECT )
  70098. # if 14 <= VULKAN_HPP_CPP_VERSION
  70099. auto
  70100. # else
  70101. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  70102. # endif
  70103. reflect() const VULKAN_HPP_NOEXCEPT
  70104. {
  70105. return std::tie( sType, pNext, subgroupSizeControl, computeFullSubgroups );
  70106. }
  70107. #endif
  70108. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70109. auto operator<=>( PhysicalDeviceSubgroupSizeControlFeatures const & ) const = default;
  70110. #else
  70111. bool operator==( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  70112. {
  70113. # if defined( VULKAN_HPP_USE_REFLECT )
  70114. return this->reflect() == rhs.reflect();
  70115. # else
  70116. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subgroupSizeControl == rhs.subgroupSizeControl ) &&
  70117. ( computeFullSubgroups == rhs.computeFullSubgroups );
  70118. # endif
  70119. }
  70120. bool operator!=( PhysicalDeviceSubgroupSizeControlFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  70121. {
  70122. return !operator==( rhs );
  70123. }
  70124. #endif
  70125. public:
  70126. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeatures;
  70127. void * pNext = {};
  70128. VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {};
  70129. VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {};
  70130. };
  70131. template <>
  70132. struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlFeatures>
  70133. {
  70134. using Type = PhysicalDeviceSubgroupSizeControlFeatures;
  70135. };
  70136. using PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeatures;
  70137. struct PhysicalDeviceSubgroupSizeControlProperties
  70138. {
  70139. using NativeType = VkPhysicalDeviceSubgroupSizeControlProperties;
  70140. static const bool allowDuplicate = false;
  70141. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlProperties;
  70142. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70143. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlProperties( uint32_t minSubgroupSize_ = {},
  70144. uint32_t maxSubgroupSize_ = {},
  70145. uint32_t maxComputeWorkgroupSubgroups_ = {},
  70146. VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {},
  70147. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70148. : pNext( pNext_ )
  70149. , minSubgroupSize( minSubgroupSize_ )
  70150. , maxSubgroupSize( maxSubgroupSize_ )
  70151. , maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ )
  70152. , requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
  70153. {
  70154. }
  70155. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlProperties( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70156. PhysicalDeviceSubgroupSizeControlProperties( VkPhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  70157. : PhysicalDeviceSubgroupSizeControlProperties( *reinterpret_cast<PhysicalDeviceSubgroupSizeControlProperties const *>( &rhs ) )
  70158. {
  70159. }
  70160. PhysicalDeviceSubgroupSizeControlProperties & operator=( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70161. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70162. PhysicalDeviceSubgroupSizeControlProperties & operator=( VkPhysicalDeviceSubgroupSizeControlProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  70163. {
  70164. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties const *>( &rhs );
  70165. return *this;
  70166. }
  70167. operator VkPhysicalDeviceSubgroupSizeControlProperties const &() const VULKAN_HPP_NOEXCEPT
  70168. {
  70169. return *reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlProperties *>( this );
  70170. }
  70171. operator VkPhysicalDeviceSubgroupSizeControlProperties &() VULKAN_HPP_NOEXCEPT
  70172. {
  70173. return *reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlProperties *>( this );
  70174. }
  70175. #if defined( VULKAN_HPP_USE_REFLECT )
  70176. # if 14 <= VULKAN_HPP_CPP_VERSION
  70177. auto
  70178. # else
  70179. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  70180. void * const &,
  70181. uint32_t const &,
  70182. uint32_t const &,
  70183. uint32_t const &,
  70184. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &>
  70185. # endif
  70186. reflect() const VULKAN_HPP_NOEXCEPT
  70187. {
  70188. return std::tie( sType, pNext, minSubgroupSize, maxSubgroupSize, maxComputeWorkgroupSubgroups, requiredSubgroupSizeStages );
  70189. }
  70190. #endif
  70191. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70192. auto operator<=>( PhysicalDeviceSubgroupSizeControlProperties const & ) const = default;
  70193. #else
  70194. bool operator==( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  70195. {
  70196. # if defined( VULKAN_HPP_USE_REFLECT )
  70197. return this->reflect() == rhs.reflect();
  70198. # else
  70199. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minSubgroupSize == rhs.minSubgroupSize ) && ( maxSubgroupSize == rhs.maxSubgroupSize ) &&
  70200. ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups ) && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages );
  70201. # endif
  70202. }
  70203. bool operator!=( PhysicalDeviceSubgroupSizeControlProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  70204. {
  70205. return !operator==( rhs );
  70206. }
  70207. #endif
  70208. public:
  70209. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlProperties;
  70210. void * pNext = {};
  70211. uint32_t minSubgroupSize = {};
  70212. uint32_t maxSubgroupSize = {};
  70213. uint32_t maxComputeWorkgroupSubgroups = {};
  70214. VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {};
  70215. };
  70216. template <>
  70217. struct CppType<StructureType, StructureType::ePhysicalDeviceSubgroupSizeControlProperties>
  70218. {
  70219. using Type = PhysicalDeviceSubgroupSizeControlProperties;
  70220. };
  70221. using PhysicalDeviceSubgroupSizeControlPropertiesEXT = PhysicalDeviceSubgroupSizeControlProperties;
  70222. struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
  70223. {
  70224. using NativeType = VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
  70225. static const bool allowDuplicate = false;
  70226. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
  70227. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70228. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback_ = {},
  70229. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70230. : pNext( pNext_ )
  70231. , subpassMergeFeedback( subpassMergeFeedback_ )
  70232. {
  70233. }
  70234. VULKAN_HPP_CONSTEXPR
  70235. PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70236. PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  70237. : PhysicalDeviceSubpassMergeFeedbackFeaturesEXT( *reinterpret_cast<PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const *>( &rhs ) )
  70238. {
  70239. }
  70240. PhysicalDeviceSubpassMergeFeedbackFeaturesEXT & operator=( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70241. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70242. PhysicalDeviceSubpassMergeFeedbackFeaturesEXT & operator=( VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  70243. {
  70244. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const *>( &rhs );
  70245. return *this;
  70246. }
  70247. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70248. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70249. {
  70250. pNext = pNext_;
  70251. return *this;
  70252. }
  70253. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT &
  70254. setSubpassMergeFeedback( VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback_ ) VULKAN_HPP_NOEXCEPT
  70255. {
  70256. subpassMergeFeedback = subpassMergeFeedback_;
  70257. return *this;
  70258. }
  70259. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70260. operator VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  70261. {
  70262. return *reinterpret_cast<const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT *>( this );
  70263. }
  70264. operator VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  70265. {
  70266. return *reinterpret_cast<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT *>( this );
  70267. }
  70268. #if defined( VULKAN_HPP_USE_REFLECT )
  70269. # if 14 <= VULKAN_HPP_CPP_VERSION
  70270. auto
  70271. # else
  70272. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  70273. # endif
  70274. reflect() const VULKAN_HPP_NOEXCEPT
  70275. {
  70276. return std::tie( sType, pNext, subpassMergeFeedback );
  70277. }
  70278. #endif
  70279. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70280. auto operator<=>( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & ) const = default;
  70281. #else
  70282. bool operator==( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70283. {
  70284. # if defined( VULKAN_HPP_USE_REFLECT )
  70285. return this->reflect() == rhs.reflect();
  70286. # else
  70287. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subpassMergeFeedback == rhs.subpassMergeFeedback );
  70288. # endif
  70289. }
  70290. bool operator!=( PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70291. {
  70292. return !operator==( rhs );
  70293. }
  70294. #endif
  70295. public:
  70296. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
  70297. void * pNext = {};
  70298. VULKAN_HPP_NAMESPACE::Bool32 subpassMergeFeedback = {};
  70299. };
  70300. template <>
  70301. struct CppType<StructureType, StructureType::ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT>
  70302. {
  70303. using Type = PhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
  70304. };
  70305. struct PhysicalDeviceSubpassShadingFeaturesHUAWEI
  70306. {
  70307. using NativeType = VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
  70308. static const bool allowDuplicate = false;
  70309. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI;
  70310. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70311. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingFeaturesHUAWEI( VULKAN_HPP_NAMESPACE::Bool32 subpassShading_ = {},
  70312. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70313. : pNext( pNext_ )
  70314. , subpassShading( subpassShading_ )
  70315. {
  70316. }
  70317. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingFeaturesHUAWEI( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70318. PhysicalDeviceSubpassShadingFeaturesHUAWEI( VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  70319. : PhysicalDeviceSubpassShadingFeaturesHUAWEI( *reinterpret_cast<PhysicalDeviceSubpassShadingFeaturesHUAWEI const *>( &rhs ) )
  70320. {
  70321. }
  70322. PhysicalDeviceSubpassShadingFeaturesHUAWEI & operator=( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70323. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70324. PhysicalDeviceSubpassShadingFeaturesHUAWEI & operator=( VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  70325. {
  70326. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI const *>( &rhs );
  70327. return *this;
  70328. }
  70329. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70330. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassShadingFeaturesHUAWEI & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70331. {
  70332. pNext = pNext_;
  70333. return *this;
  70334. }
  70335. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubpassShadingFeaturesHUAWEI & setSubpassShading( VULKAN_HPP_NAMESPACE::Bool32 subpassShading_ ) VULKAN_HPP_NOEXCEPT
  70336. {
  70337. subpassShading = subpassShading_;
  70338. return *this;
  70339. }
  70340. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70341. operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
  70342. {
  70343. return *reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI *>( this );
  70344. }
  70345. operator VkPhysicalDeviceSubpassShadingFeaturesHUAWEI &() VULKAN_HPP_NOEXCEPT
  70346. {
  70347. return *reinterpret_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI *>( this );
  70348. }
  70349. #if defined( VULKAN_HPP_USE_REFLECT )
  70350. # if 14 <= VULKAN_HPP_CPP_VERSION
  70351. auto
  70352. # else
  70353. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  70354. # endif
  70355. reflect() const VULKAN_HPP_NOEXCEPT
  70356. {
  70357. return std::tie( sType, pNext, subpassShading );
  70358. }
  70359. #endif
  70360. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70361. auto operator<=>( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & ) const = default;
  70362. #else
  70363. bool operator==( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  70364. {
  70365. # if defined( VULKAN_HPP_USE_REFLECT )
  70366. return this->reflect() == rhs.reflect();
  70367. # else
  70368. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subpassShading == rhs.subpassShading );
  70369. # endif
  70370. }
  70371. bool operator!=( PhysicalDeviceSubpassShadingFeaturesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  70372. {
  70373. return !operator==( rhs );
  70374. }
  70375. #endif
  70376. public:
  70377. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI;
  70378. void * pNext = {};
  70379. VULKAN_HPP_NAMESPACE::Bool32 subpassShading = {};
  70380. };
  70381. template <>
  70382. struct CppType<StructureType, StructureType::ePhysicalDeviceSubpassShadingFeaturesHUAWEI>
  70383. {
  70384. using Type = PhysicalDeviceSubpassShadingFeaturesHUAWEI;
  70385. };
  70386. struct PhysicalDeviceSubpassShadingPropertiesHUAWEI
  70387. {
  70388. using NativeType = VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
  70389. static const bool allowDuplicate = false;
  70390. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI;
  70391. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70392. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingPropertiesHUAWEI( uint32_t maxSubpassShadingWorkgroupSizeAspectRatio_ = {},
  70393. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70394. : pNext( pNext_ )
  70395. , maxSubpassShadingWorkgroupSizeAspectRatio( maxSubpassShadingWorkgroupSizeAspectRatio_ )
  70396. {
  70397. }
  70398. VULKAN_HPP_CONSTEXPR PhysicalDeviceSubpassShadingPropertiesHUAWEI( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70399. PhysicalDeviceSubpassShadingPropertiesHUAWEI( VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  70400. : PhysicalDeviceSubpassShadingPropertiesHUAWEI( *reinterpret_cast<PhysicalDeviceSubpassShadingPropertiesHUAWEI const *>( &rhs ) )
  70401. {
  70402. }
  70403. PhysicalDeviceSubpassShadingPropertiesHUAWEI & operator=( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70404. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70405. PhysicalDeviceSubpassShadingPropertiesHUAWEI & operator=( VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  70406. {
  70407. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI const *>( &rhs );
  70408. return *this;
  70409. }
  70410. operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI const &() const VULKAN_HPP_NOEXCEPT
  70411. {
  70412. return *reinterpret_cast<const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI *>( this );
  70413. }
  70414. operator VkPhysicalDeviceSubpassShadingPropertiesHUAWEI &() VULKAN_HPP_NOEXCEPT
  70415. {
  70416. return *reinterpret_cast<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI *>( this );
  70417. }
  70418. #if defined( VULKAN_HPP_USE_REFLECT )
  70419. # if 14 <= VULKAN_HPP_CPP_VERSION
  70420. auto
  70421. # else
  70422. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  70423. # endif
  70424. reflect() const VULKAN_HPP_NOEXCEPT
  70425. {
  70426. return std::tie( sType, pNext, maxSubpassShadingWorkgroupSizeAspectRatio );
  70427. }
  70428. #endif
  70429. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70430. auto operator<=>( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & ) const = default;
  70431. #else
  70432. bool operator==( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  70433. {
  70434. # if defined( VULKAN_HPP_USE_REFLECT )
  70435. return this->reflect() == rhs.reflect();
  70436. # else
  70437. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxSubpassShadingWorkgroupSizeAspectRatio == rhs.maxSubpassShadingWorkgroupSizeAspectRatio );
  70438. # endif
  70439. }
  70440. bool operator!=( PhysicalDeviceSubpassShadingPropertiesHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  70441. {
  70442. return !operator==( rhs );
  70443. }
  70444. #endif
  70445. public:
  70446. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI;
  70447. void * pNext = {};
  70448. uint32_t maxSubpassShadingWorkgroupSizeAspectRatio = {};
  70449. };
  70450. template <>
  70451. struct CppType<StructureType, StructureType::ePhysicalDeviceSubpassShadingPropertiesHUAWEI>
  70452. {
  70453. using Type = PhysicalDeviceSubpassShadingPropertiesHUAWEI;
  70454. };
  70455. struct PhysicalDeviceSurfaceInfo2KHR
  70456. {
  70457. using NativeType = VkPhysicalDeviceSurfaceInfo2KHR;
  70458. static const bool allowDuplicate = false;
  70459. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
  70460. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70461. VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70462. : pNext( pNext_ )
  70463. , surface( surface_ )
  70464. {
  70465. }
  70466. VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70467. PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  70468. : PhysicalDeviceSurfaceInfo2KHR( *reinterpret_cast<PhysicalDeviceSurfaceInfo2KHR const *>( &rhs ) )
  70469. {
  70470. }
  70471. PhysicalDeviceSurfaceInfo2KHR & operator=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70472. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70473. PhysicalDeviceSurfaceInfo2KHR & operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  70474. {
  70475. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR const *>( &rhs );
  70476. return *this;
  70477. }
  70478. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70479. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSurfaceInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70480. {
  70481. pNext = pNext_;
  70482. return *this;
  70483. }
  70484. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
  70485. {
  70486. surface = surface_;
  70487. return *this;
  70488. }
  70489. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70490. operator VkPhysicalDeviceSurfaceInfo2KHR const &() const VULKAN_HPP_NOEXCEPT
  70491. {
  70492. return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( this );
  70493. }
  70494. operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT
  70495. {
  70496. return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR *>( this );
  70497. }
  70498. #if defined( VULKAN_HPP_USE_REFLECT )
  70499. # if 14 <= VULKAN_HPP_CPP_VERSION
  70500. auto
  70501. # else
  70502. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SurfaceKHR const &>
  70503. # endif
  70504. reflect() const VULKAN_HPP_NOEXCEPT
  70505. {
  70506. return std::tie( sType, pNext, surface );
  70507. }
  70508. #endif
  70509. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70510. auto operator<=>( PhysicalDeviceSurfaceInfo2KHR const & ) const = default;
  70511. #else
  70512. bool operator==( PhysicalDeviceSurfaceInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  70513. {
  70514. # if defined( VULKAN_HPP_USE_REFLECT )
  70515. return this->reflect() == rhs.reflect();
  70516. # else
  70517. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surface == rhs.surface );
  70518. # endif
  70519. }
  70520. bool operator!=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  70521. {
  70522. return !operator==( rhs );
  70523. }
  70524. #endif
  70525. public:
  70526. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
  70527. const void * pNext = {};
  70528. VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
  70529. };
  70530. template <>
  70531. struct CppType<StructureType, StructureType::ePhysicalDeviceSurfaceInfo2KHR>
  70532. {
  70533. using Type = PhysicalDeviceSurfaceInfo2KHR;
  70534. };
  70535. struct PhysicalDeviceSwapchainMaintenance1FeaturesEXT
  70536. {
  70537. using NativeType = VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
  70538. static const bool allowDuplicate = false;
  70539. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSwapchainMaintenance1FeaturesEXT;
  70540. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70541. VULKAN_HPP_CONSTEXPR PhysicalDeviceSwapchainMaintenance1FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 swapchainMaintenance1_ = {},
  70542. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70543. : pNext( pNext_ )
  70544. , swapchainMaintenance1( swapchainMaintenance1_ )
  70545. {
  70546. }
  70547. VULKAN_HPP_CONSTEXPR
  70548. PhysicalDeviceSwapchainMaintenance1FeaturesEXT( PhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70549. PhysicalDeviceSwapchainMaintenance1FeaturesEXT( VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  70550. : PhysicalDeviceSwapchainMaintenance1FeaturesEXT( *reinterpret_cast<PhysicalDeviceSwapchainMaintenance1FeaturesEXT const *>( &rhs ) )
  70551. {
  70552. }
  70553. PhysicalDeviceSwapchainMaintenance1FeaturesEXT & operator=( PhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70554. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70555. PhysicalDeviceSwapchainMaintenance1FeaturesEXT & operator=( VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  70556. {
  70557. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT const *>( &rhs );
  70558. return *this;
  70559. }
  70560. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70561. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSwapchainMaintenance1FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70562. {
  70563. pNext = pNext_;
  70564. return *this;
  70565. }
  70566. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSwapchainMaintenance1FeaturesEXT &
  70567. setSwapchainMaintenance1( VULKAN_HPP_NAMESPACE::Bool32 swapchainMaintenance1_ ) VULKAN_HPP_NOEXCEPT
  70568. {
  70569. swapchainMaintenance1 = swapchainMaintenance1_;
  70570. return *this;
  70571. }
  70572. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70573. operator VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  70574. {
  70575. return *reinterpret_cast<const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT *>( this );
  70576. }
  70577. operator VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT &() VULKAN_HPP_NOEXCEPT
  70578. {
  70579. return *reinterpret_cast<VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT *>( this );
  70580. }
  70581. #if defined( VULKAN_HPP_USE_REFLECT )
  70582. # if 14 <= VULKAN_HPP_CPP_VERSION
  70583. auto
  70584. # else
  70585. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  70586. # endif
  70587. reflect() const VULKAN_HPP_NOEXCEPT
  70588. {
  70589. return std::tie( sType, pNext, swapchainMaintenance1 );
  70590. }
  70591. #endif
  70592. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70593. auto operator<=>( PhysicalDeviceSwapchainMaintenance1FeaturesEXT const & ) const = default;
  70594. #else
  70595. bool operator==( PhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70596. {
  70597. # if defined( VULKAN_HPP_USE_REFLECT )
  70598. return this->reflect() == rhs.reflect();
  70599. # else
  70600. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainMaintenance1 == rhs.swapchainMaintenance1 );
  70601. # endif
  70602. }
  70603. bool operator!=( PhysicalDeviceSwapchainMaintenance1FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70604. {
  70605. return !operator==( rhs );
  70606. }
  70607. #endif
  70608. public:
  70609. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSwapchainMaintenance1FeaturesEXT;
  70610. void * pNext = {};
  70611. VULKAN_HPP_NAMESPACE::Bool32 swapchainMaintenance1 = {};
  70612. };
  70613. template <>
  70614. struct CppType<StructureType, StructureType::ePhysicalDeviceSwapchainMaintenance1FeaturesEXT>
  70615. {
  70616. using Type = PhysicalDeviceSwapchainMaintenance1FeaturesEXT;
  70617. };
  70618. struct PhysicalDeviceSynchronization2Features
  70619. {
  70620. using NativeType = VkPhysicalDeviceSynchronization2Features;
  70621. static const bool allowDuplicate = false;
  70622. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSynchronization2Features;
  70623. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70624. VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2Features( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ = {},
  70625. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70626. : pNext( pNext_ )
  70627. , synchronization2( synchronization2_ )
  70628. {
  70629. }
  70630. VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2Features( PhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70631. PhysicalDeviceSynchronization2Features( VkPhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT
  70632. : PhysicalDeviceSynchronization2Features( *reinterpret_cast<PhysicalDeviceSynchronization2Features const *>( &rhs ) )
  70633. {
  70634. }
  70635. PhysicalDeviceSynchronization2Features & operator=( PhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70636. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70637. PhysicalDeviceSynchronization2Features & operator=( VkPhysicalDeviceSynchronization2Features const & rhs ) VULKAN_HPP_NOEXCEPT
  70638. {
  70639. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features const *>( &rhs );
  70640. return *this;
  70641. }
  70642. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70643. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSynchronization2Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70644. {
  70645. pNext = pNext_;
  70646. return *this;
  70647. }
  70648. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSynchronization2Features & setSynchronization2( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ ) VULKAN_HPP_NOEXCEPT
  70649. {
  70650. synchronization2 = synchronization2_;
  70651. return *this;
  70652. }
  70653. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70654. operator VkPhysicalDeviceSynchronization2Features const &() const VULKAN_HPP_NOEXCEPT
  70655. {
  70656. return *reinterpret_cast<const VkPhysicalDeviceSynchronization2Features *>( this );
  70657. }
  70658. operator VkPhysicalDeviceSynchronization2Features &() VULKAN_HPP_NOEXCEPT
  70659. {
  70660. return *reinterpret_cast<VkPhysicalDeviceSynchronization2Features *>( this );
  70661. }
  70662. #if defined( VULKAN_HPP_USE_REFLECT )
  70663. # if 14 <= VULKAN_HPP_CPP_VERSION
  70664. auto
  70665. # else
  70666. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  70667. # endif
  70668. reflect() const VULKAN_HPP_NOEXCEPT
  70669. {
  70670. return std::tie( sType, pNext, synchronization2 );
  70671. }
  70672. #endif
  70673. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70674. auto operator<=>( PhysicalDeviceSynchronization2Features const & ) const = default;
  70675. #else
  70676. bool operator==( PhysicalDeviceSynchronization2Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  70677. {
  70678. # if defined( VULKAN_HPP_USE_REFLECT )
  70679. return this->reflect() == rhs.reflect();
  70680. # else
  70681. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( synchronization2 == rhs.synchronization2 );
  70682. # endif
  70683. }
  70684. bool operator!=( PhysicalDeviceSynchronization2Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  70685. {
  70686. return !operator==( rhs );
  70687. }
  70688. #endif
  70689. public:
  70690. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSynchronization2Features;
  70691. void * pNext = {};
  70692. VULKAN_HPP_NAMESPACE::Bool32 synchronization2 = {};
  70693. };
  70694. template <>
  70695. struct CppType<StructureType, StructureType::ePhysicalDeviceSynchronization2Features>
  70696. {
  70697. using Type = PhysicalDeviceSynchronization2Features;
  70698. };
  70699. using PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features;
  70700. struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
  70701. {
  70702. using NativeType = VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  70703. static const bool allowDuplicate = false;
  70704. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  70705. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70706. VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {},
  70707. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70708. : pNext( pNext_ )
  70709. , texelBufferAlignment( texelBufferAlignment_ )
  70710. {
  70711. }
  70712. VULKAN_HPP_CONSTEXPR
  70713. PhysicalDeviceTexelBufferAlignmentFeaturesEXT( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70714. PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  70715. : PhysicalDeviceTexelBufferAlignmentFeaturesEXT( *reinterpret_cast<PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>( &rhs ) )
  70716. {
  70717. }
  70718. PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70719. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70720. PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  70721. {
  70722. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const *>( &rhs );
  70723. return *this;
  70724. }
  70725. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70726. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70727. {
  70728. pNext = pNext_;
  70729. return *this;
  70730. }
  70731. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentFeaturesEXT &
  70732. setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT
  70733. {
  70734. texelBufferAlignment = texelBufferAlignment_;
  70735. return *this;
  70736. }
  70737. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70738. operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  70739. {
  70740. return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *>( this );
  70741. }
  70742. operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  70743. {
  70744. return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *>( this );
  70745. }
  70746. #if defined( VULKAN_HPP_USE_REFLECT )
  70747. # if 14 <= VULKAN_HPP_CPP_VERSION
  70748. auto
  70749. # else
  70750. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  70751. # endif
  70752. reflect() const VULKAN_HPP_NOEXCEPT
  70753. {
  70754. return std::tie( sType, pNext, texelBufferAlignment );
  70755. }
  70756. #endif
  70757. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70758. auto operator<=>( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & ) const = default;
  70759. #else
  70760. bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70761. {
  70762. # if defined( VULKAN_HPP_USE_REFLECT )
  70763. return this->reflect() == rhs.reflect();
  70764. # else
  70765. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( texelBufferAlignment == rhs.texelBufferAlignment );
  70766. # endif
  70767. }
  70768. bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  70769. {
  70770. return !operator==( rhs );
  70771. }
  70772. #endif
  70773. public:
  70774. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  70775. void * pNext = {};
  70776. VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {};
  70777. };
  70778. template <>
  70779. struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT>
  70780. {
  70781. using Type = PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  70782. };
  70783. struct PhysicalDeviceTexelBufferAlignmentProperties
  70784. {
  70785. using NativeType = VkPhysicalDeviceTexelBufferAlignmentProperties;
  70786. static const bool allowDuplicate = false;
  70787. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentProperties;
  70788. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70789. VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentProperties( VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {},
  70790. VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {},
  70791. VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {},
  70792. VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {},
  70793. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70794. : pNext( pNext_ )
  70795. , storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ )
  70796. , storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ )
  70797. , uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ )
  70798. , uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
  70799. {
  70800. }
  70801. VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentProperties( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70802. PhysicalDeviceTexelBufferAlignmentProperties( VkPhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  70803. : PhysicalDeviceTexelBufferAlignmentProperties( *reinterpret_cast<PhysicalDeviceTexelBufferAlignmentProperties const *>( &rhs ) )
  70804. {
  70805. }
  70806. PhysicalDeviceTexelBufferAlignmentProperties & operator=( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70807. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70808. PhysicalDeviceTexelBufferAlignmentProperties & operator=( VkPhysicalDeviceTexelBufferAlignmentProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  70809. {
  70810. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties const *>( &rhs );
  70811. return *this;
  70812. }
  70813. operator VkPhysicalDeviceTexelBufferAlignmentProperties const &() const VULKAN_HPP_NOEXCEPT
  70814. {
  70815. return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentProperties *>( this );
  70816. }
  70817. operator VkPhysicalDeviceTexelBufferAlignmentProperties &() VULKAN_HPP_NOEXCEPT
  70818. {
  70819. return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentProperties *>( this );
  70820. }
  70821. #if defined( VULKAN_HPP_USE_REFLECT )
  70822. # if 14 <= VULKAN_HPP_CPP_VERSION
  70823. auto
  70824. # else
  70825. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  70826. void * const &,
  70827. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  70828. VULKAN_HPP_NAMESPACE::Bool32 const &,
  70829. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  70830. VULKAN_HPP_NAMESPACE::Bool32 const &>
  70831. # endif
  70832. reflect() const VULKAN_HPP_NOEXCEPT
  70833. {
  70834. return std::tie( sType,
  70835. pNext,
  70836. storageTexelBufferOffsetAlignmentBytes,
  70837. storageTexelBufferOffsetSingleTexelAlignment,
  70838. uniformTexelBufferOffsetAlignmentBytes,
  70839. uniformTexelBufferOffsetSingleTexelAlignment );
  70840. }
  70841. #endif
  70842. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70843. auto operator<=>( PhysicalDeviceTexelBufferAlignmentProperties const & ) const = default;
  70844. #else
  70845. bool operator==( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  70846. {
  70847. # if defined( VULKAN_HPP_USE_REFLECT )
  70848. return this->reflect() == rhs.reflect();
  70849. # else
  70850. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes ) &&
  70851. ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment ) &&
  70852. ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes ) &&
  70853. ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment );
  70854. # endif
  70855. }
  70856. bool operator!=( PhysicalDeviceTexelBufferAlignmentProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  70857. {
  70858. return !operator==( rhs );
  70859. }
  70860. #endif
  70861. public:
  70862. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentProperties;
  70863. void * pNext = {};
  70864. VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {};
  70865. VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {};
  70866. VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {};
  70867. VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {};
  70868. };
  70869. template <>
  70870. struct CppType<StructureType, StructureType::ePhysicalDeviceTexelBufferAlignmentProperties>
  70871. {
  70872. using Type = PhysicalDeviceTexelBufferAlignmentProperties;
  70873. };
  70874. using PhysicalDeviceTexelBufferAlignmentPropertiesEXT = PhysicalDeviceTexelBufferAlignmentProperties;
  70875. struct PhysicalDeviceTextureCompressionASTCHDRFeatures
  70876. {
  70877. using NativeType = VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
  70878. static const bool allowDuplicate = false;
  70879. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeatures;
  70880. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70881. VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeatures( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {},
  70882. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70883. : pNext( pNext_ )
  70884. , textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
  70885. {
  70886. }
  70887. VULKAN_HPP_CONSTEXPR
  70888. PhysicalDeviceTextureCompressionASTCHDRFeatures( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70889. PhysicalDeviceTextureCompressionASTCHDRFeatures( VkPhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  70890. : PhysicalDeviceTextureCompressionASTCHDRFeatures( *reinterpret_cast<PhysicalDeviceTextureCompressionASTCHDRFeatures const *>( &rhs ) )
  70891. {
  70892. }
  70893. PhysicalDeviceTextureCompressionASTCHDRFeatures & operator=( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70894. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70895. PhysicalDeviceTextureCompressionASTCHDRFeatures & operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  70896. {
  70897. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures const *>( &rhs );
  70898. return *this;
  70899. }
  70900. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70901. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTextureCompressionASTCHDRFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70902. {
  70903. pNext = pNext_;
  70904. return *this;
  70905. }
  70906. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTextureCompressionASTCHDRFeatures &
  70907. setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
  70908. {
  70909. textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
  70910. return *this;
  70911. }
  70912. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70913. operator VkPhysicalDeviceTextureCompressionASTCHDRFeatures const &() const VULKAN_HPP_NOEXCEPT
  70914. {
  70915. return *reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *>( this );
  70916. }
  70917. operator VkPhysicalDeviceTextureCompressionASTCHDRFeatures &() VULKAN_HPP_NOEXCEPT
  70918. {
  70919. return *reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeatures *>( this );
  70920. }
  70921. #if defined( VULKAN_HPP_USE_REFLECT )
  70922. # if 14 <= VULKAN_HPP_CPP_VERSION
  70923. auto
  70924. # else
  70925. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  70926. # endif
  70927. reflect() const VULKAN_HPP_NOEXCEPT
  70928. {
  70929. return std::tie( sType, pNext, textureCompressionASTC_HDR );
  70930. }
  70931. #endif
  70932. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  70933. auto operator<=>( PhysicalDeviceTextureCompressionASTCHDRFeatures const & ) const = default;
  70934. #else
  70935. bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  70936. {
  70937. # if defined( VULKAN_HPP_USE_REFLECT )
  70938. return this->reflect() == rhs.reflect();
  70939. # else
  70940. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR );
  70941. # endif
  70942. }
  70943. bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  70944. {
  70945. return !operator==( rhs );
  70946. }
  70947. #endif
  70948. public:
  70949. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeatures;
  70950. void * pNext = {};
  70951. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {};
  70952. };
  70953. template <>
  70954. struct CppType<StructureType, StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeatures>
  70955. {
  70956. using Type = PhysicalDeviceTextureCompressionASTCHDRFeatures;
  70957. };
  70958. using PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = PhysicalDeviceTextureCompressionASTCHDRFeatures;
  70959. struct PhysicalDeviceTilePropertiesFeaturesQCOM
  70960. {
  70961. using NativeType = VkPhysicalDeviceTilePropertiesFeaturesQCOM;
  70962. static const bool allowDuplicate = false;
  70963. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTilePropertiesFeaturesQCOM;
  70964. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  70965. VULKAN_HPP_CONSTEXPR PhysicalDeviceTilePropertiesFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 tileProperties_ = {},
  70966. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  70967. : pNext( pNext_ )
  70968. , tileProperties( tileProperties_ )
  70969. {
  70970. }
  70971. VULKAN_HPP_CONSTEXPR PhysicalDeviceTilePropertiesFeaturesQCOM( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70972. PhysicalDeviceTilePropertiesFeaturesQCOM( VkPhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  70973. : PhysicalDeviceTilePropertiesFeaturesQCOM( *reinterpret_cast<PhysicalDeviceTilePropertiesFeaturesQCOM const *>( &rhs ) )
  70974. {
  70975. }
  70976. PhysicalDeviceTilePropertiesFeaturesQCOM & operator=( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  70977. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  70978. PhysicalDeviceTilePropertiesFeaturesQCOM & operator=( VkPhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  70979. {
  70980. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM const *>( &rhs );
  70981. return *this;
  70982. }
  70983. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  70984. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTilePropertiesFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  70985. {
  70986. pNext = pNext_;
  70987. return *this;
  70988. }
  70989. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTilePropertiesFeaturesQCOM & setTileProperties( VULKAN_HPP_NAMESPACE::Bool32 tileProperties_ ) VULKAN_HPP_NOEXCEPT
  70990. {
  70991. tileProperties = tileProperties_;
  70992. return *this;
  70993. }
  70994. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  70995. operator VkPhysicalDeviceTilePropertiesFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  70996. {
  70997. return *reinterpret_cast<const VkPhysicalDeviceTilePropertiesFeaturesQCOM *>( this );
  70998. }
  70999. operator VkPhysicalDeviceTilePropertiesFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  71000. {
  71001. return *reinterpret_cast<VkPhysicalDeviceTilePropertiesFeaturesQCOM *>( this );
  71002. }
  71003. #if defined( VULKAN_HPP_USE_REFLECT )
  71004. # if 14 <= VULKAN_HPP_CPP_VERSION
  71005. auto
  71006. # else
  71007. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  71008. # endif
  71009. reflect() const VULKAN_HPP_NOEXCEPT
  71010. {
  71011. return std::tie( sType, pNext, tileProperties );
  71012. }
  71013. #endif
  71014. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71015. auto operator<=>( PhysicalDeviceTilePropertiesFeaturesQCOM const & ) const = default;
  71016. #else
  71017. bool operator==( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  71018. {
  71019. # if defined( VULKAN_HPP_USE_REFLECT )
  71020. return this->reflect() == rhs.reflect();
  71021. # else
  71022. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( tileProperties == rhs.tileProperties );
  71023. # endif
  71024. }
  71025. bool operator!=( PhysicalDeviceTilePropertiesFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  71026. {
  71027. return !operator==( rhs );
  71028. }
  71029. #endif
  71030. public:
  71031. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTilePropertiesFeaturesQCOM;
  71032. void * pNext = {};
  71033. VULKAN_HPP_NAMESPACE::Bool32 tileProperties = {};
  71034. };
  71035. template <>
  71036. struct CppType<StructureType, StructureType::ePhysicalDeviceTilePropertiesFeaturesQCOM>
  71037. {
  71038. using Type = PhysicalDeviceTilePropertiesFeaturesQCOM;
  71039. };
  71040. struct PhysicalDeviceTimelineSemaphoreFeatures
  71041. {
  71042. using NativeType = VkPhysicalDeviceTimelineSemaphoreFeatures;
  71043. static const bool allowDuplicate = false;
  71044. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
  71045. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71046. VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {},
  71047. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71048. : pNext( pNext_ )
  71049. , timelineSemaphore( timelineSemaphore_ )
  71050. {
  71051. }
  71052. VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71053. PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  71054. : PhysicalDeviceTimelineSemaphoreFeatures( *reinterpret_cast<PhysicalDeviceTimelineSemaphoreFeatures const *>( &rhs ) )
  71055. {
  71056. }
  71057. PhysicalDeviceTimelineSemaphoreFeatures & operator=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71058. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71059. PhysicalDeviceTimelineSemaphoreFeatures & operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  71060. {
  71061. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures const *>( &rhs );
  71062. return *this;
  71063. }
  71064. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71065. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71066. {
  71067. pNext = pNext_;
  71068. return *this;
  71069. }
  71070. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreFeatures &
  71071. setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
  71072. {
  71073. timelineSemaphore = timelineSemaphore_;
  71074. return *this;
  71075. }
  71076. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71077. operator VkPhysicalDeviceTimelineSemaphoreFeatures const &() const VULKAN_HPP_NOEXCEPT
  71078. {
  71079. return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures *>( this );
  71080. }
  71081. operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT
  71082. {
  71083. return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures *>( this );
  71084. }
  71085. #if defined( VULKAN_HPP_USE_REFLECT )
  71086. # if 14 <= VULKAN_HPP_CPP_VERSION
  71087. auto
  71088. # else
  71089. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  71090. # endif
  71091. reflect() const VULKAN_HPP_NOEXCEPT
  71092. {
  71093. return std::tie( sType, pNext, timelineSemaphore );
  71094. }
  71095. #endif
  71096. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71097. auto operator<=>( PhysicalDeviceTimelineSemaphoreFeatures const & ) const = default;
  71098. #else
  71099. bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  71100. {
  71101. # if defined( VULKAN_HPP_USE_REFLECT )
  71102. return this->reflect() == rhs.reflect();
  71103. # else
  71104. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( timelineSemaphore == rhs.timelineSemaphore );
  71105. # endif
  71106. }
  71107. bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  71108. {
  71109. return !operator==( rhs );
  71110. }
  71111. #endif
  71112. public:
  71113. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures;
  71114. void * pNext = {};
  71115. VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
  71116. };
  71117. template <>
  71118. struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreFeatures>
  71119. {
  71120. using Type = PhysicalDeviceTimelineSemaphoreFeatures;
  71121. };
  71122. using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
  71123. struct PhysicalDeviceTimelineSemaphoreProperties
  71124. {
  71125. using NativeType = VkPhysicalDeviceTimelineSemaphoreProperties;
  71126. static const bool allowDuplicate = false;
  71127. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
  71128. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71129. VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( uint64_t maxTimelineSemaphoreValueDifference_ = {},
  71130. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71131. : pNext( pNext_ )
  71132. , maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
  71133. {
  71134. }
  71135. VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71136. PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  71137. : PhysicalDeviceTimelineSemaphoreProperties( *reinterpret_cast<PhysicalDeviceTimelineSemaphoreProperties const *>( &rhs ) )
  71138. {
  71139. }
  71140. PhysicalDeviceTimelineSemaphoreProperties & operator=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71141. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71142. PhysicalDeviceTimelineSemaphoreProperties & operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  71143. {
  71144. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties const *>( &rhs );
  71145. return *this;
  71146. }
  71147. operator VkPhysicalDeviceTimelineSemaphoreProperties const &() const VULKAN_HPP_NOEXCEPT
  71148. {
  71149. return *reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties *>( this );
  71150. }
  71151. operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT
  71152. {
  71153. return *reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties *>( this );
  71154. }
  71155. #if defined( VULKAN_HPP_USE_REFLECT )
  71156. # if 14 <= VULKAN_HPP_CPP_VERSION
  71157. auto
  71158. # else
  71159. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint64_t const &>
  71160. # endif
  71161. reflect() const VULKAN_HPP_NOEXCEPT
  71162. {
  71163. return std::tie( sType, pNext, maxTimelineSemaphoreValueDifference );
  71164. }
  71165. #endif
  71166. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71167. auto operator<=>( PhysicalDeviceTimelineSemaphoreProperties const & ) const = default;
  71168. #else
  71169. bool operator==( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  71170. {
  71171. # if defined( VULKAN_HPP_USE_REFLECT )
  71172. return this->reflect() == rhs.reflect();
  71173. # else
  71174. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference );
  71175. # endif
  71176. }
  71177. bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  71178. {
  71179. return !operator==( rhs );
  71180. }
  71181. #endif
  71182. public:
  71183. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties;
  71184. void * pNext = {};
  71185. uint64_t maxTimelineSemaphoreValueDifference = {};
  71186. };
  71187. template <>
  71188. struct CppType<StructureType, StructureType::ePhysicalDeviceTimelineSemaphoreProperties>
  71189. {
  71190. using Type = PhysicalDeviceTimelineSemaphoreProperties;
  71191. };
  71192. using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
  71193. struct PhysicalDeviceToolProperties
  71194. {
  71195. using NativeType = VkPhysicalDeviceToolProperties;
  71196. static const bool allowDuplicate = false;
  71197. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceToolProperties;
  71198. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71199. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolProperties( std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & name_ = {},
  71200. std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & version_ = {},
  71201. VULKAN_HPP_NAMESPACE::ToolPurposeFlags purposes_ = {},
  71202. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  71203. std::array<char, VK_MAX_EXTENSION_NAME_SIZE> const & layer_ = {},
  71204. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71205. : pNext( pNext_ )
  71206. , name( name_ )
  71207. , version( version_ )
  71208. , purposes( purposes_ )
  71209. , description( description_ )
  71210. , layer( layer_ )
  71211. {
  71212. }
  71213. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolProperties( PhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71214. PhysicalDeviceToolProperties( VkPhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  71215. : PhysicalDeviceToolProperties( *reinterpret_cast<PhysicalDeviceToolProperties const *>( &rhs ) )
  71216. {
  71217. }
  71218. PhysicalDeviceToolProperties & operator=( PhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71219. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71220. PhysicalDeviceToolProperties & operator=( VkPhysicalDeviceToolProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  71221. {
  71222. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties const *>( &rhs );
  71223. return *this;
  71224. }
  71225. operator VkPhysicalDeviceToolProperties const &() const VULKAN_HPP_NOEXCEPT
  71226. {
  71227. return *reinterpret_cast<const VkPhysicalDeviceToolProperties *>( this );
  71228. }
  71229. operator VkPhysicalDeviceToolProperties &() VULKAN_HPP_NOEXCEPT
  71230. {
  71231. return *reinterpret_cast<VkPhysicalDeviceToolProperties *>( this );
  71232. }
  71233. #if defined( VULKAN_HPP_USE_REFLECT )
  71234. # if 14 <= VULKAN_HPP_CPP_VERSION
  71235. auto
  71236. # else
  71237. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  71238. void * const &,
  71239. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &,
  71240. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &,
  71241. VULKAN_HPP_NAMESPACE::ToolPurposeFlags const &,
  71242. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  71243. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> const &>
  71244. # endif
  71245. reflect() const VULKAN_HPP_NOEXCEPT
  71246. {
  71247. return std::tie( sType, pNext, name, version, purposes, description, layer );
  71248. }
  71249. #endif
  71250. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71251. auto operator<=>( PhysicalDeviceToolProperties const & ) const = default;
  71252. #else
  71253. bool operator==( PhysicalDeviceToolProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  71254. {
  71255. # if defined( VULKAN_HPP_USE_REFLECT )
  71256. return this->reflect() == rhs.reflect();
  71257. # else
  71258. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( name == rhs.name ) && ( version == rhs.version ) && ( purposes == rhs.purposes ) &&
  71259. ( description == rhs.description ) && ( layer == rhs.layer );
  71260. # endif
  71261. }
  71262. bool operator!=( PhysicalDeviceToolProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  71263. {
  71264. return !operator==( rhs );
  71265. }
  71266. #endif
  71267. public:
  71268. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolProperties;
  71269. void * pNext = {};
  71270. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> name = {};
  71271. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> version = {};
  71272. VULKAN_HPP_NAMESPACE::ToolPurposeFlags purposes = {};
  71273. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  71274. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_EXTENSION_NAME_SIZE> layer = {};
  71275. };
  71276. template <>
  71277. struct CppType<StructureType, StructureType::ePhysicalDeviceToolProperties>
  71278. {
  71279. using Type = PhysicalDeviceToolProperties;
  71280. };
  71281. using PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolProperties;
  71282. struct PhysicalDeviceTransformFeedbackFeaturesEXT
  71283. {
  71284. using NativeType = VkPhysicalDeviceTransformFeedbackFeaturesEXT;
  71285. static const bool allowDuplicate = false;
  71286. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
  71287. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71288. VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {},
  71289. VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {},
  71290. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71291. : pNext( pNext_ )
  71292. , transformFeedback( transformFeedback_ )
  71293. , geometryStreams( geometryStreams_ )
  71294. {
  71295. }
  71296. VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71297. PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71298. : PhysicalDeviceTransformFeedbackFeaturesEXT( *reinterpret_cast<PhysicalDeviceTransformFeedbackFeaturesEXT const *>( &rhs ) )
  71299. {
  71300. }
  71301. PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71302. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71303. PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71304. {
  71305. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT const *>( &rhs );
  71306. return *this;
  71307. }
  71308. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71309. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71310. {
  71311. pNext = pNext_;
  71312. return *this;
  71313. }
  71314. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT &
  71315. setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT
  71316. {
  71317. transformFeedback = transformFeedback_;
  71318. return *this;
  71319. }
  71320. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT
  71321. {
  71322. geometryStreams = geometryStreams_;
  71323. return *this;
  71324. }
  71325. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71326. operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  71327. {
  71328. return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT *>( this );
  71329. }
  71330. operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  71331. {
  71332. return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT *>( this );
  71333. }
  71334. #if defined( VULKAN_HPP_USE_REFLECT )
  71335. # if 14 <= VULKAN_HPP_CPP_VERSION
  71336. auto
  71337. # else
  71338. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  71339. # endif
  71340. reflect() const VULKAN_HPP_NOEXCEPT
  71341. {
  71342. return std::tie( sType, pNext, transformFeedback, geometryStreams );
  71343. }
  71344. #endif
  71345. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71346. auto operator<=>( PhysicalDeviceTransformFeedbackFeaturesEXT const & ) const = default;
  71347. #else
  71348. bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  71349. {
  71350. # if defined( VULKAN_HPP_USE_REFLECT )
  71351. return this->reflect() == rhs.reflect();
  71352. # else
  71353. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transformFeedback == rhs.transformFeedback ) && ( geometryStreams == rhs.geometryStreams );
  71354. # endif
  71355. }
  71356. bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  71357. {
  71358. return !operator==( rhs );
  71359. }
  71360. #endif
  71361. public:
  71362. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
  71363. void * pNext = {};
  71364. VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {};
  71365. VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {};
  71366. };
  71367. template <>
  71368. struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT>
  71369. {
  71370. using Type = PhysicalDeviceTransformFeedbackFeaturesEXT;
  71371. };
  71372. struct PhysicalDeviceTransformFeedbackPropertiesEXT
  71373. {
  71374. using NativeType = VkPhysicalDeviceTransformFeedbackPropertiesEXT;
  71375. static const bool allowDuplicate = false;
  71376. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
  71377. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71378. VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( uint32_t maxTransformFeedbackStreams_ = {},
  71379. uint32_t maxTransformFeedbackBuffers_ = {},
  71380. VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize_ = {},
  71381. uint32_t maxTransformFeedbackStreamDataSize_ = {},
  71382. uint32_t maxTransformFeedbackBufferDataSize_ = {},
  71383. uint32_t maxTransformFeedbackBufferDataStride_ = {},
  71384. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries_ = {},
  71385. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles_ = {},
  71386. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect_ = {},
  71387. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw_ = {},
  71388. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71389. : pNext( pNext_ )
  71390. , maxTransformFeedbackStreams( maxTransformFeedbackStreams_ )
  71391. , maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ )
  71392. , maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ )
  71393. , maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ )
  71394. , maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ )
  71395. , maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ )
  71396. , transformFeedbackQueries( transformFeedbackQueries_ )
  71397. , transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ )
  71398. , transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ )
  71399. , transformFeedbackDraw( transformFeedbackDraw_ )
  71400. {
  71401. }
  71402. VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71403. PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71404. : PhysicalDeviceTransformFeedbackPropertiesEXT( *reinterpret_cast<PhysicalDeviceTransformFeedbackPropertiesEXT const *>( &rhs ) )
  71405. {
  71406. }
  71407. PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71408. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71409. PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71410. {
  71411. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT const *>( &rhs );
  71412. return *this;
  71413. }
  71414. operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  71415. {
  71416. return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT *>( this );
  71417. }
  71418. operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  71419. {
  71420. return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT *>( this );
  71421. }
  71422. #if defined( VULKAN_HPP_USE_REFLECT )
  71423. # if 14 <= VULKAN_HPP_CPP_VERSION
  71424. auto
  71425. # else
  71426. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  71427. void * const &,
  71428. uint32_t const &,
  71429. uint32_t const &,
  71430. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  71431. uint32_t const &,
  71432. uint32_t const &,
  71433. uint32_t const &,
  71434. VULKAN_HPP_NAMESPACE::Bool32 const &,
  71435. VULKAN_HPP_NAMESPACE::Bool32 const &,
  71436. VULKAN_HPP_NAMESPACE::Bool32 const &,
  71437. VULKAN_HPP_NAMESPACE::Bool32 const &>
  71438. # endif
  71439. reflect() const VULKAN_HPP_NOEXCEPT
  71440. {
  71441. return std::tie( sType,
  71442. pNext,
  71443. maxTransformFeedbackStreams,
  71444. maxTransformFeedbackBuffers,
  71445. maxTransformFeedbackBufferSize,
  71446. maxTransformFeedbackStreamDataSize,
  71447. maxTransformFeedbackBufferDataSize,
  71448. maxTransformFeedbackBufferDataStride,
  71449. transformFeedbackQueries,
  71450. transformFeedbackStreamsLinesTriangles,
  71451. transformFeedbackRasterizationStreamSelect,
  71452. transformFeedbackDraw );
  71453. }
  71454. #endif
  71455. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71456. auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const & ) const = default;
  71457. #else
  71458. bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  71459. {
  71460. # if defined( VULKAN_HPP_USE_REFLECT )
  71461. return this->reflect() == rhs.reflect();
  71462. # else
  71463. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams ) &&
  71464. ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers ) && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize ) &&
  71465. ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize ) &&
  71466. ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize ) &&
  71467. ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride ) &&
  71468. ( transformFeedbackQueries == rhs.transformFeedbackQueries ) &&
  71469. ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles ) &&
  71470. ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect ) &&
  71471. ( transformFeedbackDraw == rhs.transformFeedbackDraw );
  71472. # endif
  71473. }
  71474. bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  71475. {
  71476. return !operator==( rhs );
  71477. }
  71478. #endif
  71479. public:
  71480. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
  71481. void * pNext = {};
  71482. uint32_t maxTransformFeedbackStreams = {};
  71483. uint32_t maxTransformFeedbackBuffers = {};
  71484. VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {};
  71485. uint32_t maxTransformFeedbackStreamDataSize = {};
  71486. uint32_t maxTransformFeedbackBufferDataSize = {};
  71487. uint32_t maxTransformFeedbackBufferDataStride = {};
  71488. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {};
  71489. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {};
  71490. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {};
  71491. VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {};
  71492. };
  71493. template <>
  71494. struct CppType<StructureType, StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT>
  71495. {
  71496. using Type = PhysicalDeviceTransformFeedbackPropertiesEXT;
  71497. };
  71498. struct PhysicalDeviceUniformBufferStandardLayoutFeatures
  71499. {
  71500. using NativeType = VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
  71501. static const bool allowDuplicate = false;
  71502. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
  71503. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71504. VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {},
  71505. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71506. : pNext( pNext_ )
  71507. , uniformBufferStandardLayout( uniformBufferStandardLayout_ )
  71508. {
  71509. }
  71510. VULKAN_HPP_CONSTEXPR
  71511. PhysicalDeviceUniformBufferStandardLayoutFeatures( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71512. PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  71513. : PhysicalDeviceUniformBufferStandardLayoutFeatures( *reinterpret_cast<PhysicalDeviceUniformBufferStandardLayoutFeatures const *>( &rhs ) )
  71514. {
  71515. }
  71516. PhysicalDeviceUniformBufferStandardLayoutFeatures &
  71517. operator=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71518. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71519. PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  71520. {
  71521. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const *>( &rhs );
  71522. return *this;
  71523. }
  71524. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71525. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71526. {
  71527. pNext = pNext_;
  71528. return *this;
  71529. }
  71530. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUniformBufferStandardLayoutFeatures &
  71531. setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
  71532. {
  71533. uniformBufferStandardLayout = uniformBufferStandardLayout_;
  71534. return *this;
  71535. }
  71536. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71537. operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT
  71538. {
  71539. return *reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures *>( this );
  71540. }
  71541. operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT
  71542. {
  71543. return *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures *>( this );
  71544. }
  71545. #if defined( VULKAN_HPP_USE_REFLECT )
  71546. # if 14 <= VULKAN_HPP_CPP_VERSION
  71547. auto
  71548. # else
  71549. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  71550. # endif
  71551. reflect() const VULKAN_HPP_NOEXCEPT
  71552. {
  71553. return std::tie( sType, pNext, uniformBufferStandardLayout );
  71554. }
  71555. #endif
  71556. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71557. auto operator<=>( PhysicalDeviceUniformBufferStandardLayoutFeatures const & ) const = default;
  71558. #else
  71559. bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  71560. {
  71561. # if defined( VULKAN_HPP_USE_REFLECT )
  71562. return this->reflect() == rhs.reflect();
  71563. # else
  71564. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout );
  71565. # endif
  71566. }
  71567. bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  71568. {
  71569. return !operator==( rhs );
  71570. }
  71571. #endif
  71572. public:
  71573. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures;
  71574. void * pNext = {};
  71575. VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
  71576. };
  71577. template <>
  71578. struct CppType<StructureType, StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures>
  71579. {
  71580. using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures;
  71581. };
  71582. using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
  71583. struct PhysicalDeviceVariablePointersFeatures
  71584. {
  71585. using NativeType = VkPhysicalDeviceVariablePointersFeatures;
  71586. static const bool allowDuplicate = false;
  71587. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVariablePointersFeatures;
  71588. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71589. VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {},
  71590. VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {},
  71591. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71592. : pNext( pNext_ )
  71593. , variablePointersStorageBuffer( variablePointersStorageBuffer_ )
  71594. , variablePointers( variablePointers_ )
  71595. {
  71596. }
  71597. VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71598. PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  71599. : PhysicalDeviceVariablePointersFeatures( *reinterpret_cast<PhysicalDeviceVariablePointersFeatures const *>( &rhs ) )
  71600. {
  71601. }
  71602. PhysicalDeviceVariablePointersFeatures & operator=( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71603. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71604. PhysicalDeviceVariablePointersFeatures & operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  71605. {
  71606. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures const *>( &rhs );
  71607. return *this;
  71608. }
  71609. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71610. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71611. {
  71612. pNext = pNext_;
  71613. return *this;
  71614. }
  71615. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures &
  71616. setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
  71617. {
  71618. variablePointersStorageBuffer = variablePointersStorageBuffer_;
  71619. return *this;
  71620. }
  71621. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
  71622. {
  71623. variablePointers = variablePointers_;
  71624. return *this;
  71625. }
  71626. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71627. operator VkPhysicalDeviceVariablePointersFeatures const &() const VULKAN_HPP_NOEXCEPT
  71628. {
  71629. return *reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures *>( this );
  71630. }
  71631. operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT
  71632. {
  71633. return *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures *>( this );
  71634. }
  71635. #if defined( VULKAN_HPP_USE_REFLECT )
  71636. # if 14 <= VULKAN_HPP_CPP_VERSION
  71637. auto
  71638. # else
  71639. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  71640. # endif
  71641. reflect() const VULKAN_HPP_NOEXCEPT
  71642. {
  71643. return std::tie( sType, pNext, variablePointersStorageBuffer, variablePointers );
  71644. }
  71645. #endif
  71646. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71647. auto operator<=>( PhysicalDeviceVariablePointersFeatures const & ) const = default;
  71648. #else
  71649. bool operator==( PhysicalDeviceVariablePointersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  71650. {
  71651. # if defined( VULKAN_HPP_USE_REFLECT )
  71652. return this->reflect() == rhs.reflect();
  71653. # else
  71654. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) &&
  71655. ( variablePointers == rhs.variablePointers );
  71656. # endif
  71657. }
  71658. bool operator!=( PhysicalDeviceVariablePointersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  71659. {
  71660. return !operator==( rhs );
  71661. }
  71662. #endif
  71663. public:
  71664. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures;
  71665. void * pNext = {};
  71666. VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
  71667. VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
  71668. };
  71669. template <>
  71670. struct CppType<StructureType, StructureType::ePhysicalDeviceVariablePointersFeatures>
  71671. {
  71672. using Type = PhysicalDeviceVariablePointersFeatures;
  71673. };
  71674. using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
  71675. using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
  71676. using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
  71677. struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
  71678. {
  71679. using NativeType = VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  71680. static const bool allowDuplicate = false;
  71681. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  71682. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71683. VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {},
  71684. VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {},
  71685. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71686. : pNext( pNext_ )
  71687. , vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ )
  71688. , vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ )
  71689. {
  71690. }
  71691. VULKAN_HPP_CONSTEXPR
  71692. PhysicalDeviceVertexAttributeDivisorFeaturesEXT( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71693. PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71694. : PhysicalDeviceVertexAttributeDivisorFeaturesEXT( *reinterpret_cast<PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs ) )
  71695. {
  71696. }
  71697. PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71698. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71699. PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71700. {
  71701. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const *>( &rhs );
  71702. return *this;
  71703. }
  71704. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71705. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71706. {
  71707. pNext = pNext_;
  71708. return *this;
  71709. }
  71710. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT &
  71711. setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT
  71712. {
  71713. vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_;
  71714. return *this;
  71715. }
  71716. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT &
  71717. setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT
  71718. {
  71719. vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
  71720. return *this;
  71721. }
  71722. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71723. operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  71724. {
  71725. return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *>( this );
  71726. }
  71727. operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  71728. {
  71729. return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT *>( this );
  71730. }
  71731. #if defined( VULKAN_HPP_USE_REFLECT )
  71732. # if 14 <= VULKAN_HPP_CPP_VERSION
  71733. auto
  71734. # else
  71735. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  71736. # endif
  71737. reflect() const VULKAN_HPP_NOEXCEPT
  71738. {
  71739. return std::tie( sType, pNext, vertexAttributeInstanceRateDivisor, vertexAttributeInstanceRateZeroDivisor );
  71740. }
  71741. #endif
  71742. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71743. auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & ) const = default;
  71744. #else
  71745. bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  71746. {
  71747. # if defined( VULKAN_HPP_USE_REFLECT )
  71748. return this->reflect() == rhs.reflect();
  71749. # else
  71750. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor ) &&
  71751. ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor );
  71752. # endif
  71753. }
  71754. bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  71755. {
  71756. return !operator==( rhs );
  71757. }
  71758. #endif
  71759. public:
  71760. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  71761. void * pNext = {};
  71762. VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {};
  71763. VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {};
  71764. };
  71765. template <>
  71766. struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT>
  71767. {
  71768. using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  71769. };
  71770. struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
  71771. {
  71772. using NativeType = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  71773. static const bool allowDuplicate = false;
  71774. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  71775. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71776. VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( uint32_t maxVertexAttribDivisor_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71777. : pNext( pNext_ )
  71778. , maxVertexAttribDivisor( maxVertexAttribDivisor_ )
  71779. {
  71780. }
  71781. VULKAN_HPP_CONSTEXPR
  71782. PhysicalDeviceVertexAttributeDivisorPropertiesEXT( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71783. PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71784. : PhysicalDeviceVertexAttributeDivisorPropertiesEXT( *reinterpret_cast<PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>( &rhs ) )
  71785. {
  71786. }
  71787. PhysicalDeviceVertexAttributeDivisorPropertiesEXT &
  71788. operator=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71789. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71790. PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71791. {
  71792. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT const *>( &rhs );
  71793. return *this;
  71794. }
  71795. operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  71796. {
  71797. return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *>( this );
  71798. }
  71799. operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  71800. {
  71801. return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *>( this );
  71802. }
  71803. #if defined( VULKAN_HPP_USE_REFLECT )
  71804. # if 14 <= VULKAN_HPP_CPP_VERSION
  71805. auto
  71806. # else
  71807. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  71808. # endif
  71809. reflect() const VULKAN_HPP_NOEXCEPT
  71810. {
  71811. return std::tie( sType, pNext, maxVertexAttribDivisor );
  71812. }
  71813. #endif
  71814. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71815. auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & ) const = default;
  71816. #else
  71817. bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  71818. {
  71819. # if defined( VULKAN_HPP_USE_REFLECT )
  71820. return this->reflect() == rhs.reflect();
  71821. # else
  71822. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor );
  71823. # endif
  71824. }
  71825. bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  71826. {
  71827. return !operator==( rhs );
  71828. }
  71829. #endif
  71830. public:
  71831. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  71832. void * pNext = {};
  71833. uint32_t maxVertexAttribDivisor = {};
  71834. };
  71835. template <>
  71836. struct CppType<StructureType, StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT>
  71837. {
  71838. using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  71839. };
  71840. struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT
  71841. {
  71842. using NativeType = VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
  71843. static const bool allowDuplicate = false;
  71844. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT;
  71845. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71846. VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexInputDynamicStateFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState_ = {},
  71847. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71848. : pNext( pNext_ )
  71849. , vertexInputDynamicState( vertexInputDynamicState_ )
  71850. {
  71851. }
  71852. VULKAN_HPP_CONSTEXPR
  71853. PhysicalDeviceVertexInputDynamicStateFeaturesEXT( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71854. PhysicalDeviceVertexInputDynamicStateFeaturesEXT( VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71855. : PhysicalDeviceVertexInputDynamicStateFeaturesEXT( *reinterpret_cast<PhysicalDeviceVertexInputDynamicStateFeaturesEXT const *>( &rhs ) )
  71856. {
  71857. }
  71858. PhysicalDeviceVertexInputDynamicStateFeaturesEXT & operator=( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71859. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71860. PhysicalDeviceVertexInputDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  71861. {
  71862. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT const *>( &rhs );
  71863. return *this;
  71864. }
  71865. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71866. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexInputDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71867. {
  71868. pNext = pNext_;
  71869. return *this;
  71870. }
  71871. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexInputDynamicStateFeaturesEXT &
  71872. setVertexInputDynamicState( VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState_ ) VULKAN_HPP_NOEXCEPT
  71873. {
  71874. vertexInputDynamicState = vertexInputDynamicState_;
  71875. return *this;
  71876. }
  71877. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71878. operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  71879. {
  71880. return *reinterpret_cast<const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT *>( this );
  71881. }
  71882. operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  71883. {
  71884. return *reinterpret_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT *>( this );
  71885. }
  71886. #if defined( VULKAN_HPP_USE_REFLECT )
  71887. # if 14 <= VULKAN_HPP_CPP_VERSION
  71888. auto
  71889. # else
  71890. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  71891. # endif
  71892. reflect() const VULKAN_HPP_NOEXCEPT
  71893. {
  71894. return std::tie( sType, pNext, vertexInputDynamicState );
  71895. }
  71896. #endif
  71897. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  71898. auto operator<=>( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & ) const = default;
  71899. #else
  71900. bool operator==( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  71901. {
  71902. # if defined( VULKAN_HPP_USE_REFLECT )
  71903. return this->reflect() == rhs.reflect();
  71904. # else
  71905. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vertexInputDynamicState == rhs.vertexInputDynamicState );
  71906. # endif
  71907. }
  71908. bool operator!=( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  71909. {
  71910. return !operator==( rhs );
  71911. }
  71912. #endif
  71913. public:
  71914. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT;
  71915. void * pNext = {};
  71916. VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState = {};
  71917. };
  71918. template <>
  71919. struct CppType<StructureType, StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT>
  71920. {
  71921. using Type = PhysicalDeviceVertexInputDynamicStateFeaturesEXT;
  71922. };
  71923. struct VideoProfileInfoKHR
  71924. {
  71925. using NativeType = VkVideoProfileInfoKHR;
  71926. static const bool allowDuplicate = false;
  71927. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoProfileInfoKHR;
  71928. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  71929. VULKAN_HPP_CONSTEXPR VideoProfileInfoKHR(
  71930. VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ = VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eNone,
  71931. VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_ = {},
  71932. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_ = {},
  71933. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_ = {},
  71934. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  71935. : pNext( pNext_ )
  71936. , videoCodecOperation( videoCodecOperation_ )
  71937. , chromaSubsampling( chromaSubsampling_ )
  71938. , lumaBitDepth( lumaBitDepth_ )
  71939. , chromaBitDepth( chromaBitDepth_ )
  71940. {
  71941. }
  71942. VULKAN_HPP_CONSTEXPR VideoProfileInfoKHR( VideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71943. VideoProfileInfoKHR( VkVideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : VideoProfileInfoKHR( *reinterpret_cast<VideoProfileInfoKHR const *>( &rhs ) )
  71944. {
  71945. }
  71946. VideoProfileInfoKHR & operator=( VideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  71947. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  71948. VideoProfileInfoKHR & operator=( VkVideoProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  71949. {
  71950. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR const *>( &rhs );
  71951. return *this;
  71952. }
  71953. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  71954. VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  71955. {
  71956. pNext = pNext_;
  71957. return *this;
  71958. }
  71959. VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR &
  71960. setVideoCodecOperation( VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ ) VULKAN_HPP_NOEXCEPT
  71961. {
  71962. videoCodecOperation = videoCodecOperation_;
  71963. return *this;
  71964. }
  71965. VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR &
  71966. setChromaSubsampling( VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_ ) VULKAN_HPP_NOEXCEPT
  71967. {
  71968. chromaSubsampling = chromaSubsampling_;
  71969. return *this;
  71970. }
  71971. VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setLumaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_ ) VULKAN_HPP_NOEXCEPT
  71972. {
  71973. lumaBitDepth = lumaBitDepth_;
  71974. return *this;
  71975. }
  71976. VULKAN_HPP_CONSTEXPR_14 VideoProfileInfoKHR & setChromaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_ ) VULKAN_HPP_NOEXCEPT
  71977. {
  71978. chromaBitDepth = chromaBitDepth_;
  71979. return *this;
  71980. }
  71981. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  71982. operator VkVideoProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  71983. {
  71984. return *reinterpret_cast<const VkVideoProfileInfoKHR *>( this );
  71985. }
  71986. operator VkVideoProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
  71987. {
  71988. return *reinterpret_cast<VkVideoProfileInfoKHR *>( this );
  71989. }
  71990. #if defined( VULKAN_HPP_USE_REFLECT )
  71991. # if 14 <= VULKAN_HPP_CPP_VERSION
  71992. auto
  71993. # else
  71994. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  71995. const void * const &,
  71996. VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR const &,
  71997. VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR const &,
  71998. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR const &,
  71999. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR const &>
  72000. # endif
  72001. reflect() const VULKAN_HPP_NOEXCEPT
  72002. {
  72003. return std::tie( sType, pNext, videoCodecOperation, chromaSubsampling, lumaBitDepth, chromaBitDepth );
  72004. }
  72005. #endif
  72006. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72007. auto operator<=>( VideoProfileInfoKHR const & ) const = default;
  72008. #else
  72009. bool operator==( VideoProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  72010. {
  72011. # if defined( VULKAN_HPP_USE_REFLECT )
  72012. return this->reflect() == rhs.reflect();
  72013. # else
  72014. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoCodecOperation == rhs.videoCodecOperation ) &&
  72015. ( chromaSubsampling == rhs.chromaSubsampling ) && ( lumaBitDepth == rhs.lumaBitDepth ) && ( chromaBitDepth == rhs.chromaBitDepth );
  72016. # endif
  72017. }
  72018. bool operator!=( VideoProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  72019. {
  72020. return !operator==( rhs );
  72021. }
  72022. #endif
  72023. public:
  72024. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoProfileInfoKHR;
  72025. const void * pNext = {};
  72026. VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation = VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eNone;
  72027. VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling = {};
  72028. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth = {};
  72029. VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth = {};
  72030. };
  72031. template <>
  72032. struct CppType<StructureType, StructureType::eVideoProfileInfoKHR>
  72033. {
  72034. using Type = VideoProfileInfoKHR;
  72035. };
  72036. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  72037. struct PhysicalDeviceVideoEncodeQualityLevelInfoKHR
  72038. {
  72039. using NativeType = VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
  72040. static const bool allowDuplicate = false;
  72041. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVideoEncodeQualityLevelInfoKHR;
  72042. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72043. VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoEncodeQualityLevelInfoKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ = {},
  72044. uint32_t qualityLevel_ = {},
  72045. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72046. : pNext( pNext_ )
  72047. , pVideoProfile( pVideoProfile_ )
  72048. , qualityLevel( qualityLevel_ )
  72049. {
  72050. }
  72051. VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoEncodeQualityLevelInfoKHR( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72052. PhysicalDeviceVideoEncodeQualityLevelInfoKHR( VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  72053. : PhysicalDeviceVideoEncodeQualityLevelInfoKHR( *reinterpret_cast<PhysicalDeviceVideoEncodeQualityLevelInfoKHR const *>( &rhs ) )
  72054. {
  72055. }
  72056. PhysicalDeviceVideoEncodeQualityLevelInfoKHR & operator=( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72057. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72058. PhysicalDeviceVideoEncodeQualityLevelInfoKHR & operator=( VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  72059. {
  72060. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR const *>( &rhs );
  72061. return *this;
  72062. }
  72063. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  72064. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoEncodeQualityLevelInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  72065. {
  72066. pNext = pNext_;
  72067. return *this;
  72068. }
  72069. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoEncodeQualityLevelInfoKHR &
  72070. setPVideoProfile( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ ) VULKAN_HPP_NOEXCEPT
  72071. {
  72072. pVideoProfile = pVideoProfile_;
  72073. return *this;
  72074. }
  72075. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoEncodeQualityLevelInfoKHR & setQualityLevel( uint32_t qualityLevel_ ) VULKAN_HPP_NOEXCEPT
  72076. {
  72077. qualityLevel = qualityLevel_;
  72078. return *this;
  72079. }
  72080. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72081. operator VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  72082. {
  72083. return *reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( this );
  72084. }
  72085. operator VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR &() VULKAN_HPP_NOEXCEPT
  72086. {
  72087. return *reinterpret_cast<VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( this );
  72088. }
  72089. # if defined( VULKAN_HPP_USE_REFLECT )
  72090. # if 14 <= VULKAN_HPP_CPP_VERSION
  72091. auto
  72092. # else
  72093. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * const &, uint32_t const &>
  72094. # endif
  72095. reflect() const VULKAN_HPP_NOEXCEPT
  72096. {
  72097. return std::tie( sType, pNext, pVideoProfile, qualityLevel );
  72098. }
  72099. # endif
  72100. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72101. auto operator<=>( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & ) const = default;
  72102. # else
  72103. bool operator==( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  72104. {
  72105. # if defined( VULKAN_HPP_USE_REFLECT )
  72106. return this->reflect() == rhs.reflect();
  72107. # else
  72108. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pVideoProfile == rhs.pVideoProfile ) && ( qualityLevel == rhs.qualityLevel );
  72109. # endif
  72110. }
  72111. bool operator!=( PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  72112. {
  72113. return !operator==( rhs );
  72114. }
  72115. # endif
  72116. public:
  72117. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVideoEncodeQualityLevelInfoKHR;
  72118. const void * pNext = {};
  72119. const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile = {};
  72120. uint32_t qualityLevel = {};
  72121. };
  72122. template <>
  72123. struct CppType<StructureType, StructureType::ePhysicalDeviceVideoEncodeQualityLevelInfoKHR>
  72124. {
  72125. using Type = PhysicalDeviceVideoEncodeQualityLevelInfoKHR;
  72126. };
  72127. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  72128. struct PhysicalDeviceVideoFormatInfoKHR
  72129. {
  72130. using NativeType = VkPhysicalDeviceVideoFormatInfoKHR;
  72131. static const bool allowDuplicate = false;
  72132. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVideoFormatInfoKHR;
  72133. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72134. VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoFormatInfoKHR( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {},
  72135. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72136. : pNext( pNext_ )
  72137. , imageUsage( imageUsage_ )
  72138. {
  72139. }
  72140. VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoFormatInfoKHR( PhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72141. PhysicalDeviceVideoFormatInfoKHR( VkPhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  72142. : PhysicalDeviceVideoFormatInfoKHR( *reinterpret_cast<PhysicalDeviceVideoFormatInfoKHR const *>( &rhs ) )
  72143. {
  72144. }
  72145. PhysicalDeviceVideoFormatInfoKHR & operator=( PhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72146. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72147. PhysicalDeviceVideoFormatInfoKHR & operator=( VkPhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  72148. {
  72149. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR const *>( &rhs );
  72150. return *this;
  72151. }
  72152. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  72153. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoFormatInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  72154. {
  72155. pNext = pNext_;
  72156. return *this;
  72157. }
  72158. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoFormatInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT
  72159. {
  72160. imageUsage = imageUsage_;
  72161. return *this;
  72162. }
  72163. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72164. operator VkPhysicalDeviceVideoFormatInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  72165. {
  72166. return *reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( this );
  72167. }
  72168. operator VkPhysicalDeviceVideoFormatInfoKHR &() VULKAN_HPP_NOEXCEPT
  72169. {
  72170. return *reinterpret_cast<VkPhysicalDeviceVideoFormatInfoKHR *>( this );
  72171. }
  72172. #if defined( VULKAN_HPP_USE_REFLECT )
  72173. # if 14 <= VULKAN_HPP_CPP_VERSION
  72174. auto
  72175. # else
  72176. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  72177. # endif
  72178. reflect() const VULKAN_HPP_NOEXCEPT
  72179. {
  72180. return std::tie( sType, pNext, imageUsage );
  72181. }
  72182. #endif
  72183. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72184. auto operator<=>( PhysicalDeviceVideoFormatInfoKHR const & ) const = default;
  72185. #else
  72186. bool operator==( PhysicalDeviceVideoFormatInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  72187. {
  72188. # if defined( VULKAN_HPP_USE_REFLECT )
  72189. return this->reflect() == rhs.reflect();
  72190. # else
  72191. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageUsage == rhs.imageUsage );
  72192. # endif
  72193. }
  72194. bool operator!=( PhysicalDeviceVideoFormatInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  72195. {
  72196. return !operator==( rhs );
  72197. }
  72198. #endif
  72199. public:
  72200. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVideoFormatInfoKHR;
  72201. const void * pNext = {};
  72202. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
  72203. };
  72204. template <>
  72205. struct CppType<StructureType, StructureType::ePhysicalDeviceVideoFormatInfoKHR>
  72206. {
  72207. using Type = PhysicalDeviceVideoFormatInfoKHR;
  72208. };
  72209. struct PhysicalDeviceVulkan11Features
  72210. {
  72211. using NativeType = VkPhysicalDeviceVulkan11Features;
  72212. static const bool allowDuplicate = false;
  72213. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Features;
  72214. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72215. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {},
  72216. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {},
  72217. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {},
  72218. VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {},
  72219. VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {},
  72220. VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {},
  72221. VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {},
  72222. VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {},
  72223. VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {},
  72224. VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {},
  72225. VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {},
  72226. VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {},
  72227. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72228. : pNext( pNext_ )
  72229. , storageBuffer16BitAccess( storageBuffer16BitAccess_ )
  72230. , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ )
  72231. , storagePushConstant16( storagePushConstant16_ )
  72232. , storageInputOutput16( storageInputOutput16_ )
  72233. , multiview( multiview_ )
  72234. , multiviewGeometryShader( multiviewGeometryShader_ )
  72235. , multiviewTessellationShader( multiviewTessellationShader_ )
  72236. , variablePointersStorageBuffer( variablePointersStorageBuffer_ )
  72237. , variablePointers( variablePointers_ )
  72238. , protectedMemory( protectedMemory_ )
  72239. , samplerYcbcrConversion( samplerYcbcrConversion_ )
  72240. , shaderDrawParameters( shaderDrawParameters_ )
  72241. {
  72242. }
  72243. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72244. PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
  72245. : PhysicalDeviceVulkan11Features( *reinterpret_cast<PhysicalDeviceVulkan11Features const *>( &rhs ) )
  72246. {
  72247. }
  72248. PhysicalDeviceVulkan11Features & operator=( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72249. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72250. PhysicalDeviceVulkan11Features & operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT
  72251. {
  72252. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features const *>( &rhs );
  72253. return *this;
  72254. }
  72255. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  72256. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  72257. {
  72258. pNext = pNext_;
  72259. return *this;
  72260. }
  72261. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  72262. setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
  72263. {
  72264. storageBuffer16BitAccess = storageBuffer16BitAccess_;
  72265. return *this;
  72266. }
  72267. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  72268. setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT
  72269. {
  72270. uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
  72271. return *this;
  72272. }
  72273. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT
  72274. {
  72275. storagePushConstant16 = storagePushConstant16_;
  72276. return *this;
  72277. }
  72278. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT
  72279. {
  72280. storageInputOutput16 = storageInputOutput16_;
  72281. return *this;
  72282. }
  72283. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT
  72284. {
  72285. multiview = multiview_;
  72286. return *this;
  72287. }
  72288. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  72289. setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT
  72290. {
  72291. multiviewGeometryShader = multiviewGeometryShader_;
  72292. return *this;
  72293. }
  72294. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  72295. setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT
  72296. {
  72297. multiviewTessellationShader = multiviewTessellationShader_;
  72298. return *this;
  72299. }
  72300. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  72301. setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT
  72302. {
  72303. variablePointersStorageBuffer = variablePointersStorageBuffer_;
  72304. return *this;
  72305. }
  72306. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT
  72307. {
  72308. variablePointers = variablePointers_;
  72309. return *this;
  72310. }
  72311. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT
  72312. {
  72313. protectedMemory = protectedMemory_;
  72314. return *this;
  72315. }
  72316. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features &
  72317. setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT
  72318. {
  72319. samplerYcbcrConversion = samplerYcbcrConversion_;
  72320. return *this;
  72321. }
  72322. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT
  72323. {
  72324. shaderDrawParameters = shaderDrawParameters_;
  72325. return *this;
  72326. }
  72327. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72328. operator VkPhysicalDeviceVulkan11Features const &() const VULKAN_HPP_NOEXCEPT
  72329. {
  72330. return *reinterpret_cast<const VkPhysicalDeviceVulkan11Features *>( this );
  72331. }
  72332. operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT
  72333. {
  72334. return *reinterpret_cast<VkPhysicalDeviceVulkan11Features *>( this );
  72335. }
  72336. #if defined( VULKAN_HPP_USE_REFLECT )
  72337. # if 14 <= VULKAN_HPP_CPP_VERSION
  72338. auto
  72339. # else
  72340. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  72341. void * const &,
  72342. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72343. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72344. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72345. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72346. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72347. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72348. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72349. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72350. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72351. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72352. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72353. VULKAN_HPP_NAMESPACE::Bool32 const &>
  72354. # endif
  72355. reflect() const VULKAN_HPP_NOEXCEPT
  72356. {
  72357. return std::tie( sType,
  72358. pNext,
  72359. storageBuffer16BitAccess,
  72360. uniformAndStorageBuffer16BitAccess,
  72361. storagePushConstant16,
  72362. storageInputOutput16,
  72363. multiview,
  72364. multiviewGeometryShader,
  72365. multiviewTessellationShader,
  72366. variablePointersStorageBuffer,
  72367. variablePointers,
  72368. protectedMemory,
  72369. samplerYcbcrConversion,
  72370. shaderDrawParameters );
  72371. }
  72372. #endif
  72373. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72374. auto operator<=>( PhysicalDeviceVulkan11Features const & ) const = default;
  72375. #else
  72376. bool operator==( PhysicalDeviceVulkan11Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  72377. {
  72378. # if defined( VULKAN_HPP_USE_REFLECT )
  72379. return this->reflect() == rhs.reflect();
  72380. # else
  72381. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) &&
  72382. ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) && ( storagePushConstant16 == rhs.storagePushConstant16 ) &&
  72383. ( storageInputOutput16 == rhs.storageInputOutput16 ) && ( multiview == rhs.multiview ) &&
  72384. ( multiviewGeometryShader == rhs.multiviewGeometryShader ) && ( multiviewTessellationShader == rhs.multiviewTessellationShader ) &&
  72385. ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) && ( variablePointers == rhs.variablePointers ) &&
  72386. ( protectedMemory == rhs.protectedMemory ) && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion ) &&
  72387. ( shaderDrawParameters == rhs.shaderDrawParameters );
  72388. # endif
  72389. }
  72390. bool operator!=( PhysicalDeviceVulkan11Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  72391. {
  72392. return !operator==( rhs );
  72393. }
  72394. #endif
  72395. public:
  72396. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features;
  72397. void * pNext = {};
  72398. VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {};
  72399. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {};
  72400. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {};
  72401. VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {};
  72402. VULKAN_HPP_NAMESPACE::Bool32 multiview = {};
  72403. VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {};
  72404. VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {};
  72405. VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {};
  72406. VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {};
  72407. VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {};
  72408. VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {};
  72409. VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {};
  72410. };
  72411. template <>
  72412. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Features>
  72413. {
  72414. using Type = PhysicalDeviceVulkan11Features;
  72415. };
  72416. struct PhysicalDeviceVulkan11Properties
  72417. {
  72418. using NativeType = VkPhysicalDeviceVulkan11Properties;
  72419. static const bool allowDuplicate = false;
  72420. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Properties;
  72421. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72422. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties(
  72423. std::array<uint8_t, VK_UUID_SIZE> const & deviceUUID_ = {},
  72424. std::array<uint8_t, VK_UUID_SIZE> const & driverUUID_ = {},
  72425. std::array<uint8_t, VK_LUID_SIZE> const & deviceLUID_ = {},
  72426. uint32_t deviceNodeMask_ = {},
  72427. VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {},
  72428. uint32_t subgroupSize_ = {},
  72429. VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages_ = {},
  72430. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations_ = {},
  72431. VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages_ = {},
  72432. VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes,
  72433. uint32_t maxMultiviewViewCount_ = {},
  72434. uint32_t maxMultiviewInstanceIndex_ = {},
  72435. VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {},
  72436. uint32_t maxPerSetDescriptors_ = {},
  72437. VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {},
  72438. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72439. : pNext( pNext_ )
  72440. , deviceUUID( deviceUUID_ )
  72441. , driverUUID( driverUUID_ )
  72442. , deviceLUID( deviceLUID_ )
  72443. , deviceNodeMask( deviceNodeMask_ )
  72444. , deviceLUIDValid( deviceLUIDValid_ )
  72445. , subgroupSize( subgroupSize_ )
  72446. , subgroupSupportedStages( subgroupSupportedStages_ )
  72447. , subgroupSupportedOperations( subgroupSupportedOperations_ )
  72448. , subgroupQuadOperationsInAllStages( subgroupQuadOperationsInAllStages_ )
  72449. , pointClippingBehavior( pointClippingBehavior_ )
  72450. , maxMultiviewViewCount( maxMultiviewViewCount_ )
  72451. , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ )
  72452. , protectedNoFault( protectedNoFault_ )
  72453. , maxPerSetDescriptors( maxPerSetDescriptors_ )
  72454. , maxMemoryAllocationSize( maxMemoryAllocationSize_ )
  72455. {
  72456. }
  72457. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72458. PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  72459. : PhysicalDeviceVulkan11Properties( *reinterpret_cast<PhysicalDeviceVulkan11Properties const *>( &rhs ) )
  72460. {
  72461. }
  72462. PhysicalDeviceVulkan11Properties & operator=( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72463. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72464. PhysicalDeviceVulkan11Properties & operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  72465. {
  72466. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties const *>( &rhs );
  72467. return *this;
  72468. }
  72469. operator VkPhysicalDeviceVulkan11Properties const &() const VULKAN_HPP_NOEXCEPT
  72470. {
  72471. return *reinterpret_cast<const VkPhysicalDeviceVulkan11Properties *>( this );
  72472. }
  72473. operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT
  72474. {
  72475. return *reinterpret_cast<VkPhysicalDeviceVulkan11Properties *>( this );
  72476. }
  72477. #if defined( VULKAN_HPP_USE_REFLECT )
  72478. # if 14 <= VULKAN_HPP_CPP_VERSION
  72479. auto
  72480. # else
  72481. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  72482. void * const &,
  72483. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  72484. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &,
  72485. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> const &,
  72486. uint32_t const &,
  72487. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72488. uint32_t const &,
  72489. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  72490. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags const &,
  72491. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72492. VULKAN_HPP_NAMESPACE::PointClippingBehavior const &,
  72493. uint32_t const &,
  72494. uint32_t const &,
  72495. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72496. uint32_t const &,
  72497. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  72498. # endif
  72499. reflect() const VULKAN_HPP_NOEXCEPT
  72500. {
  72501. return std::tie( sType,
  72502. pNext,
  72503. deviceUUID,
  72504. driverUUID,
  72505. deviceLUID,
  72506. deviceNodeMask,
  72507. deviceLUIDValid,
  72508. subgroupSize,
  72509. subgroupSupportedStages,
  72510. subgroupSupportedOperations,
  72511. subgroupQuadOperationsInAllStages,
  72512. pointClippingBehavior,
  72513. maxMultiviewViewCount,
  72514. maxMultiviewInstanceIndex,
  72515. protectedNoFault,
  72516. maxPerSetDescriptors,
  72517. maxMemoryAllocationSize );
  72518. }
  72519. #endif
  72520. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  72521. auto operator<=>( PhysicalDeviceVulkan11Properties const & ) const = default;
  72522. #else
  72523. bool operator==( PhysicalDeviceVulkan11Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  72524. {
  72525. # if defined( VULKAN_HPP_USE_REFLECT )
  72526. return this->reflect() == rhs.reflect();
  72527. # else
  72528. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceUUID == rhs.deviceUUID ) && ( driverUUID == rhs.driverUUID ) &&
  72529. ( deviceLUID == rhs.deviceLUID ) && ( deviceNodeMask == rhs.deviceNodeMask ) && ( deviceLUIDValid == rhs.deviceLUIDValid ) &&
  72530. ( subgroupSize == rhs.subgroupSize ) && ( subgroupSupportedStages == rhs.subgroupSupportedStages ) &&
  72531. ( subgroupSupportedOperations == rhs.subgroupSupportedOperations ) &&
  72532. ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages ) && ( pointClippingBehavior == rhs.pointClippingBehavior ) &&
  72533. ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex ) &&
  72534. ( protectedNoFault == rhs.protectedNoFault ) && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) &&
  72535. ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
  72536. # endif
  72537. }
  72538. bool operator!=( PhysicalDeviceVulkan11Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  72539. {
  72540. return !operator==( rhs );
  72541. }
  72542. #endif
  72543. public:
  72544. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties;
  72545. void * pNext = {};
  72546. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> deviceUUID = {};
  72547. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> driverUUID = {};
  72548. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_LUID_SIZE> deviceLUID = {};
  72549. uint32_t deviceNodeMask = {};
  72550. VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {};
  72551. uint32_t subgroupSize = {};
  72552. VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {};
  72553. VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {};
  72554. VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {};
  72555. VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes;
  72556. uint32_t maxMultiviewViewCount = {};
  72557. uint32_t maxMultiviewInstanceIndex = {};
  72558. VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {};
  72559. uint32_t maxPerSetDescriptors = {};
  72560. VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {};
  72561. };
  72562. template <>
  72563. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan11Properties>
  72564. {
  72565. using Type = PhysicalDeviceVulkan11Properties;
  72566. };
  72567. struct PhysicalDeviceVulkan12Features
  72568. {
  72569. using NativeType = VkPhysicalDeviceVulkan12Features;
  72570. static const bool allowDuplicate = false;
  72571. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Features;
  72572. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  72573. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ = {},
  72574. VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ = {},
  72575. VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {},
  72576. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {},
  72577. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {},
  72578. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {},
  72579. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {},
  72580. VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {},
  72581. VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {},
  72582. VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ = {},
  72583. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {},
  72584. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {},
  72585. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {},
  72586. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {},
  72587. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {},
  72588. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {},
  72589. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {},
  72590. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {},
  72591. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {},
  72592. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {},
  72593. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {},
  72594. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {},
  72595. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {},
  72596. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {},
  72597. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {},
  72598. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {},
  72599. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {},
  72600. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {},
  72601. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {},
  72602. VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {},
  72603. VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ = {},
  72604. VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {},
  72605. VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {},
  72606. VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {},
  72607. VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {},
  72608. VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {},
  72609. VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {},
  72610. VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {},
  72611. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {},
  72612. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {},
  72613. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {},
  72614. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {},
  72615. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {},
  72616. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {},
  72617. VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ = {},
  72618. VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ = {},
  72619. VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ = {},
  72620. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  72621. : pNext( pNext_ )
  72622. , samplerMirrorClampToEdge( samplerMirrorClampToEdge_ )
  72623. , drawIndirectCount( drawIndirectCount_ )
  72624. , storageBuffer8BitAccess( storageBuffer8BitAccess_ )
  72625. , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ )
  72626. , storagePushConstant8( storagePushConstant8_ )
  72627. , shaderBufferInt64Atomics( shaderBufferInt64Atomics_ )
  72628. , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
  72629. , shaderFloat16( shaderFloat16_ )
  72630. , shaderInt8( shaderInt8_ )
  72631. , descriptorIndexing( descriptorIndexing_ )
  72632. , shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ )
  72633. , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ )
  72634. , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ )
  72635. , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ )
  72636. , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ )
  72637. , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ )
  72638. , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ )
  72639. , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ )
  72640. , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ )
  72641. , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ )
  72642. , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ )
  72643. , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ )
  72644. , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ )
  72645. , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ )
  72646. , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ )
  72647. , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ )
  72648. , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ )
  72649. , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ )
  72650. , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ )
  72651. , runtimeDescriptorArray( runtimeDescriptorArray_ )
  72652. , samplerFilterMinmax( samplerFilterMinmax_ )
  72653. , scalarBlockLayout( scalarBlockLayout_ )
  72654. , imagelessFramebuffer( imagelessFramebuffer_ )
  72655. , uniformBufferStandardLayout( uniformBufferStandardLayout_ )
  72656. , shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ )
  72657. , separateDepthStencilLayouts( separateDepthStencilLayouts_ )
  72658. , hostQueryReset( hostQueryReset_ )
  72659. , timelineSemaphore( timelineSemaphore_ )
  72660. , bufferDeviceAddress( bufferDeviceAddress_ )
  72661. , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
  72662. , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
  72663. , vulkanMemoryModel( vulkanMemoryModel_ )
  72664. , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ )
  72665. , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
  72666. , shaderOutputViewportIndex( shaderOutputViewportIndex_ )
  72667. , shaderOutputLayer( shaderOutputLayer_ )
  72668. , subgroupBroadcastDynamicId( subgroupBroadcastDynamicId_ )
  72669. {
  72670. }
  72671. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72672. PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
  72673. : PhysicalDeviceVulkan12Features( *reinterpret_cast<PhysicalDeviceVulkan12Features const *>( &rhs ) )
  72674. {
  72675. }
  72676. PhysicalDeviceVulkan12Features & operator=( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  72677. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  72678. PhysicalDeviceVulkan12Features & operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT
  72679. {
  72680. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features const *>( &rhs );
  72681. return *this;
  72682. }
  72683. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  72684. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  72685. {
  72686. pNext = pNext_;
  72687. return *this;
  72688. }
  72689. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72690. setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT
  72691. {
  72692. samplerMirrorClampToEdge = samplerMirrorClampToEdge_;
  72693. return *this;
  72694. }
  72695. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT
  72696. {
  72697. drawIndirectCount = drawIndirectCount_;
  72698. return *this;
  72699. }
  72700. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72701. setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
  72702. {
  72703. storageBuffer8BitAccess = storageBuffer8BitAccess_;
  72704. return *this;
  72705. }
  72706. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72707. setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT
  72708. {
  72709. uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
  72710. return *this;
  72711. }
  72712. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT
  72713. {
  72714. storagePushConstant8 = storagePushConstant8_;
  72715. return *this;
  72716. }
  72717. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72718. setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  72719. {
  72720. shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
  72721. return *this;
  72722. }
  72723. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72724. setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT
  72725. {
  72726. shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
  72727. return *this;
  72728. }
  72729. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT
  72730. {
  72731. shaderFloat16 = shaderFloat16_;
  72732. return *this;
  72733. }
  72734. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT
  72735. {
  72736. shaderInt8 = shaderInt8_;
  72737. return *this;
  72738. }
  72739. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT
  72740. {
  72741. descriptorIndexing = descriptorIndexing_;
  72742. return *this;
  72743. }
  72744. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72745. setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  72746. {
  72747. shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
  72748. return *this;
  72749. }
  72750. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72751. setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  72752. {
  72753. shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
  72754. return *this;
  72755. }
  72756. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72757. setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT
  72758. {
  72759. shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
  72760. return *this;
  72761. }
  72762. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72763. setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  72764. {
  72765. shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
  72766. return *this;
  72767. }
  72768. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72769. setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  72770. {
  72771. shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
  72772. return *this;
  72773. }
  72774. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72775. setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  72776. {
  72777. shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
  72778. return *this;
  72779. }
  72780. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72781. setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  72782. {
  72783. shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
  72784. return *this;
  72785. }
  72786. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72787. setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  72788. {
  72789. shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
  72790. return *this;
  72791. }
  72792. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72793. setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  72794. {
  72795. shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
  72796. return *this;
  72797. }
  72798. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72799. setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT
  72800. {
  72801. shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
  72802. return *this;
  72803. }
  72804. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72805. setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  72806. {
  72807. descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
  72808. return *this;
  72809. }
  72810. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72811. setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  72812. {
  72813. descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
  72814. return *this;
  72815. }
  72816. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72817. setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  72818. {
  72819. descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
  72820. return *this;
  72821. }
  72822. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72823. setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  72824. {
  72825. descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
  72826. return *this;
  72827. }
  72828. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind(
  72829. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  72830. {
  72831. descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
  72832. return *this;
  72833. }
  72834. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind(
  72835. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  72836. {
  72837. descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
  72838. return *this;
  72839. }
  72840. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72841. setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT
  72842. {
  72843. descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
  72844. return *this;
  72845. }
  72846. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72847. setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT
  72848. {
  72849. descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
  72850. return *this;
  72851. }
  72852. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72853. setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT
  72854. {
  72855. descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
  72856. return *this;
  72857. }
  72858. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72859. setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT
  72860. {
  72861. runtimeDescriptorArray = runtimeDescriptorArray_;
  72862. return *this;
  72863. }
  72864. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT
  72865. {
  72866. samplerFilterMinmax = samplerFilterMinmax_;
  72867. return *this;
  72868. }
  72869. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
  72870. {
  72871. scalarBlockLayout = scalarBlockLayout_;
  72872. return *this;
  72873. }
  72874. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT
  72875. {
  72876. imagelessFramebuffer = imagelessFramebuffer_;
  72877. return *this;
  72878. }
  72879. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72880. setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT
  72881. {
  72882. uniformBufferStandardLayout = uniformBufferStandardLayout_;
  72883. return *this;
  72884. }
  72885. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72886. setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT
  72887. {
  72888. shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_;
  72889. return *this;
  72890. }
  72891. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72892. setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT
  72893. {
  72894. separateDepthStencilLayouts = separateDepthStencilLayouts_;
  72895. return *this;
  72896. }
  72897. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT
  72898. {
  72899. hostQueryReset = hostQueryReset_;
  72900. return *this;
  72901. }
  72902. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT
  72903. {
  72904. timelineSemaphore = timelineSemaphore_;
  72905. return *this;
  72906. }
  72907. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT
  72908. {
  72909. bufferDeviceAddress = bufferDeviceAddress_;
  72910. return *this;
  72911. }
  72912. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72913. setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT
  72914. {
  72915. bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
  72916. return *this;
  72917. }
  72918. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72919. setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT
  72920. {
  72921. bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
  72922. return *this;
  72923. }
  72924. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
  72925. {
  72926. vulkanMemoryModel = vulkanMemoryModel_;
  72927. return *this;
  72928. }
  72929. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72930. setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
  72931. {
  72932. vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
  72933. return *this;
  72934. }
  72935. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72936. setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
  72937. {
  72938. vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
  72939. return *this;
  72940. }
  72941. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72942. setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT
  72943. {
  72944. shaderOutputViewportIndex = shaderOutputViewportIndex_;
  72945. return *this;
  72946. }
  72947. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT
  72948. {
  72949. shaderOutputLayer = shaderOutputLayer_;
  72950. return *this;
  72951. }
  72952. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features &
  72953. setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT
  72954. {
  72955. subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_;
  72956. return *this;
  72957. }
  72958. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  72959. operator VkPhysicalDeviceVulkan12Features const &() const VULKAN_HPP_NOEXCEPT
  72960. {
  72961. return *reinterpret_cast<const VkPhysicalDeviceVulkan12Features *>( this );
  72962. }
  72963. operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT
  72964. {
  72965. return *reinterpret_cast<VkPhysicalDeviceVulkan12Features *>( this );
  72966. }
  72967. #if defined( VULKAN_HPP_USE_REFLECT )
  72968. # if 14 <= VULKAN_HPP_CPP_VERSION
  72969. auto
  72970. # else
  72971. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  72972. void * const &,
  72973. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72974. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72975. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72976. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72977. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72978. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72979. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72980. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72981. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72982. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72983. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72984. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72985. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72986. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72987. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72988. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72989. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72990. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72991. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72992. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72993. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72994. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72995. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72996. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72997. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72998. VULKAN_HPP_NAMESPACE::Bool32 const &,
  72999. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73000. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73001. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73002. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73003. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73004. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73005. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73006. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73007. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73008. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73009. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73010. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73011. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73012. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73013. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73014. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73015. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73016. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73017. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73018. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73019. VULKAN_HPP_NAMESPACE::Bool32 const &>
  73020. # endif
  73021. reflect() const VULKAN_HPP_NOEXCEPT
  73022. {
  73023. return std::tie( sType,
  73024. pNext,
  73025. samplerMirrorClampToEdge,
  73026. drawIndirectCount,
  73027. storageBuffer8BitAccess,
  73028. uniformAndStorageBuffer8BitAccess,
  73029. storagePushConstant8,
  73030. shaderBufferInt64Atomics,
  73031. shaderSharedInt64Atomics,
  73032. shaderFloat16,
  73033. shaderInt8,
  73034. descriptorIndexing,
  73035. shaderInputAttachmentArrayDynamicIndexing,
  73036. shaderUniformTexelBufferArrayDynamicIndexing,
  73037. shaderStorageTexelBufferArrayDynamicIndexing,
  73038. shaderUniformBufferArrayNonUniformIndexing,
  73039. shaderSampledImageArrayNonUniformIndexing,
  73040. shaderStorageBufferArrayNonUniformIndexing,
  73041. shaderStorageImageArrayNonUniformIndexing,
  73042. shaderInputAttachmentArrayNonUniformIndexing,
  73043. shaderUniformTexelBufferArrayNonUniformIndexing,
  73044. shaderStorageTexelBufferArrayNonUniformIndexing,
  73045. descriptorBindingUniformBufferUpdateAfterBind,
  73046. descriptorBindingSampledImageUpdateAfterBind,
  73047. descriptorBindingStorageImageUpdateAfterBind,
  73048. descriptorBindingStorageBufferUpdateAfterBind,
  73049. descriptorBindingUniformTexelBufferUpdateAfterBind,
  73050. descriptorBindingStorageTexelBufferUpdateAfterBind,
  73051. descriptorBindingUpdateUnusedWhilePending,
  73052. descriptorBindingPartiallyBound,
  73053. descriptorBindingVariableDescriptorCount,
  73054. runtimeDescriptorArray,
  73055. samplerFilterMinmax,
  73056. scalarBlockLayout,
  73057. imagelessFramebuffer,
  73058. uniformBufferStandardLayout,
  73059. shaderSubgroupExtendedTypes,
  73060. separateDepthStencilLayouts,
  73061. hostQueryReset,
  73062. timelineSemaphore,
  73063. bufferDeviceAddress,
  73064. bufferDeviceAddressCaptureReplay,
  73065. bufferDeviceAddressMultiDevice,
  73066. vulkanMemoryModel,
  73067. vulkanMemoryModelDeviceScope,
  73068. vulkanMemoryModelAvailabilityVisibilityChains,
  73069. shaderOutputViewportIndex,
  73070. shaderOutputLayer,
  73071. subgroupBroadcastDynamicId );
  73072. }
  73073. #endif
  73074. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73075. auto operator<=>( PhysicalDeviceVulkan12Features const & ) const = default;
  73076. #else
  73077. bool operator==( PhysicalDeviceVulkan12Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  73078. {
  73079. # if defined( VULKAN_HPP_USE_REFLECT )
  73080. return this->reflect() == rhs.reflect();
  73081. # else
  73082. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge ) &&
  73083. ( drawIndirectCount == rhs.drawIndirectCount ) && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) &&
  73084. ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) && ( storagePushConstant8 == rhs.storagePushConstant8 ) &&
  73085. ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics ) &&
  73086. ( shaderFloat16 == rhs.shaderFloat16 ) && ( shaderInt8 == rhs.shaderInt8 ) && ( descriptorIndexing == rhs.descriptorIndexing ) &&
  73087. ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) &&
  73088. ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) &&
  73089. ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) &&
  73090. ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) &&
  73091. ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) &&
  73092. ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) &&
  73093. ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) &&
  73094. ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) &&
  73095. ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) &&
  73096. ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) &&
  73097. ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) &&
  73098. ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) &&
  73099. ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) &&
  73100. ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) &&
  73101. ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) &&
  73102. ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) &&
  73103. ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) &&
  73104. ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) &&
  73105. ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) &&
  73106. ( runtimeDescriptorArray == rhs.runtimeDescriptorArray ) && ( samplerFilterMinmax == rhs.samplerFilterMinmax ) &&
  73107. ( scalarBlockLayout == rhs.scalarBlockLayout ) && ( imagelessFramebuffer == rhs.imagelessFramebuffer ) &&
  73108. ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout ) && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes ) &&
  73109. ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts ) && ( hostQueryReset == rhs.hostQueryReset ) &&
  73110. ( timelineSemaphore == rhs.timelineSemaphore ) && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) &&
  73111. ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) &&
  73112. ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ) && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) &&
  73113. ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) &&
  73114. ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains ) &&
  73115. ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex ) && ( shaderOutputLayer == rhs.shaderOutputLayer ) &&
  73116. ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId );
  73117. # endif
  73118. }
  73119. bool operator!=( PhysicalDeviceVulkan12Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  73120. {
  73121. return !operator==( rhs );
  73122. }
  73123. #endif
  73124. public:
  73125. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features;
  73126. void * pNext = {};
  73127. VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {};
  73128. VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {};
  73129. VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {};
  73130. VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {};
  73131. VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {};
  73132. VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {};
  73133. VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {};
  73134. VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {};
  73135. VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {};
  73136. VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {};
  73137. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {};
  73138. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {};
  73139. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {};
  73140. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {};
  73141. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {};
  73142. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {};
  73143. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {};
  73144. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {};
  73145. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {};
  73146. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {};
  73147. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {};
  73148. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {};
  73149. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {};
  73150. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {};
  73151. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {};
  73152. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {};
  73153. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {};
  73154. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {};
  73155. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {};
  73156. VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {};
  73157. VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {};
  73158. VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {};
  73159. VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {};
  73160. VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {};
  73161. VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {};
  73162. VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {};
  73163. VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {};
  73164. VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {};
  73165. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {};
  73166. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {};
  73167. VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {};
  73168. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
  73169. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
  73170. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
  73171. VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {};
  73172. VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {};
  73173. VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {};
  73174. };
  73175. template <>
  73176. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Features>
  73177. {
  73178. using Type = PhysicalDeviceVulkan12Features;
  73179. };
  73180. struct PhysicalDeviceVulkan12Properties
  73181. {
  73182. using NativeType = VkPhysicalDeviceVulkan12Properties;
  73183. static const bool allowDuplicate = false;
  73184. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Properties;
  73185. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73186. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties(
  73187. VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary,
  73188. std::array<char, VK_MAX_DRIVER_NAME_SIZE> const & driverName_ = {},
  73189. std::array<char, VK_MAX_DRIVER_INFO_SIZE> const & driverInfo_ = {},
  73190. VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {},
  73191. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
  73192. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly,
  73193. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {},
  73194. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {},
  73195. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {},
  73196. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {},
  73197. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {},
  73198. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {},
  73199. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {},
  73200. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {},
  73201. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {},
  73202. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {},
  73203. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {},
  73204. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {},
  73205. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {},
  73206. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {},
  73207. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {},
  73208. uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {},
  73209. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {},
  73210. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {},
  73211. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {},
  73212. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {},
  73213. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {},
  73214. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {},
  73215. VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {},
  73216. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {},
  73217. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {},
  73218. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {},
  73219. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {},
  73220. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {},
  73221. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {},
  73222. uint32_t maxPerStageUpdateAfterBindResources_ = {},
  73223. uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {},
  73224. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {},
  73225. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {},
  73226. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {},
  73227. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {},
  73228. uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {},
  73229. uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {},
  73230. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {},
  73231. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {},
  73232. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {},
  73233. VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {},
  73234. VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {},
  73235. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {},
  73236. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {},
  73237. uint64_t maxTimelineSemaphoreValueDifference_ = {},
  73238. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts_ = {},
  73239. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  73240. : pNext( pNext_ )
  73241. , driverID( driverID_ )
  73242. , driverName( driverName_ )
  73243. , driverInfo( driverInfo_ )
  73244. , conformanceVersion( conformanceVersion_ )
  73245. , denormBehaviorIndependence( denormBehaviorIndependence_ )
  73246. , roundingModeIndependence( roundingModeIndependence_ )
  73247. , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ )
  73248. , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ )
  73249. , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ )
  73250. , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ )
  73251. , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ )
  73252. , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ )
  73253. , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ )
  73254. , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ )
  73255. , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ )
  73256. , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ )
  73257. , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ )
  73258. , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ )
  73259. , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ )
  73260. , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ )
  73261. , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ )
  73262. , maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ )
  73263. , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ )
  73264. , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ )
  73265. , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ )
  73266. , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ )
  73267. , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ )
  73268. , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ )
  73269. , quadDivergentImplicitLod( quadDivergentImplicitLod_ )
  73270. , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ )
  73271. , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ )
  73272. , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ )
  73273. , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ )
  73274. , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ )
  73275. , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ )
  73276. , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ )
  73277. , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ )
  73278. , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ )
  73279. , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ )
  73280. , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ )
  73281. , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ )
  73282. , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ )
  73283. , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ )
  73284. , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ )
  73285. , supportedDepthResolveModes( supportedDepthResolveModes_ )
  73286. , supportedStencilResolveModes( supportedStencilResolveModes_ )
  73287. , independentResolveNone( independentResolveNone_ )
  73288. , independentResolve( independentResolve_ )
  73289. , filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ )
  73290. , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ )
  73291. , maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ )
  73292. , framebufferIntegerColorSampleCounts( framebufferIntegerColorSampleCounts_ )
  73293. {
  73294. }
  73295. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73296. PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  73297. : PhysicalDeviceVulkan12Properties( *reinterpret_cast<PhysicalDeviceVulkan12Properties const *>( &rhs ) )
  73298. {
  73299. }
  73300. PhysicalDeviceVulkan12Properties & operator=( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73301. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73302. PhysicalDeviceVulkan12Properties & operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  73303. {
  73304. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties const *>( &rhs );
  73305. return *this;
  73306. }
  73307. operator VkPhysicalDeviceVulkan12Properties const &() const VULKAN_HPP_NOEXCEPT
  73308. {
  73309. return *reinterpret_cast<const VkPhysicalDeviceVulkan12Properties *>( this );
  73310. }
  73311. operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT
  73312. {
  73313. return *reinterpret_cast<VkPhysicalDeviceVulkan12Properties *>( this );
  73314. }
  73315. #if defined( VULKAN_HPP_USE_REFLECT )
  73316. # if 14 <= VULKAN_HPP_CPP_VERSION
  73317. auto
  73318. # else
  73319. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  73320. void * const &,
  73321. VULKAN_HPP_NAMESPACE::DriverId const &,
  73322. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> const &,
  73323. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> const &,
  73324. VULKAN_HPP_NAMESPACE::ConformanceVersion const &,
  73325. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &,
  73326. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence const &,
  73327. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73328. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73329. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73330. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73331. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73332. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73333. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73334. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73335. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73336. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73337. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73338. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73339. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73340. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73341. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73342. uint32_t const &,
  73343. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73344. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73345. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73346. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73347. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73348. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73349. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73350. uint32_t const &,
  73351. uint32_t const &,
  73352. uint32_t const &,
  73353. uint32_t const &,
  73354. uint32_t const &,
  73355. uint32_t const &,
  73356. uint32_t const &,
  73357. uint32_t const &,
  73358. uint32_t const &,
  73359. uint32_t const &,
  73360. uint32_t const &,
  73361. uint32_t const &,
  73362. uint32_t const &,
  73363. uint32_t const &,
  73364. uint32_t const &,
  73365. VULKAN_HPP_NAMESPACE::ResolveModeFlags const &,
  73366. VULKAN_HPP_NAMESPACE::ResolveModeFlags const &,
  73367. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73368. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73369. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73370. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73371. uint64_t const &,
  73372. VULKAN_HPP_NAMESPACE::SampleCountFlags const &>
  73373. # endif
  73374. reflect() const VULKAN_HPP_NOEXCEPT
  73375. {
  73376. return std::tie( sType,
  73377. pNext,
  73378. driverID,
  73379. driverName,
  73380. driverInfo,
  73381. conformanceVersion,
  73382. denormBehaviorIndependence,
  73383. roundingModeIndependence,
  73384. shaderSignedZeroInfNanPreserveFloat16,
  73385. shaderSignedZeroInfNanPreserveFloat32,
  73386. shaderSignedZeroInfNanPreserveFloat64,
  73387. shaderDenormPreserveFloat16,
  73388. shaderDenormPreserveFloat32,
  73389. shaderDenormPreserveFloat64,
  73390. shaderDenormFlushToZeroFloat16,
  73391. shaderDenormFlushToZeroFloat32,
  73392. shaderDenormFlushToZeroFloat64,
  73393. shaderRoundingModeRTEFloat16,
  73394. shaderRoundingModeRTEFloat32,
  73395. shaderRoundingModeRTEFloat64,
  73396. shaderRoundingModeRTZFloat16,
  73397. shaderRoundingModeRTZFloat32,
  73398. shaderRoundingModeRTZFloat64,
  73399. maxUpdateAfterBindDescriptorsInAllPools,
  73400. shaderUniformBufferArrayNonUniformIndexingNative,
  73401. shaderSampledImageArrayNonUniformIndexingNative,
  73402. shaderStorageBufferArrayNonUniformIndexingNative,
  73403. shaderStorageImageArrayNonUniformIndexingNative,
  73404. shaderInputAttachmentArrayNonUniformIndexingNative,
  73405. robustBufferAccessUpdateAfterBind,
  73406. quadDivergentImplicitLod,
  73407. maxPerStageDescriptorUpdateAfterBindSamplers,
  73408. maxPerStageDescriptorUpdateAfterBindUniformBuffers,
  73409. maxPerStageDescriptorUpdateAfterBindStorageBuffers,
  73410. maxPerStageDescriptorUpdateAfterBindSampledImages,
  73411. maxPerStageDescriptorUpdateAfterBindStorageImages,
  73412. maxPerStageDescriptorUpdateAfterBindInputAttachments,
  73413. maxPerStageUpdateAfterBindResources,
  73414. maxDescriptorSetUpdateAfterBindSamplers,
  73415. maxDescriptorSetUpdateAfterBindUniformBuffers,
  73416. maxDescriptorSetUpdateAfterBindUniformBuffersDynamic,
  73417. maxDescriptorSetUpdateAfterBindStorageBuffers,
  73418. maxDescriptorSetUpdateAfterBindStorageBuffersDynamic,
  73419. maxDescriptorSetUpdateAfterBindSampledImages,
  73420. maxDescriptorSetUpdateAfterBindStorageImages,
  73421. maxDescriptorSetUpdateAfterBindInputAttachments,
  73422. supportedDepthResolveModes,
  73423. supportedStencilResolveModes,
  73424. independentResolveNone,
  73425. independentResolve,
  73426. filterMinmaxSingleComponentFormats,
  73427. filterMinmaxImageComponentMapping,
  73428. maxTimelineSemaphoreValueDifference,
  73429. framebufferIntegerColorSampleCounts );
  73430. }
  73431. #endif
  73432. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73433. auto operator<=>( PhysicalDeviceVulkan12Properties const & ) const = default;
  73434. #else
  73435. bool operator==( PhysicalDeviceVulkan12Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  73436. {
  73437. # if defined( VULKAN_HPP_USE_REFLECT )
  73438. return this->reflect() == rhs.reflect();
  73439. # else
  73440. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( driverID == rhs.driverID ) && ( driverName == rhs.driverName ) &&
  73441. ( driverInfo == rhs.driverInfo ) && ( conformanceVersion == rhs.conformanceVersion ) &&
  73442. ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) && ( roundingModeIndependence == rhs.roundingModeIndependence ) &&
  73443. ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) &&
  73444. ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) &&
  73445. ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) &&
  73446. ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) &&
  73447. ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) &&
  73448. ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) &&
  73449. ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) &&
  73450. ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) &&
  73451. ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) &&
  73452. ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 ) &&
  73453. ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) &&
  73454. ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative ) &&
  73455. ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative ) &&
  73456. ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative ) &&
  73457. ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative ) &&
  73458. ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) &&
  73459. ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) &&
  73460. ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) &&
  73461. ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) &&
  73462. ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) &&
  73463. ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) &&
  73464. ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) &&
  73465. ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) &&
  73466. ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) &&
  73467. ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) &&
  73468. ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) &&
  73469. ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) &&
  73470. ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) &&
  73471. ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) &&
  73472. ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) &&
  73473. ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) &&
  73474. ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments ) &&
  73475. ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) &&
  73476. ( independentResolveNone == rhs.independentResolveNone ) && ( independentResolve == rhs.independentResolve ) &&
  73477. ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) &&
  73478. ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping ) &&
  73479. ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference ) &&
  73480. ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts );
  73481. # endif
  73482. }
  73483. bool operator!=( PhysicalDeviceVulkan12Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  73484. {
  73485. return !operator==( rhs );
  73486. }
  73487. #endif
  73488. public:
  73489. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties;
  73490. void * pNext = {};
  73491. VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary;
  73492. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_NAME_SIZE> driverName = {};
  73493. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DRIVER_INFO_SIZE> driverInfo = {};
  73494. VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {};
  73495. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
  73496. VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly;
  73497. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {};
  73498. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {};
  73499. VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {};
  73500. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {};
  73501. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {};
  73502. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {};
  73503. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {};
  73504. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {};
  73505. VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {};
  73506. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {};
  73507. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {};
  73508. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {};
  73509. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {};
  73510. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {};
  73511. VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {};
  73512. uint32_t maxUpdateAfterBindDescriptorsInAllPools = {};
  73513. VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {};
  73514. VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {};
  73515. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {};
  73516. VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {};
  73517. VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {};
  73518. VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {};
  73519. VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {};
  73520. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {};
  73521. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {};
  73522. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {};
  73523. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {};
  73524. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {};
  73525. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {};
  73526. uint32_t maxPerStageUpdateAfterBindResources = {};
  73527. uint32_t maxDescriptorSetUpdateAfterBindSamplers = {};
  73528. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {};
  73529. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {};
  73530. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {};
  73531. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {};
  73532. uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {};
  73533. uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {};
  73534. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {};
  73535. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {};
  73536. VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {};
  73537. VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {};
  73538. VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {};
  73539. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {};
  73540. VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {};
  73541. uint64_t maxTimelineSemaphoreValueDifference = {};
  73542. VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {};
  73543. };
  73544. template <>
  73545. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan12Properties>
  73546. {
  73547. using Type = PhysicalDeviceVulkan12Properties;
  73548. };
  73549. struct PhysicalDeviceVulkan13Features
  73550. {
  73551. using NativeType = VkPhysicalDeviceVulkan13Features;
  73552. static const bool allowDuplicate = false;
  73553. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan13Features;
  73554. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73555. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan13Features( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {},
  73556. VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {},
  73557. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {},
  73558. VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {},
  73559. VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {},
  73560. VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {},
  73561. VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {},
  73562. VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {},
  73563. VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {},
  73564. VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ = {},
  73565. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {},
  73566. VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ = {},
  73567. VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ = {},
  73568. VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ = {},
  73569. VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ = {},
  73570. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  73571. : pNext( pNext_ )
  73572. , robustImageAccess( robustImageAccess_ )
  73573. , inlineUniformBlock( inlineUniformBlock_ )
  73574. , descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
  73575. , pipelineCreationCacheControl( pipelineCreationCacheControl_ )
  73576. , privateData( privateData_ )
  73577. , shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
  73578. , shaderTerminateInvocation( shaderTerminateInvocation_ )
  73579. , subgroupSizeControl( subgroupSizeControl_ )
  73580. , computeFullSubgroups( computeFullSubgroups_ )
  73581. , synchronization2( synchronization2_ )
  73582. , textureCompressionASTC_HDR( textureCompressionASTC_HDR_ )
  73583. , shaderZeroInitializeWorkgroupMemory( shaderZeroInitializeWorkgroupMemory_ )
  73584. , dynamicRendering( dynamicRendering_ )
  73585. , shaderIntegerDotProduct( shaderIntegerDotProduct_ )
  73586. , maintenance4( maintenance4_ )
  73587. {
  73588. }
  73589. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan13Features( PhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73590. PhysicalDeviceVulkan13Features( VkPhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT
  73591. : PhysicalDeviceVulkan13Features( *reinterpret_cast<PhysicalDeviceVulkan13Features const *>( &rhs ) )
  73592. {
  73593. }
  73594. PhysicalDeviceVulkan13Features & operator=( PhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73595. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73596. PhysicalDeviceVulkan13Features & operator=( VkPhysicalDeviceVulkan13Features const & rhs ) VULKAN_HPP_NOEXCEPT
  73597. {
  73598. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features const *>( &rhs );
  73599. return *this;
  73600. }
  73601. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  73602. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  73603. {
  73604. pNext = pNext_;
  73605. return *this;
  73606. }
  73607. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT
  73608. {
  73609. robustImageAccess = robustImageAccess_;
  73610. return *this;
  73611. }
  73612. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT
  73613. {
  73614. inlineUniformBlock = inlineUniformBlock_;
  73615. return *this;
  73616. }
  73617. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setDescriptorBindingInlineUniformBlockUpdateAfterBind(
  73618. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT
  73619. {
  73620. descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
  73621. return *this;
  73622. }
  73623. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  73624. setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT
  73625. {
  73626. pipelineCreationCacheControl = pipelineCreationCacheControl_;
  73627. return *this;
  73628. }
  73629. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT
  73630. {
  73631. privateData = privateData_;
  73632. return *this;
  73633. }
  73634. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  73635. setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT
  73636. {
  73637. shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
  73638. return *this;
  73639. }
  73640. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  73641. setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT
  73642. {
  73643. shaderTerminateInvocation = shaderTerminateInvocation_;
  73644. return *this;
  73645. }
  73646. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT
  73647. {
  73648. subgroupSizeControl = subgroupSizeControl_;
  73649. return *this;
  73650. }
  73651. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT
  73652. {
  73653. computeFullSubgroups = computeFullSubgroups_;
  73654. return *this;
  73655. }
  73656. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setSynchronization2( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ ) VULKAN_HPP_NOEXCEPT
  73657. {
  73658. synchronization2 = synchronization2_;
  73659. return *this;
  73660. }
  73661. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  73662. setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT
  73663. {
  73664. textureCompressionASTC_HDR = textureCompressionASTC_HDR_;
  73665. return *this;
  73666. }
  73667. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  73668. setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT
  73669. {
  73670. shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_;
  73671. return *this;
  73672. }
  73673. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setDynamicRendering( VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering_ ) VULKAN_HPP_NOEXCEPT
  73674. {
  73675. dynamicRendering = dynamicRendering_;
  73676. return *this;
  73677. }
  73678. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features &
  73679. setShaderIntegerDotProduct( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct_ ) VULKAN_HPP_NOEXCEPT
  73680. {
  73681. shaderIntegerDotProduct = shaderIntegerDotProduct_;
  73682. return *this;
  73683. }
  73684. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan13Features & setMaintenance4( VULKAN_HPP_NAMESPACE::Bool32 maintenance4_ ) VULKAN_HPP_NOEXCEPT
  73685. {
  73686. maintenance4 = maintenance4_;
  73687. return *this;
  73688. }
  73689. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  73690. operator VkPhysicalDeviceVulkan13Features const &() const VULKAN_HPP_NOEXCEPT
  73691. {
  73692. return *reinterpret_cast<const VkPhysicalDeviceVulkan13Features *>( this );
  73693. }
  73694. operator VkPhysicalDeviceVulkan13Features &() VULKAN_HPP_NOEXCEPT
  73695. {
  73696. return *reinterpret_cast<VkPhysicalDeviceVulkan13Features *>( this );
  73697. }
  73698. #if defined( VULKAN_HPP_USE_REFLECT )
  73699. # if 14 <= VULKAN_HPP_CPP_VERSION
  73700. auto
  73701. # else
  73702. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  73703. void * const &,
  73704. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73705. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73706. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73707. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73708. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73709. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73710. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73711. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73712. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73713. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73714. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73715. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73716. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73717. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73718. VULKAN_HPP_NAMESPACE::Bool32 const &>
  73719. # endif
  73720. reflect() const VULKAN_HPP_NOEXCEPT
  73721. {
  73722. return std::tie( sType,
  73723. pNext,
  73724. robustImageAccess,
  73725. inlineUniformBlock,
  73726. descriptorBindingInlineUniformBlockUpdateAfterBind,
  73727. pipelineCreationCacheControl,
  73728. privateData,
  73729. shaderDemoteToHelperInvocation,
  73730. shaderTerminateInvocation,
  73731. subgroupSizeControl,
  73732. computeFullSubgroups,
  73733. synchronization2,
  73734. textureCompressionASTC_HDR,
  73735. shaderZeroInitializeWorkgroupMemory,
  73736. dynamicRendering,
  73737. shaderIntegerDotProduct,
  73738. maintenance4 );
  73739. }
  73740. #endif
  73741. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  73742. auto operator<=>( PhysicalDeviceVulkan13Features const & ) const = default;
  73743. #else
  73744. bool operator==( PhysicalDeviceVulkan13Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  73745. {
  73746. # if defined( VULKAN_HPP_USE_REFLECT )
  73747. return this->reflect() == rhs.reflect();
  73748. # else
  73749. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( robustImageAccess == rhs.robustImageAccess ) &&
  73750. ( inlineUniformBlock == rhs.inlineUniformBlock ) &&
  73751. ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind ) &&
  73752. ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl ) && ( privateData == rhs.privateData ) &&
  73753. ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation ) && ( shaderTerminateInvocation == rhs.shaderTerminateInvocation ) &&
  73754. ( subgroupSizeControl == rhs.subgroupSizeControl ) && ( computeFullSubgroups == rhs.computeFullSubgroups ) &&
  73755. ( synchronization2 == rhs.synchronization2 ) && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR ) &&
  73756. ( shaderZeroInitializeWorkgroupMemory == rhs.shaderZeroInitializeWorkgroupMemory ) && ( dynamicRendering == rhs.dynamicRendering ) &&
  73757. ( shaderIntegerDotProduct == rhs.shaderIntegerDotProduct ) && ( maintenance4 == rhs.maintenance4 );
  73758. # endif
  73759. }
  73760. bool operator!=( PhysicalDeviceVulkan13Features const & rhs ) const VULKAN_HPP_NOEXCEPT
  73761. {
  73762. return !operator==( rhs );
  73763. }
  73764. #endif
  73765. public:
  73766. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan13Features;
  73767. void * pNext = {};
  73768. VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {};
  73769. VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {};
  73770. VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {};
  73771. VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {};
  73772. VULKAN_HPP_NAMESPACE::Bool32 privateData = {};
  73773. VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {};
  73774. VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {};
  73775. VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {};
  73776. VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {};
  73777. VULKAN_HPP_NAMESPACE::Bool32 synchronization2 = {};
  73778. VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {};
  73779. VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory = {};
  73780. VULKAN_HPP_NAMESPACE::Bool32 dynamicRendering = {};
  73781. VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerDotProduct = {};
  73782. VULKAN_HPP_NAMESPACE::Bool32 maintenance4 = {};
  73783. };
  73784. template <>
  73785. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan13Features>
  73786. {
  73787. using Type = PhysicalDeviceVulkan13Features;
  73788. };
  73789. struct PhysicalDeviceVulkan13Properties
  73790. {
  73791. using NativeType = VkPhysicalDeviceVulkan13Properties;
  73792. static const bool allowDuplicate = false;
  73793. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan13Properties;
  73794. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  73795. VULKAN_HPP_CONSTEXPR
  73796. PhysicalDeviceVulkan13Properties( uint32_t minSubgroupSize_ = {},
  73797. uint32_t maxSubgroupSize_ = {},
  73798. uint32_t maxComputeWorkgroupSubgroups_ = {},
  73799. VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {},
  73800. uint32_t maxInlineUniformBlockSize_ = {},
  73801. uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {},
  73802. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {},
  73803. uint32_t maxDescriptorSetInlineUniformBlocks_ = {},
  73804. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {},
  73805. uint32_t maxInlineUniformTotalSize_ = {},
  73806. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated_ = {},
  73807. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated_ = {},
  73808. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated_ = {},
  73809. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated_ = {},
  73810. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated_ = {},
  73811. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated_ = {},
  73812. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated_ = {},
  73813. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated_ = {},
  73814. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated_ = {},
  73815. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated_ = {},
  73816. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated_ = {},
  73817. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated_ = {},
  73818. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated_ = {},
  73819. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated_ = {},
  73820. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated_ = {},
  73821. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ = {},
  73822. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated_ = {},
  73823. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ = {},
  73824. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ = {},
  73825. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ = {},
  73826. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ = {},
  73827. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ = {},
  73828. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated_ = {},
  73829. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ = {},
  73830. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ = {},
  73831. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated_ = {},
  73832. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ = {},
  73833. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ = {},
  73834. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated_ = {},
  73835. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ = {},
  73836. VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {},
  73837. VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {},
  73838. VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {},
  73839. VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {},
  73840. VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize_ = {},
  73841. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  73842. : pNext( pNext_ )
  73843. , minSubgroupSize( minSubgroupSize_ )
  73844. , maxSubgroupSize( maxSubgroupSize_ )
  73845. , maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ )
  73846. , requiredSubgroupSizeStages( requiredSubgroupSizeStages_ )
  73847. , maxInlineUniformBlockSize( maxInlineUniformBlockSize_ )
  73848. , maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ )
  73849. , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ )
  73850. , maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ )
  73851. , maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ )
  73852. , maxInlineUniformTotalSize( maxInlineUniformTotalSize_ )
  73853. , integerDotProduct8BitUnsignedAccelerated( integerDotProduct8BitUnsignedAccelerated_ )
  73854. , integerDotProduct8BitSignedAccelerated( integerDotProduct8BitSignedAccelerated_ )
  73855. , integerDotProduct8BitMixedSignednessAccelerated( integerDotProduct8BitMixedSignednessAccelerated_ )
  73856. , integerDotProduct4x8BitPackedUnsignedAccelerated( integerDotProduct4x8BitPackedUnsignedAccelerated_ )
  73857. , integerDotProduct4x8BitPackedSignedAccelerated( integerDotProduct4x8BitPackedSignedAccelerated_ )
  73858. , integerDotProduct4x8BitPackedMixedSignednessAccelerated( integerDotProduct4x8BitPackedMixedSignednessAccelerated_ )
  73859. , integerDotProduct16BitUnsignedAccelerated( integerDotProduct16BitUnsignedAccelerated_ )
  73860. , integerDotProduct16BitSignedAccelerated( integerDotProduct16BitSignedAccelerated_ )
  73861. , integerDotProduct16BitMixedSignednessAccelerated( integerDotProduct16BitMixedSignednessAccelerated_ )
  73862. , integerDotProduct32BitUnsignedAccelerated( integerDotProduct32BitUnsignedAccelerated_ )
  73863. , integerDotProduct32BitSignedAccelerated( integerDotProduct32BitSignedAccelerated_ )
  73864. , integerDotProduct32BitMixedSignednessAccelerated( integerDotProduct32BitMixedSignednessAccelerated_ )
  73865. , integerDotProduct64BitUnsignedAccelerated( integerDotProduct64BitUnsignedAccelerated_ )
  73866. , integerDotProduct64BitSignedAccelerated( integerDotProduct64BitSignedAccelerated_ )
  73867. , integerDotProduct64BitMixedSignednessAccelerated( integerDotProduct64BitMixedSignednessAccelerated_ )
  73868. , integerDotProductAccumulatingSaturating8BitUnsignedAccelerated( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated_ )
  73869. , integerDotProductAccumulatingSaturating8BitSignedAccelerated( integerDotProductAccumulatingSaturating8BitSignedAccelerated_ )
  73870. , integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated_ )
  73871. , integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated_ )
  73872. , integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated_ )
  73873. , integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated(
  73874. integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated_ )
  73875. , integerDotProductAccumulatingSaturating16BitUnsignedAccelerated( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated_ )
  73876. , integerDotProductAccumulatingSaturating16BitSignedAccelerated( integerDotProductAccumulatingSaturating16BitSignedAccelerated_ )
  73877. , integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated_ )
  73878. , integerDotProductAccumulatingSaturating32BitUnsignedAccelerated( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated_ )
  73879. , integerDotProductAccumulatingSaturating32BitSignedAccelerated( integerDotProductAccumulatingSaturating32BitSignedAccelerated_ )
  73880. , integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated_ )
  73881. , integerDotProductAccumulatingSaturating64BitUnsignedAccelerated( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated_ )
  73882. , integerDotProductAccumulatingSaturating64BitSignedAccelerated( integerDotProductAccumulatingSaturating64BitSignedAccelerated_ )
  73883. , integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated_ )
  73884. , storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ )
  73885. , storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ )
  73886. , uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ )
  73887. , uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ )
  73888. , maxBufferSize( maxBufferSize_ )
  73889. {
  73890. }
  73891. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan13Properties( PhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73892. PhysicalDeviceVulkan13Properties( VkPhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  73893. : PhysicalDeviceVulkan13Properties( *reinterpret_cast<PhysicalDeviceVulkan13Properties const *>( &rhs ) )
  73894. {
  73895. }
  73896. PhysicalDeviceVulkan13Properties & operator=( PhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  73897. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  73898. PhysicalDeviceVulkan13Properties & operator=( VkPhysicalDeviceVulkan13Properties const & rhs ) VULKAN_HPP_NOEXCEPT
  73899. {
  73900. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties const *>( &rhs );
  73901. return *this;
  73902. }
  73903. operator VkPhysicalDeviceVulkan13Properties const &() const VULKAN_HPP_NOEXCEPT
  73904. {
  73905. return *reinterpret_cast<const VkPhysicalDeviceVulkan13Properties *>( this );
  73906. }
  73907. operator VkPhysicalDeviceVulkan13Properties &() VULKAN_HPP_NOEXCEPT
  73908. {
  73909. return *reinterpret_cast<VkPhysicalDeviceVulkan13Properties *>( this );
  73910. }
  73911. #if defined( VULKAN_HPP_USE_REFLECT )
  73912. # if 14 <= VULKAN_HPP_CPP_VERSION
  73913. auto
  73914. # else
  73915. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  73916. void * const &,
  73917. uint32_t const &,
  73918. uint32_t const &,
  73919. uint32_t const &,
  73920. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  73921. uint32_t const &,
  73922. uint32_t const &,
  73923. uint32_t const &,
  73924. uint32_t const &,
  73925. uint32_t const &,
  73926. uint32_t const &,
  73927. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73928. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73929. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73930. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73931. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73932. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73933. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73934. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73935. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73936. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73937. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73938. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73939. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73940. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73941. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73942. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73943. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73944. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73945. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73946. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73947. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73948. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73949. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73950. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73951. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73952. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73953. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73954. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73955. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73956. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73957. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  73958. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73959. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  73960. VULKAN_HPP_NAMESPACE::Bool32 const &,
  73961. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  73962. # endif
  73963. reflect() const VULKAN_HPP_NOEXCEPT
  73964. {
  73965. return std::tie( sType,
  73966. pNext,
  73967. minSubgroupSize,
  73968. maxSubgroupSize,
  73969. maxComputeWorkgroupSubgroups,
  73970. requiredSubgroupSizeStages,
  73971. maxInlineUniformBlockSize,
  73972. maxPerStageDescriptorInlineUniformBlocks,
  73973. maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks,
  73974. maxDescriptorSetInlineUniformBlocks,
  73975. maxDescriptorSetUpdateAfterBindInlineUniformBlocks,
  73976. maxInlineUniformTotalSize,
  73977. integerDotProduct8BitUnsignedAccelerated,
  73978. integerDotProduct8BitSignedAccelerated,
  73979. integerDotProduct8BitMixedSignednessAccelerated,
  73980. integerDotProduct4x8BitPackedUnsignedAccelerated,
  73981. integerDotProduct4x8BitPackedSignedAccelerated,
  73982. integerDotProduct4x8BitPackedMixedSignednessAccelerated,
  73983. integerDotProduct16BitUnsignedAccelerated,
  73984. integerDotProduct16BitSignedAccelerated,
  73985. integerDotProduct16BitMixedSignednessAccelerated,
  73986. integerDotProduct32BitUnsignedAccelerated,
  73987. integerDotProduct32BitSignedAccelerated,
  73988. integerDotProduct32BitMixedSignednessAccelerated,
  73989. integerDotProduct64BitUnsignedAccelerated,
  73990. integerDotProduct64BitSignedAccelerated,
  73991. integerDotProduct64BitMixedSignednessAccelerated,
  73992. integerDotProductAccumulatingSaturating8BitUnsignedAccelerated,
  73993. integerDotProductAccumulatingSaturating8BitSignedAccelerated,
  73994. integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated,
  73995. integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated,
  73996. integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated,
  73997. integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated,
  73998. integerDotProductAccumulatingSaturating16BitUnsignedAccelerated,
  73999. integerDotProductAccumulatingSaturating16BitSignedAccelerated,
  74000. integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated,
  74001. integerDotProductAccumulatingSaturating32BitUnsignedAccelerated,
  74002. integerDotProductAccumulatingSaturating32BitSignedAccelerated,
  74003. integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated,
  74004. integerDotProductAccumulatingSaturating64BitUnsignedAccelerated,
  74005. integerDotProductAccumulatingSaturating64BitSignedAccelerated,
  74006. integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated,
  74007. storageTexelBufferOffsetAlignmentBytes,
  74008. storageTexelBufferOffsetSingleTexelAlignment,
  74009. uniformTexelBufferOffsetAlignmentBytes,
  74010. uniformTexelBufferOffsetSingleTexelAlignment,
  74011. maxBufferSize );
  74012. }
  74013. #endif
  74014. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74015. auto operator<=>( PhysicalDeviceVulkan13Properties const & ) const = default;
  74016. #else
  74017. bool operator==( PhysicalDeviceVulkan13Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  74018. {
  74019. # if defined( VULKAN_HPP_USE_REFLECT )
  74020. return this->reflect() == rhs.reflect();
  74021. # else
  74022. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minSubgroupSize == rhs.minSubgroupSize ) && ( maxSubgroupSize == rhs.maxSubgroupSize ) &&
  74023. ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups ) && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages ) &&
  74024. ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize ) &&
  74025. ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks ) &&
  74026. ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks ) &&
  74027. ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks ) &&
  74028. ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks ) &&
  74029. ( maxInlineUniformTotalSize == rhs.maxInlineUniformTotalSize ) &&
  74030. ( integerDotProduct8BitUnsignedAccelerated == rhs.integerDotProduct8BitUnsignedAccelerated ) &&
  74031. ( integerDotProduct8BitSignedAccelerated == rhs.integerDotProduct8BitSignedAccelerated ) &&
  74032. ( integerDotProduct8BitMixedSignednessAccelerated == rhs.integerDotProduct8BitMixedSignednessAccelerated ) &&
  74033. ( integerDotProduct4x8BitPackedUnsignedAccelerated == rhs.integerDotProduct4x8BitPackedUnsignedAccelerated ) &&
  74034. ( integerDotProduct4x8BitPackedSignedAccelerated == rhs.integerDotProduct4x8BitPackedSignedAccelerated ) &&
  74035. ( integerDotProduct4x8BitPackedMixedSignednessAccelerated == rhs.integerDotProduct4x8BitPackedMixedSignednessAccelerated ) &&
  74036. ( integerDotProduct16BitUnsignedAccelerated == rhs.integerDotProduct16BitUnsignedAccelerated ) &&
  74037. ( integerDotProduct16BitSignedAccelerated == rhs.integerDotProduct16BitSignedAccelerated ) &&
  74038. ( integerDotProduct16BitMixedSignednessAccelerated == rhs.integerDotProduct16BitMixedSignednessAccelerated ) &&
  74039. ( integerDotProduct32BitUnsignedAccelerated == rhs.integerDotProduct32BitUnsignedAccelerated ) &&
  74040. ( integerDotProduct32BitSignedAccelerated == rhs.integerDotProduct32BitSignedAccelerated ) &&
  74041. ( integerDotProduct32BitMixedSignednessAccelerated == rhs.integerDotProduct32BitMixedSignednessAccelerated ) &&
  74042. ( integerDotProduct64BitUnsignedAccelerated == rhs.integerDotProduct64BitUnsignedAccelerated ) &&
  74043. ( integerDotProduct64BitSignedAccelerated == rhs.integerDotProduct64BitSignedAccelerated ) &&
  74044. ( integerDotProduct64BitMixedSignednessAccelerated == rhs.integerDotProduct64BitMixedSignednessAccelerated ) &&
  74045. ( integerDotProductAccumulatingSaturating8BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated ) &&
  74046. ( integerDotProductAccumulatingSaturating8BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating8BitSignedAccelerated ) &&
  74047. ( integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated ==
  74048. rhs.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated ) &&
  74049. ( integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated ==
  74050. rhs.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated ) &&
  74051. ( integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated ==
  74052. rhs.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated ) &&
  74053. ( integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated ==
  74054. rhs.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated ) &&
  74055. ( integerDotProductAccumulatingSaturating16BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated ) &&
  74056. ( integerDotProductAccumulatingSaturating16BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating16BitSignedAccelerated ) &&
  74057. ( integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated ==
  74058. rhs.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated ) &&
  74059. ( integerDotProductAccumulatingSaturating32BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated ) &&
  74060. ( integerDotProductAccumulatingSaturating32BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating32BitSignedAccelerated ) &&
  74061. ( integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated ==
  74062. rhs.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated ) &&
  74063. ( integerDotProductAccumulatingSaturating64BitUnsignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated ) &&
  74064. ( integerDotProductAccumulatingSaturating64BitSignedAccelerated == rhs.integerDotProductAccumulatingSaturating64BitSignedAccelerated ) &&
  74065. ( integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated ==
  74066. rhs.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated ) &&
  74067. ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes ) &&
  74068. ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment ) &&
  74069. ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes ) &&
  74070. ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment ) && ( maxBufferSize == rhs.maxBufferSize );
  74071. # endif
  74072. }
  74073. bool operator!=( PhysicalDeviceVulkan13Properties const & rhs ) const VULKAN_HPP_NOEXCEPT
  74074. {
  74075. return !operator==( rhs );
  74076. }
  74077. #endif
  74078. public:
  74079. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan13Properties;
  74080. void * pNext = {};
  74081. uint32_t minSubgroupSize = {};
  74082. uint32_t maxSubgroupSize = {};
  74083. uint32_t maxComputeWorkgroupSubgroups = {};
  74084. VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {};
  74085. uint32_t maxInlineUniformBlockSize = {};
  74086. uint32_t maxPerStageDescriptorInlineUniformBlocks = {};
  74087. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {};
  74088. uint32_t maxDescriptorSetInlineUniformBlocks = {};
  74089. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {};
  74090. uint32_t maxInlineUniformTotalSize = {};
  74091. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitUnsignedAccelerated = {};
  74092. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitSignedAccelerated = {};
  74093. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct8BitMixedSignednessAccelerated = {};
  74094. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedUnsignedAccelerated = {};
  74095. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedSignedAccelerated = {};
  74096. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated = {};
  74097. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitUnsignedAccelerated = {};
  74098. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitSignedAccelerated = {};
  74099. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct16BitMixedSignednessAccelerated = {};
  74100. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitUnsignedAccelerated = {};
  74101. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitSignedAccelerated = {};
  74102. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct32BitMixedSignednessAccelerated = {};
  74103. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitUnsignedAccelerated = {};
  74104. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitSignedAccelerated = {};
  74105. VULKAN_HPP_NAMESPACE::Bool32 integerDotProduct64BitMixedSignednessAccelerated = {};
  74106. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = {};
  74107. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated = {};
  74108. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = {};
  74109. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = {};
  74110. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = {};
  74111. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = {};
  74112. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = {};
  74113. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated = {};
  74114. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = {};
  74115. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = {};
  74116. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated = {};
  74117. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = {};
  74118. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = {};
  74119. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated = {};
  74120. VULKAN_HPP_NAMESPACE::Bool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = {};
  74121. VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {};
  74122. VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {};
  74123. VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {};
  74124. VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {};
  74125. VULKAN_HPP_NAMESPACE::DeviceSize maxBufferSize = {};
  74126. };
  74127. template <>
  74128. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkan13Properties>
  74129. {
  74130. using Type = PhysicalDeviceVulkan13Properties;
  74131. };
  74132. struct PhysicalDeviceVulkanMemoryModelFeatures
  74133. {
  74134. using NativeType = VkPhysicalDeviceVulkanMemoryModelFeatures;
  74135. static const bool allowDuplicate = false;
  74136. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
  74137. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74138. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {},
  74139. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {},
  74140. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {},
  74141. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74142. : pNext( pNext_ )
  74143. , vulkanMemoryModel( vulkanMemoryModel_ )
  74144. , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ )
  74145. , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
  74146. {
  74147. }
  74148. VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74149. PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  74150. : PhysicalDeviceVulkanMemoryModelFeatures( *reinterpret_cast<PhysicalDeviceVulkanMemoryModelFeatures const *>( &rhs ) )
  74151. {
  74152. }
  74153. PhysicalDeviceVulkanMemoryModelFeatures & operator=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74154. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74155. PhysicalDeviceVulkanMemoryModelFeatures & operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  74156. {
  74157. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures const *>( &rhs );
  74158. return *this;
  74159. }
  74160. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74161. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74162. {
  74163. pNext = pNext_;
  74164. return *this;
  74165. }
  74166. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures &
  74167. setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT
  74168. {
  74169. vulkanMemoryModel = vulkanMemoryModel_;
  74170. return *this;
  74171. }
  74172. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures &
  74173. setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT
  74174. {
  74175. vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
  74176. return *this;
  74177. }
  74178. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures &
  74179. setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT
  74180. {
  74181. vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
  74182. return *this;
  74183. }
  74184. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74185. operator VkPhysicalDeviceVulkanMemoryModelFeatures const &() const VULKAN_HPP_NOEXCEPT
  74186. {
  74187. return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures *>( this );
  74188. }
  74189. operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT
  74190. {
  74191. return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures *>( this );
  74192. }
  74193. #if defined( VULKAN_HPP_USE_REFLECT )
  74194. # if 14 <= VULKAN_HPP_CPP_VERSION
  74195. auto
  74196. # else
  74197. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  74198. void * const &,
  74199. VULKAN_HPP_NAMESPACE::Bool32 const &,
  74200. VULKAN_HPP_NAMESPACE::Bool32 const &,
  74201. VULKAN_HPP_NAMESPACE::Bool32 const &>
  74202. # endif
  74203. reflect() const VULKAN_HPP_NOEXCEPT
  74204. {
  74205. return std::tie( sType, pNext, vulkanMemoryModel, vulkanMemoryModelDeviceScope, vulkanMemoryModelAvailabilityVisibilityChains );
  74206. }
  74207. #endif
  74208. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74209. auto operator<=>( PhysicalDeviceVulkanMemoryModelFeatures const & ) const = default;
  74210. #else
  74211. bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  74212. {
  74213. # if defined( VULKAN_HPP_USE_REFLECT )
  74214. return this->reflect() == rhs.reflect();
  74215. # else
  74216. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) &&
  74217. ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) &&
  74218. ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains );
  74219. # endif
  74220. }
  74221. bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  74222. {
  74223. return !operator==( rhs );
  74224. }
  74225. #endif
  74226. public:
  74227. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures;
  74228. void * pNext = {};
  74229. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {};
  74230. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {};
  74231. VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {};
  74232. };
  74233. template <>
  74234. struct CppType<StructureType, StructureType::ePhysicalDeviceVulkanMemoryModelFeatures>
  74235. {
  74236. using Type = PhysicalDeviceVulkanMemoryModelFeatures;
  74237. };
  74238. using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
  74239. struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
  74240. {
  74241. using NativeType = VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
  74242. static const bool allowDuplicate = false;
  74243. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
  74244. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74245. VULKAN_HPP_CONSTEXPR
  74246. PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ = {},
  74247. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ = {},
  74248. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ = {},
  74249. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ = {},
  74250. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74251. : pNext( pNext_ )
  74252. , workgroupMemoryExplicitLayout( workgroupMemoryExplicitLayout_ )
  74253. , workgroupMemoryExplicitLayoutScalarBlockLayout( workgroupMemoryExplicitLayoutScalarBlockLayout_ )
  74254. , workgroupMemoryExplicitLayout8BitAccess( workgroupMemoryExplicitLayout8BitAccess_ )
  74255. , workgroupMemoryExplicitLayout16BitAccess( workgroupMemoryExplicitLayout16BitAccess_ )
  74256. {
  74257. }
  74258. VULKAN_HPP_CONSTEXPR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs )
  74259. VULKAN_HPP_NOEXCEPT = default;
  74260. PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  74261. : PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( *reinterpret_cast<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const *>( &rhs ) )
  74262. {
  74263. }
  74264. PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  74265. operator=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74266. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74267. PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  74268. operator=( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  74269. {
  74270. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const *>( &rhs );
  74271. return *this;
  74272. }
  74273. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74274. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74275. {
  74276. pNext = pNext_;
  74277. return *this;
  74278. }
  74279. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  74280. setWorkgroupMemoryExplicitLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ ) VULKAN_HPP_NOEXCEPT
  74281. {
  74282. workgroupMemoryExplicitLayout = workgroupMemoryExplicitLayout_;
  74283. return *this;
  74284. }
  74285. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  74286. setWorkgroupMemoryExplicitLayoutScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT
  74287. {
  74288. workgroupMemoryExplicitLayoutScalarBlockLayout = workgroupMemoryExplicitLayoutScalarBlockLayout_;
  74289. return *this;
  74290. }
  74291. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  74292. setWorkgroupMemoryExplicitLayout8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ ) VULKAN_HPP_NOEXCEPT
  74293. {
  74294. workgroupMemoryExplicitLayout8BitAccess = workgroupMemoryExplicitLayout8BitAccess_;
  74295. return *this;
  74296. }
  74297. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &
  74298. setWorkgroupMemoryExplicitLayout16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ ) VULKAN_HPP_NOEXCEPT
  74299. {
  74300. workgroupMemoryExplicitLayout16BitAccess = workgroupMemoryExplicitLayout16BitAccess_;
  74301. return *this;
  74302. }
  74303. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74304. operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT
  74305. {
  74306. return *reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR *>( this );
  74307. }
  74308. operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &() VULKAN_HPP_NOEXCEPT
  74309. {
  74310. return *reinterpret_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR *>( this );
  74311. }
  74312. #if defined( VULKAN_HPP_USE_REFLECT )
  74313. # if 14 <= VULKAN_HPP_CPP_VERSION
  74314. auto
  74315. # else
  74316. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  74317. void * const &,
  74318. VULKAN_HPP_NAMESPACE::Bool32 const &,
  74319. VULKAN_HPP_NAMESPACE::Bool32 const &,
  74320. VULKAN_HPP_NAMESPACE::Bool32 const &,
  74321. VULKAN_HPP_NAMESPACE::Bool32 const &>
  74322. # endif
  74323. reflect() const VULKAN_HPP_NOEXCEPT
  74324. {
  74325. return std::tie( sType,
  74326. pNext,
  74327. workgroupMemoryExplicitLayout,
  74328. workgroupMemoryExplicitLayoutScalarBlockLayout,
  74329. workgroupMemoryExplicitLayout8BitAccess,
  74330. workgroupMemoryExplicitLayout16BitAccess );
  74331. }
  74332. #endif
  74333. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74334. auto operator<=>( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & ) const = default;
  74335. #else
  74336. bool operator==( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  74337. {
  74338. # if defined( VULKAN_HPP_USE_REFLECT )
  74339. return this->reflect() == rhs.reflect();
  74340. # else
  74341. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( workgroupMemoryExplicitLayout == rhs.workgroupMemoryExplicitLayout ) &&
  74342. ( workgroupMemoryExplicitLayoutScalarBlockLayout == rhs.workgroupMemoryExplicitLayoutScalarBlockLayout ) &&
  74343. ( workgroupMemoryExplicitLayout8BitAccess == rhs.workgroupMemoryExplicitLayout8BitAccess ) &&
  74344. ( workgroupMemoryExplicitLayout16BitAccess == rhs.workgroupMemoryExplicitLayout16BitAccess );
  74345. # endif
  74346. }
  74347. bool operator!=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  74348. {
  74349. return !operator==( rhs );
  74350. }
  74351. #endif
  74352. public:
  74353. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
  74354. void * pNext = {};
  74355. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout = {};
  74356. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout = {};
  74357. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess = {};
  74358. VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess = {};
  74359. };
  74360. template <>
  74361. struct CppType<StructureType, StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>
  74362. {
  74363. using Type = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
  74364. };
  74365. struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
  74366. {
  74367. using NativeType = VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
  74368. static const bool allowDuplicate = false;
  74369. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
  74370. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74371. VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats_ = {},
  74372. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74373. : pNext( pNext_ )
  74374. , ycbcr2plane444Formats( ycbcr2plane444Formats_ )
  74375. {
  74376. }
  74377. VULKAN_HPP_CONSTEXPR
  74378. PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74379. PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74380. : PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( *reinterpret_cast<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const *>( &rhs ) )
  74381. {
  74382. }
  74383. PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & operator=( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74384. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74385. PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & operator=( VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74386. {
  74387. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const *>( &rhs );
  74388. return *this;
  74389. }
  74390. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74391. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74392. {
  74393. pNext = pNext_;
  74394. return *this;
  74395. }
  74396. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT &
  74397. setYcbcr2plane444Formats( VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats_ ) VULKAN_HPP_NOEXCEPT
  74398. {
  74399. ycbcr2plane444Formats = ycbcr2plane444Formats_;
  74400. return *this;
  74401. }
  74402. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74403. operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  74404. {
  74405. return *reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *>( this );
  74406. }
  74407. operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  74408. {
  74409. return *reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *>( this );
  74410. }
  74411. #if defined( VULKAN_HPP_USE_REFLECT )
  74412. # if 14 <= VULKAN_HPP_CPP_VERSION
  74413. auto
  74414. # else
  74415. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  74416. # endif
  74417. reflect() const VULKAN_HPP_NOEXCEPT
  74418. {
  74419. return std::tie( sType, pNext, ycbcr2plane444Formats );
  74420. }
  74421. #endif
  74422. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74423. auto operator<=>( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & ) const = default;
  74424. #else
  74425. bool operator==( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74426. {
  74427. # if defined( VULKAN_HPP_USE_REFLECT )
  74428. return this->reflect() == rhs.reflect();
  74429. # else
  74430. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ycbcr2plane444Formats == rhs.ycbcr2plane444Formats );
  74431. # endif
  74432. }
  74433. bool operator!=( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74434. {
  74435. return !operator==( rhs );
  74436. }
  74437. #endif
  74438. public:
  74439. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
  74440. void * pNext = {};
  74441. VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats = {};
  74442. };
  74443. template <>
  74444. struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>
  74445. {
  74446. using Type = PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
  74447. };
  74448. struct PhysicalDeviceYcbcrDegammaFeaturesQCOM
  74449. {
  74450. using NativeType = VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
  74451. static const bool allowDuplicate = false;
  74452. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM;
  74453. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74454. VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrDegammaFeaturesQCOM( VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74455. : pNext( pNext_ )
  74456. , ycbcrDegamma( ycbcrDegamma_ )
  74457. {
  74458. }
  74459. VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrDegammaFeaturesQCOM( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74460. PhysicalDeviceYcbcrDegammaFeaturesQCOM( VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  74461. : PhysicalDeviceYcbcrDegammaFeaturesQCOM( *reinterpret_cast<PhysicalDeviceYcbcrDegammaFeaturesQCOM const *>( &rhs ) )
  74462. {
  74463. }
  74464. PhysicalDeviceYcbcrDegammaFeaturesQCOM & operator=( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74465. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74466. PhysicalDeviceYcbcrDegammaFeaturesQCOM & operator=( VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  74467. {
  74468. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM const *>( &rhs );
  74469. return *this;
  74470. }
  74471. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74472. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrDegammaFeaturesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74473. {
  74474. pNext = pNext_;
  74475. return *this;
  74476. }
  74477. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrDegammaFeaturesQCOM & setYcbcrDegamma( VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma_ ) VULKAN_HPP_NOEXCEPT
  74478. {
  74479. ycbcrDegamma = ycbcrDegamma_;
  74480. return *this;
  74481. }
  74482. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74483. operator VkPhysicalDeviceYcbcrDegammaFeaturesQCOM const &() const VULKAN_HPP_NOEXCEPT
  74484. {
  74485. return *reinterpret_cast<const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *>( this );
  74486. }
  74487. operator VkPhysicalDeviceYcbcrDegammaFeaturesQCOM &() VULKAN_HPP_NOEXCEPT
  74488. {
  74489. return *reinterpret_cast<VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *>( this );
  74490. }
  74491. #if defined( VULKAN_HPP_USE_REFLECT )
  74492. # if 14 <= VULKAN_HPP_CPP_VERSION
  74493. auto
  74494. # else
  74495. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  74496. # endif
  74497. reflect() const VULKAN_HPP_NOEXCEPT
  74498. {
  74499. return std::tie( sType, pNext, ycbcrDegamma );
  74500. }
  74501. #endif
  74502. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74503. auto operator<=>( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & ) const = default;
  74504. #else
  74505. bool operator==( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  74506. {
  74507. # if defined( VULKAN_HPP_USE_REFLECT )
  74508. return this->reflect() == rhs.reflect();
  74509. # else
  74510. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ycbcrDegamma == rhs.ycbcrDegamma );
  74511. # endif
  74512. }
  74513. bool operator!=( PhysicalDeviceYcbcrDegammaFeaturesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  74514. {
  74515. return !operator==( rhs );
  74516. }
  74517. #endif
  74518. public:
  74519. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM;
  74520. void * pNext = {};
  74521. VULKAN_HPP_NAMESPACE::Bool32 ycbcrDegamma = {};
  74522. };
  74523. template <>
  74524. struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcrDegammaFeaturesQCOM>
  74525. {
  74526. using Type = PhysicalDeviceYcbcrDegammaFeaturesQCOM;
  74527. };
  74528. struct PhysicalDeviceYcbcrImageArraysFeaturesEXT
  74529. {
  74530. using NativeType = VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
  74531. static const bool allowDuplicate = false;
  74532. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
  74533. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74534. VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {},
  74535. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74536. : pNext( pNext_ )
  74537. , ycbcrImageArrays( ycbcrImageArrays_ )
  74538. {
  74539. }
  74540. VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74541. PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74542. : PhysicalDeviceYcbcrImageArraysFeaturesEXT( *reinterpret_cast<PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>( &rhs ) )
  74543. {
  74544. }
  74545. PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74546. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74547. PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74548. {
  74549. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT const *>( &rhs );
  74550. return *this;
  74551. }
  74552. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74553. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74554. {
  74555. pNext = pNext_;
  74556. return *this;
  74557. }
  74558. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrImageArraysFeaturesEXT &
  74559. setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT
  74560. {
  74561. ycbcrImageArrays = ycbcrImageArrays_;
  74562. return *this;
  74563. }
  74564. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74565. operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  74566. {
  74567. return *reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *>( this );
  74568. }
  74569. operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  74570. {
  74571. return *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *>( this );
  74572. }
  74573. #if defined( VULKAN_HPP_USE_REFLECT )
  74574. # if 14 <= VULKAN_HPP_CPP_VERSION
  74575. auto
  74576. # else
  74577. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  74578. # endif
  74579. reflect() const VULKAN_HPP_NOEXCEPT
  74580. {
  74581. return std::tie( sType, pNext, ycbcrImageArrays );
  74582. }
  74583. #endif
  74584. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74585. auto operator<=>( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & ) const = default;
  74586. #else
  74587. bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74588. {
  74589. # if defined( VULKAN_HPP_USE_REFLECT )
  74590. return this->reflect() == rhs.reflect();
  74591. # else
  74592. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ycbcrImageArrays == rhs.ycbcrImageArrays );
  74593. # endif
  74594. }
  74595. bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  74596. {
  74597. return !operator==( rhs );
  74598. }
  74599. #endif
  74600. public:
  74601. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
  74602. void * pNext = {};
  74603. VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {};
  74604. };
  74605. template <>
  74606. struct CppType<StructureType, StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT>
  74607. {
  74608. using Type = PhysicalDeviceYcbcrImageArraysFeaturesEXT;
  74609. };
  74610. struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
  74611. {
  74612. using NativeType = VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
  74613. static const bool allowDuplicate = false;
  74614. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
  74615. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74616. VULKAN_HPP_CONSTEXPR PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ = {},
  74617. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74618. : pNext( pNext_ )
  74619. , shaderZeroInitializeWorkgroupMemory( shaderZeroInitializeWorkgroupMemory_ )
  74620. {
  74621. }
  74622. VULKAN_HPP_CONSTEXPR
  74623. PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74624. PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  74625. : PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures( *reinterpret_cast<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const *>( &rhs ) )
  74626. {
  74627. }
  74628. PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures &
  74629. operator=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74630. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74631. PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures & operator=( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT
  74632. {
  74633. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const *>( &rhs );
  74634. return *this;
  74635. }
  74636. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74637. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74638. {
  74639. pNext = pNext_;
  74640. return *this;
  74641. }
  74642. VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures &
  74643. setShaderZeroInitializeWorkgroupMemory( VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT
  74644. {
  74645. shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_;
  74646. return *this;
  74647. }
  74648. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74649. operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const &() const VULKAN_HPP_NOEXCEPT
  74650. {
  74651. return *reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *>( this );
  74652. }
  74653. operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures &() VULKAN_HPP_NOEXCEPT
  74654. {
  74655. return *reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *>( this );
  74656. }
  74657. #if defined( VULKAN_HPP_USE_REFLECT )
  74658. # if 14 <= VULKAN_HPP_CPP_VERSION
  74659. auto
  74660. # else
  74661. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  74662. # endif
  74663. reflect() const VULKAN_HPP_NOEXCEPT
  74664. {
  74665. return std::tie( sType, pNext, shaderZeroInitializeWorkgroupMemory );
  74666. }
  74667. #endif
  74668. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74669. auto operator<=>( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & ) const = default;
  74670. #else
  74671. bool operator==( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  74672. {
  74673. # if defined( VULKAN_HPP_USE_REFLECT )
  74674. return this->reflect() == rhs.reflect();
  74675. # else
  74676. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderZeroInitializeWorkgroupMemory == rhs.shaderZeroInitializeWorkgroupMemory );
  74677. # endif
  74678. }
  74679. bool operator!=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT
  74680. {
  74681. return !operator==( rhs );
  74682. }
  74683. #endif
  74684. public:
  74685. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
  74686. void * pNext = {};
  74687. VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory = {};
  74688. };
  74689. template <>
  74690. struct CppType<StructureType, StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>
  74691. {
  74692. using Type = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
  74693. };
  74694. using PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
  74695. struct PipelineCacheCreateInfo
  74696. {
  74697. using NativeType = VkPipelineCacheCreateInfo;
  74698. static const bool allowDuplicate = false;
  74699. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCacheCreateInfo;
  74700. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74701. VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {},
  74702. size_t initialDataSize_ = {},
  74703. const void * pInitialData_ = {},
  74704. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74705. : pNext( pNext_ )
  74706. , flags( flags_ )
  74707. , initialDataSize( initialDataSize_ )
  74708. , pInitialData( pInitialData_ )
  74709. {
  74710. }
  74711. VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74712. PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  74713. : PipelineCacheCreateInfo( *reinterpret_cast<PipelineCacheCreateInfo const *>( &rhs ) )
  74714. {
  74715. }
  74716. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  74717. template <typename T>
  74718. PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_,
  74719. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_,
  74720. const void * pNext_ = nullptr )
  74721. : pNext( pNext_ ), flags( flags_ ), initialDataSize( initialData_.size() * sizeof( T ) ), pInitialData( initialData_.data() )
  74722. {
  74723. }
  74724. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  74725. PipelineCacheCreateInfo & operator=( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74726. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74727. PipelineCacheCreateInfo & operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  74728. {
  74729. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const *>( &rhs );
  74730. return *this;
  74731. }
  74732. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74733. VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74734. {
  74735. pNext = pNext_;
  74736. return *this;
  74737. }
  74738. VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  74739. {
  74740. flags = flags_;
  74741. return *this;
  74742. }
  74743. VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
  74744. {
  74745. initialDataSize = initialDataSize_;
  74746. return *this;
  74747. }
  74748. VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & setPInitialData( const void * pInitialData_ ) VULKAN_HPP_NOEXCEPT
  74749. {
  74750. pInitialData = pInitialData_;
  74751. return *this;
  74752. }
  74753. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  74754. template <typename T>
  74755. PipelineCacheCreateInfo & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
  74756. {
  74757. initialDataSize = initialData_.size() * sizeof( T );
  74758. pInitialData = initialData_.data();
  74759. return *this;
  74760. }
  74761. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  74762. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74763. operator VkPipelineCacheCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  74764. {
  74765. return *reinterpret_cast<const VkPipelineCacheCreateInfo *>( this );
  74766. }
  74767. operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT
  74768. {
  74769. return *reinterpret_cast<VkPipelineCacheCreateInfo *>( this );
  74770. }
  74771. #if defined( VULKAN_HPP_USE_REFLECT )
  74772. # if 14 <= VULKAN_HPP_CPP_VERSION
  74773. auto
  74774. # else
  74775. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  74776. const void * const &,
  74777. VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags const &,
  74778. size_t const &,
  74779. const void * const &>
  74780. # endif
  74781. reflect() const VULKAN_HPP_NOEXCEPT
  74782. {
  74783. return std::tie( sType, pNext, flags, initialDataSize, pInitialData );
  74784. }
  74785. #endif
  74786. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74787. auto operator<=>( PipelineCacheCreateInfo const & ) const = default;
  74788. #else
  74789. bool operator==( PipelineCacheCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  74790. {
  74791. # if defined( VULKAN_HPP_USE_REFLECT )
  74792. return this->reflect() == rhs.reflect();
  74793. # else
  74794. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( initialDataSize == rhs.initialDataSize ) &&
  74795. ( pInitialData == rhs.pInitialData );
  74796. # endif
  74797. }
  74798. bool operator!=( PipelineCacheCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  74799. {
  74800. return !operator==( rhs );
  74801. }
  74802. #endif
  74803. public:
  74804. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo;
  74805. const void * pNext = {};
  74806. VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {};
  74807. size_t initialDataSize = {};
  74808. const void * pInitialData = {};
  74809. };
  74810. template <>
  74811. struct CppType<StructureType, StructureType::ePipelineCacheCreateInfo>
  74812. {
  74813. using Type = PipelineCacheCreateInfo;
  74814. };
  74815. struct PipelineCacheHeaderVersionOne
  74816. {
  74817. using NativeType = VkPipelineCacheHeaderVersionOne;
  74818. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74819. VULKAN_HPP_CONSTEXPR_14
  74820. PipelineCacheHeaderVersionOne( uint32_t headerSize_ = {},
  74821. VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion_ = VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion::eOne,
  74822. uint32_t vendorID_ = {},
  74823. uint32_t deviceID_ = {},
  74824. std::array<uint8_t, VK_UUID_SIZE> const & pipelineCacheUUID_ = {} ) VULKAN_HPP_NOEXCEPT
  74825. : headerSize( headerSize_ )
  74826. , headerVersion( headerVersion_ )
  74827. , vendorID( vendorID_ )
  74828. , deviceID( deviceID_ )
  74829. , pipelineCacheUUID( pipelineCacheUUID_ )
  74830. {
  74831. }
  74832. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne( PipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74833. PipelineCacheHeaderVersionOne( VkPipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT
  74834. : PipelineCacheHeaderVersionOne( *reinterpret_cast<PipelineCacheHeaderVersionOne const *>( &rhs ) )
  74835. {
  74836. }
  74837. PipelineCacheHeaderVersionOne & operator=( PipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74838. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74839. PipelineCacheHeaderVersionOne & operator=( VkPipelineCacheHeaderVersionOne const & rhs ) VULKAN_HPP_NOEXCEPT
  74840. {
  74841. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne const *>( &rhs );
  74842. return *this;
  74843. }
  74844. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74845. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setHeaderSize( uint32_t headerSize_ ) VULKAN_HPP_NOEXCEPT
  74846. {
  74847. headerSize = headerSize_;
  74848. return *this;
  74849. }
  74850. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne &
  74851. setHeaderVersion( VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion_ ) VULKAN_HPP_NOEXCEPT
  74852. {
  74853. headerVersion = headerVersion_;
  74854. return *this;
  74855. }
  74856. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setVendorID( uint32_t vendorID_ ) VULKAN_HPP_NOEXCEPT
  74857. {
  74858. vendorID = vendorID_;
  74859. return *this;
  74860. }
  74861. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setDeviceID( uint32_t deviceID_ ) VULKAN_HPP_NOEXCEPT
  74862. {
  74863. deviceID = deviceID_;
  74864. return *this;
  74865. }
  74866. VULKAN_HPP_CONSTEXPR_14 PipelineCacheHeaderVersionOne & setPipelineCacheUUID( std::array<uint8_t, VK_UUID_SIZE> pipelineCacheUUID_ ) VULKAN_HPP_NOEXCEPT
  74867. {
  74868. pipelineCacheUUID = pipelineCacheUUID_;
  74869. return *this;
  74870. }
  74871. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74872. operator VkPipelineCacheHeaderVersionOne const &() const VULKAN_HPP_NOEXCEPT
  74873. {
  74874. return *reinterpret_cast<const VkPipelineCacheHeaderVersionOne *>( this );
  74875. }
  74876. operator VkPipelineCacheHeaderVersionOne &() VULKAN_HPP_NOEXCEPT
  74877. {
  74878. return *reinterpret_cast<VkPipelineCacheHeaderVersionOne *>( this );
  74879. }
  74880. #if defined( VULKAN_HPP_USE_REFLECT )
  74881. # if 14 <= VULKAN_HPP_CPP_VERSION
  74882. auto
  74883. # else
  74884. std::tuple<uint32_t const &,
  74885. VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion const &,
  74886. uint32_t const &,
  74887. uint32_t const &,
  74888. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
  74889. # endif
  74890. reflect() const VULKAN_HPP_NOEXCEPT
  74891. {
  74892. return std::tie( headerSize, headerVersion, vendorID, deviceID, pipelineCacheUUID );
  74893. }
  74894. #endif
  74895. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74896. auto operator<=>( PipelineCacheHeaderVersionOne const & ) const = default;
  74897. #else
  74898. bool operator==( PipelineCacheHeaderVersionOne const & rhs ) const VULKAN_HPP_NOEXCEPT
  74899. {
  74900. # if defined( VULKAN_HPP_USE_REFLECT )
  74901. return this->reflect() == rhs.reflect();
  74902. # else
  74903. return ( headerSize == rhs.headerSize ) && ( headerVersion == rhs.headerVersion ) && ( vendorID == rhs.vendorID ) && ( deviceID == rhs.deviceID ) &&
  74904. ( pipelineCacheUUID == rhs.pipelineCacheUUID );
  74905. # endif
  74906. }
  74907. bool operator!=( PipelineCacheHeaderVersionOne const & rhs ) const VULKAN_HPP_NOEXCEPT
  74908. {
  74909. return !operator==( rhs );
  74910. }
  74911. #endif
  74912. public:
  74913. uint32_t headerSize = {};
  74914. VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion headerVersion = VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersion::eOne;
  74915. uint32_t vendorID = {};
  74916. uint32_t deviceID = {};
  74917. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineCacheUUID = {};
  74918. };
  74919. struct PipelineColorBlendAdvancedStateCreateInfoEXT
  74920. {
  74921. using NativeType = VkPipelineColorBlendAdvancedStateCreateInfoEXT;
  74922. static const bool allowDuplicate = false;
  74923. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
  74924. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  74925. VULKAN_HPP_CONSTEXPR
  74926. PipelineColorBlendAdvancedStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ = {},
  74927. VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {},
  74928. VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated,
  74929. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  74930. : pNext( pNext_ )
  74931. , srcPremultiplied( srcPremultiplied_ )
  74932. , dstPremultiplied( dstPremultiplied_ )
  74933. , blendOverlap( blendOverlap_ )
  74934. {
  74935. }
  74936. VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74937. PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74938. : PipelineColorBlendAdvancedStateCreateInfoEXT( *reinterpret_cast<PipelineColorBlendAdvancedStateCreateInfoEXT const *>( &rhs ) )
  74939. {
  74940. }
  74941. PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  74942. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  74943. PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  74944. {
  74945. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT const *>( &rhs );
  74946. return *this;
  74947. }
  74948. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  74949. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  74950. {
  74951. pNext = pNext_;
  74952. return *this;
  74953. }
  74954. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT &
  74955. setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT
  74956. {
  74957. srcPremultiplied = srcPremultiplied_;
  74958. return *this;
  74959. }
  74960. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT &
  74961. setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT
  74962. {
  74963. dstPremultiplied = dstPremultiplied_;
  74964. return *this;
  74965. }
  74966. VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT &
  74967. setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT
  74968. {
  74969. blendOverlap = blendOverlap_;
  74970. return *this;
  74971. }
  74972. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  74973. operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  74974. {
  74975. return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT *>( this );
  74976. }
  74977. operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  74978. {
  74979. return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT *>( this );
  74980. }
  74981. #if defined( VULKAN_HPP_USE_REFLECT )
  74982. # if 14 <= VULKAN_HPP_CPP_VERSION
  74983. auto
  74984. # else
  74985. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  74986. const void * const &,
  74987. VULKAN_HPP_NAMESPACE::Bool32 const &,
  74988. VULKAN_HPP_NAMESPACE::Bool32 const &,
  74989. VULKAN_HPP_NAMESPACE::BlendOverlapEXT const &>
  74990. # endif
  74991. reflect() const VULKAN_HPP_NOEXCEPT
  74992. {
  74993. return std::tie( sType, pNext, srcPremultiplied, dstPremultiplied, blendOverlap );
  74994. }
  74995. #endif
  74996. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  74997. auto operator<=>( PipelineColorBlendAdvancedStateCreateInfoEXT const & ) const = default;
  74998. #else
  74999. bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75000. {
  75001. # if defined( VULKAN_HPP_USE_REFLECT )
  75002. return this->reflect() == rhs.reflect();
  75003. # else
  75004. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcPremultiplied == rhs.srcPremultiplied ) && ( dstPremultiplied == rhs.dstPremultiplied ) &&
  75005. ( blendOverlap == rhs.blendOverlap );
  75006. # endif
  75007. }
  75008. bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75009. {
  75010. return !operator==( rhs );
  75011. }
  75012. #endif
  75013. public:
  75014. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
  75015. const void * pNext = {};
  75016. VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {};
  75017. VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {};
  75018. VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated;
  75019. };
  75020. template <>
  75021. struct CppType<StructureType, StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT>
  75022. {
  75023. using Type = PipelineColorBlendAdvancedStateCreateInfoEXT;
  75024. };
  75025. struct PipelineColorWriteCreateInfoEXT
  75026. {
  75027. using NativeType = VkPipelineColorWriteCreateInfoEXT;
  75028. static const bool allowDuplicate = false;
  75029. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorWriteCreateInfoEXT;
  75030. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75031. VULKAN_HPP_CONSTEXPR PipelineColorWriteCreateInfoEXT( uint32_t attachmentCount_ = {},
  75032. const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables_ = {},
  75033. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75034. : pNext( pNext_ )
  75035. , attachmentCount( attachmentCount_ )
  75036. , pColorWriteEnables( pColorWriteEnables_ )
  75037. {
  75038. }
  75039. VULKAN_HPP_CONSTEXPR PipelineColorWriteCreateInfoEXT( PipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75040. PipelineColorWriteCreateInfoEXT( VkPipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  75041. : PipelineColorWriteCreateInfoEXT( *reinterpret_cast<PipelineColorWriteCreateInfoEXT const *>( &rhs ) )
  75042. {
  75043. }
  75044. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75045. PipelineColorWriteCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables_,
  75046. const void * pNext_ = nullptr )
  75047. : pNext( pNext_ ), attachmentCount( static_cast<uint32_t>( colorWriteEnables_.size() ) ), pColorWriteEnables( colorWriteEnables_.data() )
  75048. {
  75049. }
  75050. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75051. PipelineColorWriteCreateInfoEXT & operator=( PipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75052. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75053. PipelineColorWriteCreateInfoEXT & operator=( VkPipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  75054. {
  75055. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT const *>( &rhs );
  75056. return *this;
  75057. }
  75058. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75059. VULKAN_HPP_CONSTEXPR_14 PipelineColorWriteCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75060. {
  75061. pNext = pNext_;
  75062. return *this;
  75063. }
  75064. VULKAN_HPP_CONSTEXPR_14 PipelineColorWriteCreateInfoEXT & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  75065. {
  75066. attachmentCount = attachmentCount_;
  75067. return *this;
  75068. }
  75069. VULKAN_HPP_CONSTEXPR_14 PipelineColorWriteCreateInfoEXT &
  75070. setPColorWriteEnables( const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables_ ) VULKAN_HPP_NOEXCEPT
  75071. {
  75072. pColorWriteEnables = pColorWriteEnables_;
  75073. return *this;
  75074. }
  75075. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75076. PipelineColorWriteCreateInfoEXT &
  75077. setColorWriteEnables( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables_ ) VULKAN_HPP_NOEXCEPT
  75078. {
  75079. attachmentCount = static_cast<uint32_t>( colorWriteEnables_.size() );
  75080. pColorWriteEnables = colorWriteEnables_.data();
  75081. return *this;
  75082. }
  75083. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75084. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75085. operator VkPipelineColorWriteCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  75086. {
  75087. return *reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT *>( this );
  75088. }
  75089. operator VkPipelineColorWriteCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  75090. {
  75091. return *reinterpret_cast<VkPipelineColorWriteCreateInfoEXT *>( this );
  75092. }
  75093. #if defined( VULKAN_HPP_USE_REFLECT )
  75094. # if 14 <= VULKAN_HPP_CPP_VERSION
  75095. auto
  75096. # else
  75097. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Bool32 * const &>
  75098. # endif
  75099. reflect() const VULKAN_HPP_NOEXCEPT
  75100. {
  75101. return std::tie( sType, pNext, attachmentCount, pColorWriteEnables );
  75102. }
  75103. #endif
  75104. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75105. auto operator<=>( PipelineColorWriteCreateInfoEXT const & ) const = default;
  75106. #else
  75107. bool operator==( PipelineColorWriteCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75108. {
  75109. # if defined( VULKAN_HPP_USE_REFLECT )
  75110. return this->reflect() == rhs.reflect();
  75111. # else
  75112. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentCount == rhs.attachmentCount ) && ( pColorWriteEnables == rhs.pColorWriteEnables );
  75113. # endif
  75114. }
  75115. bool operator!=( PipelineColorWriteCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75116. {
  75117. return !operator==( rhs );
  75118. }
  75119. #endif
  75120. public:
  75121. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorWriteCreateInfoEXT;
  75122. const void * pNext = {};
  75123. uint32_t attachmentCount = {};
  75124. const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables = {};
  75125. };
  75126. template <>
  75127. struct CppType<StructureType, StructureType::ePipelineColorWriteCreateInfoEXT>
  75128. {
  75129. using Type = PipelineColorWriteCreateInfoEXT;
  75130. };
  75131. struct PipelineCompilerControlCreateInfoAMD
  75132. {
  75133. using NativeType = VkPipelineCompilerControlCreateInfoAMD;
  75134. static const bool allowDuplicate = false;
  75135. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCompilerControlCreateInfoAMD;
  75136. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75137. VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {},
  75138. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75139. : pNext( pNext_ )
  75140. , compilerControlFlags( compilerControlFlags_ )
  75141. {
  75142. }
  75143. VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75144. PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  75145. : PipelineCompilerControlCreateInfoAMD( *reinterpret_cast<PipelineCompilerControlCreateInfoAMD const *>( &rhs ) )
  75146. {
  75147. }
  75148. PipelineCompilerControlCreateInfoAMD & operator=( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75149. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75150. PipelineCompilerControlCreateInfoAMD & operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  75151. {
  75152. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD const *>( &rhs );
  75153. return *this;
  75154. }
  75155. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75156. VULKAN_HPP_CONSTEXPR_14 PipelineCompilerControlCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75157. {
  75158. pNext = pNext_;
  75159. return *this;
  75160. }
  75161. VULKAN_HPP_CONSTEXPR_14 PipelineCompilerControlCreateInfoAMD &
  75162. setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT
  75163. {
  75164. compilerControlFlags = compilerControlFlags_;
  75165. return *this;
  75166. }
  75167. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75168. operator VkPipelineCompilerControlCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
  75169. {
  75170. return *reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD *>( this );
  75171. }
  75172. operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
  75173. {
  75174. return *reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD *>( this );
  75175. }
  75176. #if defined( VULKAN_HPP_USE_REFLECT )
  75177. # if 14 <= VULKAN_HPP_CPP_VERSION
  75178. auto
  75179. # else
  75180. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD const &>
  75181. # endif
  75182. reflect() const VULKAN_HPP_NOEXCEPT
  75183. {
  75184. return std::tie( sType, pNext, compilerControlFlags );
  75185. }
  75186. #endif
  75187. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75188. auto operator<=>( PipelineCompilerControlCreateInfoAMD const & ) const = default;
  75189. #else
  75190. bool operator==( PipelineCompilerControlCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  75191. {
  75192. # if defined( VULKAN_HPP_USE_REFLECT )
  75193. return this->reflect() == rhs.reflect();
  75194. # else
  75195. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( compilerControlFlags == rhs.compilerControlFlags );
  75196. # endif
  75197. }
  75198. bool operator!=( PipelineCompilerControlCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  75199. {
  75200. return !operator==( rhs );
  75201. }
  75202. #endif
  75203. public:
  75204. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD;
  75205. const void * pNext = {};
  75206. VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {};
  75207. };
  75208. template <>
  75209. struct CppType<StructureType, StructureType::ePipelineCompilerControlCreateInfoAMD>
  75210. {
  75211. using Type = PipelineCompilerControlCreateInfoAMD;
  75212. };
  75213. struct PipelineCoverageModulationStateCreateInfoNV
  75214. {
  75215. using NativeType = VkPipelineCoverageModulationStateCreateInfoNV;
  75216. static const bool allowDuplicate = false;
  75217. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
  75218. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75219. VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV(
  75220. VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ = {},
  75221. VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone,
  75222. VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ = {},
  75223. uint32_t coverageModulationTableCount_ = {},
  75224. const float * pCoverageModulationTable_ = {},
  75225. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75226. : pNext( pNext_ )
  75227. , flags( flags_ )
  75228. , coverageModulationMode( coverageModulationMode_ )
  75229. , coverageModulationTableEnable( coverageModulationTableEnable_ )
  75230. , coverageModulationTableCount( coverageModulationTableCount_ )
  75231. , pCoverageModulationTable( pCoverageModulationTable_ )
  75232. {
  75233. }
  75234. VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75235. PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  75236. : PipelineCoverageModulationStateCreateInfoNV( *reinterpret_cast<PipelineCoverageModulationStateCreateInfoNV const *>( &rhs ) )
  75237. {
  75238. }
  75239. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75240. PipelineCoverageModulationStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_,
  75241. VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_,
  75242. VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_,
  75243. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_,
  75244. const void * pNext_ = nullptr )
  75245. : pNext( pNext_ )
  75246. , flags( flags_ )
  75247. , coverageModulationMode( coverageModulationMode_ )
  75248. , coverageModulationTableEnable( coverageModulationTableEnable_ )
  75249. , coverageModulationTableCount( static_cast<uint32_t>( coverageModulationTable_.size() ) )
  75250. , pCoverageModulationTable( coverageModulationTable_.data() )
  75251. {
  75252. }
  75253. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75254. PipelineCoverageModulationStateCreateInfoNV & operator=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75255. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75256. PipelineCoverageModulationStateCreateInfoNV & operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  75257. {
  75258. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV const *>( &rhs );
  75259. return *this;
  75260. }
  75261. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75262. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75263. {
  75264. pNext = pNext_;
  75265. return *this;
  75266. }
  75267. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
  75268. setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  75269. {
  75270. flags = flags_;
  75271. return *this;
  75272. }
  75273. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
  75274. setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT
  75275. {
  75276. coverageModulationMode = coverageModulationMode_;
  75277. return *this;
  75278. }
  75279. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
  75280. setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT
  75281. {
  75282. coverageModulationTableEnable = coverageModulationTableEnable_;
  75283. return *this;
  75284. }
  75285. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
  75286. setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT
  75287. {
  75288. coverageModulationTableCount = coverageModulationTableCount_;
  75289. return *this;
  75290. }
  75291. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV &
  75292. setPCoverageModulationTable( const float * pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
  75293. {
  75294. pCoverageModulationTable = pCoverageModulationTable_;
  75295. return *this;
  75296. }
  75297. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75298. PipelineCoverageModulationStateCreateInfoNV &
  75299. setCoverageModulationTable( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const float> const & coverageModulationTable_ ) VULKAN_HPP_NOEXCEPT
  75300. {
  75301. coverageModulationTableCount = static_cast<uint32_t>( coverageModulationTable_.size() );
  75302. pCoverageModulationTable = coverageModulationTable_.data();
  75303. return *this;
  75304. }
  75305. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75306. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75307. operator VkPipelineCoverageModulationStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  75308. {
  75309. return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV *>( this );
  75310. }
  75311. operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  75312. {
  75313. return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV *>( this );
  75314. }
  75315. #if defined( VULKAN_HPP_USE_REFLECT )
  75316. # if 14 <= VULKAN_HPP_CPP_VERSION
  75317. auto
  75318. # else
  75319. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  75320. const void * const &,
  75321. VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV const &,
  75322. VULKAN_HPP_NAMESPACE::CoverageModulationModeNV const &,
  75323. VULKAN_HPP_NAMESPACE::Bool32 const &,
  75324. uint32_t const &,
  75325. const float * const &>
  75326. # endif
  75327. reflect() const VULKAN_HPP_NOEXCEPT
  75328. {
  75329. return std::tie( sType, pNext, flags, coverageModulationMode, coverageModulationTableEnable, coverageModulationTableCount, pCoverageModulationTable );
  75330. }
  75331. #endif
  75332. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75333. auto operator<=>( PipelineCoverageModulationStateCreateInfoNV const & ) const = default;
  75334. #else
  75335. bool operator==( PipelineCoverageModulationStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  75336. {
  75337. # if defined( VULKAN_HPP_USE_REFLECT )
  75338. return this->reflect() == rhs.reflect();
  75339. # else
  75340. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( coverageModulationMode == rhs.coverageModulationMode ) &&
  75341. ( coverageModulationTableEnable == rhs.coverageModulationTableEnable ) && ( coverageModulationTableCount == rhs.coverageModulationTableCount ) &&
  75342. ( pCoverageModulationTable == rhs.pCoverageModulationTable );
  75343. # endif
  75344. }
  75345. bool operator!=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  75346. {
  75347. return !operator==( rhs );
  75348. }
  75349. #endif
  75350. public:
  75351. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
  75352. const void * pNext = {};
  75353. VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {};
  75354. VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone;
  75355. VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {};
  75356. uint32_t coverageModulationTableCount = {};
  75357. const float * pCoverageModulationTable = {};
  75358. };
  75359. template <>
  75360. struct CppType<StructureType, StructureType::ePipelineCoverageModulationStateCreateInfoNV>
  75361. {
  75362. using Type = PipelineCoverageModulationStateCreateInfoNV;
  75363. };
  75364. struct PipelineCoverageReductionStateCreateInfoNV
  75365. {
  75366. using NativeType = VkPipelineCoverageReductionStateCreateInfoNV;
  75367. static const bool allowDuplicate = false;
  75368. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
  75369. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75370. VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV(
  75371. VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {},
  75372. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge,
  75373. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75374. : pNext( pNext_ )
  75375. , flags( flags_ )
  75376. , coverageReductionMode( coverageReductionMode_ )
  75377. {
  75378. }
  75379. VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75380. PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  75381. : PipelineCoverageReductionStateCreateInfoNV( *reinterpret_cast<PipelineCoverageReductionStateCreateInfoNV const *>( &rhs ) )
  75382. {
  75383. }
  75384. PipelineCoverageReductionStateCreateInfoNV & operator=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75385. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75386. PipelineCoverageReductionStateCreateInfoNV & operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  75387. {
  75388. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV const *>( &rhs );
  75389. return *this;
  75390. }
  75391. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75392. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75393. {
  75394. pNext = pNext_;
  75395. return *this;
  75396. }
  75397. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV &
  75398. setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  75399. {
  75400. flags = flags_;
  75401. return *this;
  75402. }
  75403. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV &
  75404. setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT
  75405. {
  75406. coverageReductionMode = coverageReductionMode_;
  75407. return *this;
  75408. }
  75409. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75410. operator VkPipelineCoverageReductionStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  75411. {
  75412. return *reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV *>( this );
  75413. }
  75414. operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  75415. {
  75416. return *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV *>( this );
  75417. }
  75418. #if defined( VULKAN_HPP_USE_REFLECT )
  75419. # if 14 <= VULKAN_HPP_CPP_VERSION
  75420. auto
  75421. # else
  75422. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  75423. const void * const &,
  75424. VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV const &,
  75425. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV const &>
  75426. # endif
  75427. reflect() const VULKAN_HPP_NOEXCEPT
  75428. {
  75429. return std::tie( sType, pNext, flags, coverageReductionMode );
  75430. }
  75431. #endif
  75432. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75433. auto operator<=>( PipelineCoverageReductionStateCreateInfoNV const & ) const = default;
  75434. #else
  75435. bool operator==( PipelineCoverageReductionStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  75436. {
  75437. # if defined( VULKAN_HPP_USE_REFLECT )
  75438. return this->reflect() == rhs.reflect();
  75439. # else
  75440. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( coverageReductionMode == rhs.coverageReductionMode );
  75441. # endif
  75442. }
  75443. bool operator!=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  75444. {
  75445. return !operator==( rhs );
  75446. }
  75447. #endif
  75448. public:
  75449. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
  75450. const void * pNext = {};
  75451. VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {};
  75452. VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge;
  75453. };
  75454. template <>
  75455. struct CppType<StructureType, StructureType::ePipelineCoverageReductionStateCreateInfoNV>
  75456. {
  75457. using Type = PipelineCoverageReductionStateCreateInfoNV;
  75458. };
  75459. struct PipelineCoverageToColorStateCreateInfoNV
  75460. {
  75461. using NativeType = VkPipelineCoverageToColorStateCreateInfoNV;
  75462. static const bool allowDuplicate = false;
  75463. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
  75464. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75465. VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {},
  75466. VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {},
  75467. uint32_t coverageToColorLocation_ = {},
  75468. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75469. : pNext( pNext_ )
  75470. , flags( flags_ )
  75471. , coverageToColorEnable( coverageToColorEnable_ )
  75472. , coverageToColorLocation( coverageToColorLocation_ )
  75473. {
  75474. }
  75475. VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75476. PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  75477. : PipelineCoverageToColorStateCreateInfoNV( *reinterpret_cast<PipelineCoverageToColorStateCreateInfoNV const *>( &rhs ) )
  75478. {
  75479. }
  75480. PipelineCoverageToColorStateCreateInfoNV & operator=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75481. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75482. PipelineCoverageToColorStateCreateInfoNV & operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  75483. {
  75484. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV const *>( &rhs );
  75485. return *this;
  75486. }
  75487. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75488. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75489. {
  75490. pNext = pNext_;
  75491. return *this;
  75492. }
  75493. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV &
  75494. setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  75495. {
  75496. flags = flags_;
  75497. return *this;
  75498. }
  75499. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV &
  75500. setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT
  75501. {
  75502. coverageToColorEnable = coverageToColorEnable_;
  75503. return *this;
  75504. }
  75505. VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT
  75506. {
  75507. coverageToColorLocation = coverageToColorLocation_;
  75508. return *this;
  75509. }
  75510. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75511. operator VkPipelineCoverageToColorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  75512. {
  75513. return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV *>( this );
  75514. }
  75515. operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  75516. {
  75517. return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV *>( this );
  75518. }
  75519. #if defined( VULKAN_HPP_USE_REFLECT )
  75520. # if 14 <= VULKAN_HPP_CPP_VERSION
  75521. auto
  75522. # else
  75523. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  75524. const void * const &,
  75525. VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV const &,
  75526. VULKAN_HPP_NAMESPACE::Bool32 const &,
  75527. uint32_t const &>
  75528. # endif
  75529. reflect() const VULKAN_HPP_NOEXCEPT
  75530. {
  75531. return std::tie( sType, pNext, flags, coverageToColorEnable, coverageToColorLocation );
  75532. }
  75533. #endif
  75534. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75535. auto operator<=>( PipelineCoverageToColorStateCreateInfoNV const & ) const = default;
  75536. #else
  75537. bool operator==( PipelineCoverageToColorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  75538. {
  75539. # if defined( VULKAN_HPP_USE_REFLECT )
  75540. return this->reflect() == rhs.reflect();
  75541. # else
  75542. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( coverageToColorEnable == rhs.coverageToColorEnable ) &&
  75543. ( coverageToColorLocation == rhs.coverageToColorLocation );
  75544. # endif
  75545. }
  75546. bool operator!=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  75547. {
  75548. return !operator==( rhs );
  75549. }
  75550. #endif
  75551. public:
  75552. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
  75553. const void * pNext = {};
  75554. VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {};
  75555. VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {};
  75556. uint32_t coverageToColorLocation = {};
  75557. };
  75558. template <>
  75559. struct CppType<StructureType, StructureType::ePipelineCoverageToColorStateCreateInfoNV>
  75560. {
  75561. using Type = PipelineCoverageToColorStateCreateInfoNV;
  75562. };
  75563. struct PipelineCreateFlags2CreateInfoKHR
  75564. {
  75565. using NativeType = VkPipelineCreateFlags2CreateInfoKHR;
  75566. static const bool allowDuplicate = false;
  75567. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreateFlags2CreateInfoKHR;
  75568. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75569. VULKAN_HPP_CONSTEXPR PipelineCreateFlags2CreateInfoKHR( VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR flags_ = {},
  75570. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75571. : pNext( pNext_ )
  75572. , flags( flags_ )
  75573. {
  75574. }
  75575. VULKAN_HPP_CONSTEXPR PipelineCreateFlags2CreateInfoKHR( PipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75576. PipelineCreateFlags2CreateInfoKHR( VkPipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  75577. : PipelineCreateFlags2CreateInfoKHR( *reinterpret_cast<PipelineCreateFlags2CreateInfoKHR const *>( &rhs ) )
  75578. {
  75579. }
  75580. PipelineCreateFlags2CreateInfoKHR & operator=( PipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75581. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75582. PipelineCreateFlags2CreateInfoKHR & operator=( VkPipelineCreateFlags2CreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  75583. {
  75584. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR const *>( &rhs );
  75585. return *this;
  75586. }
  75587. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75588. VULKAN_HPP_CONSTEXPR_14 PipelineCreateFlags2CreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75589. {
  75590. pNext = pNext_;
  75591. return *this;
  75592. }
  75593. VULKAN_HPP_CONSTEXPR_14 PipelineCreateFlags2CreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR flags_ ) VULKAN_HPP_NOEXCEPT
  75594. {
  75595. flags = flags_;
  75596. return *this;
  75597. }
  75598. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75599. operator VkPipelineCreateFlags2CreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  75600. {
  75601. return *reinterpret_cast<const VkPipelineCreateFlags2CreateInfoKHR *>( this );
  75602. }
  75603. operator VkPipelineCreateFlags2CreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  75604. {
  75605. return *reinterpret_cast<VkPipelineCreateFlags2CreateInfoKHR *>( this );
  75606. }
  75607. #if defined( VULKAN_HPP_USE_REFLECT )
  75608. # if 14 <= VULKAN_HPP_CPP_VERSION
  75609. auto
  75610. # else
  75611. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR const &>
  75612. # endif
  75613. reflect() const VULKAN_HPP_NOEXCEPT
  75614. {
  75615. return std::tie( sType, pNext, flags );
  75616. }
  75617. #endif
  75618. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75619. auto operator<=>( PipelineCreateFlags2CreateInfoKHR const & ) const = default;
  75620. #else
  75621. bool operator==( PipelineCreateFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  75622. {
  75623. # if defined( VULKAN_HPP_USE_REFLECT )
  75624. return this->reflect() == rhs.reflect();
  75625. # else
  75626. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  75627. # endif
  75628. }
  75629. bool operator!=( PipelineCreateFlags2CreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  75630. {
  75631. return !operator==( rhs );
  75632. }
  75633. #endif
  75634. public:
  75635. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreateFlags2CreateInfoKHR;
  75636. const void * pNext = {};
  75637. VULKAN_HPP_NAMESPACE::PipelineCreateFlags2KHR flags = {};
  75638. };
  75639. template <>
  75640. struct CppType<StructureType, StructureType::ePipelineCreateFlags2CreateInfoKHR>
  75641. {
  75642. using Type = PipelineCreateFlags2CreateInfoKHR;
  75643. };
  75644. struct PipelineCreationFeedback
  75645. {
  75646. using NativeType = VkPipelineCreationFeedback;
  75647. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75648. VULKAN_HPP_CONSTEXPR PipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags flags_ = {},
  75649. uint64_t duration_ = {} ) VULKAN_HPP_NOEXCEPT
  75650. : flags( flags_ )
  75651. , duration( duration_ )
  75652. {
  75653. }
  75654. VULKAN_HPP_CONSTEXPR PipelineCreationFeedback( PipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75655. PipelineCreationFeedback( VkPipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT
  75656. : PipelineCreationFeedback( *reinterpret_cast<PipelineCreationFeedback const *>( &rhs ) )
  75657. {
  75658. }
  75659. PipelineCreationFeedback & operator=( PipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75660. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75661. PipelineCreationFeedback & operator=( VkPipelineCreationFeedback const & rhs ) VULKAN_HPP_NOEXCEPT
  75662. {
  75663. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback const *>( &rhs );
  75664. return *this;
  75665. }
  75666. operator VkPipelineCreationFeedback const &() const VULKAN_HPP_NOEXCEPT
  75667. {
  75668. return *reinterpret_cast<const VkPipelineCreationFeedback *>( this );
  75669. }
  75670. operator VkPipelineCreationFeedback &() VULKAN_HPP_NOEXCEPT
  75671. {
  75672. return *reinterpret_cast<VkPipelineCreationFeedback *>( this );
  75673. }
  75674. #if defined( VULKAN_HPP_USE_REFLECT )
  75675. # if 14 <= VULKAN_HPP_CPP_VERSION
  75676. auto
  75677. # else
  75678. std::tuple<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags const &, uint64_t const &>
  75679. # endif
  75680. reflect() const VULKAN_HPP_NOEXCEPT
  75681. {
  75682. return std::tie( flags, duration );
  75683. }
  75684. #endif
  75685. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75686. auto operator<=>( PipelineCreationFeedback const & ) const = default;
  75687. #else
  75688. bool operator==( PipelineCreationFeedback const & rhs ) const VULKAN_HPP_NOEXCEPT
  75689. {
  75690. # if defined( VULKAN_HPP_USE_REFLECT )
  75691. return this->reflect() == rhs.reflect();
  75692. # else
  75693. return ( flags == rhs.flags ) && ( duration == rhs.duration );
  75694. # endif
  75695. }
  75696. bool operator!=( PipelineCreationFeedback const & rhs ) const VULKAN_HPP_NOEXCEPT
  75697. {
  75698. return !operator==( rhs );
  75699. }
  75700. #endif
  75701. public:
  75702. VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlags flags = {};
  75703. uint64_t duration = {};
  75704. };
  75705. using PipelineCreationFeedbackEXT = PipelineCreationFeedback;
  75706. struct PipelineCreationFeedbackCreateInfo
  75707. {
  75708. using NativeType = VkPipelineCreationFeedbackCreateInfo;
  75709. static const bool allowDuplicate = false;
  75710. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreationFeedbackCreateInfo;
  75711. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75712. VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback_ = {},
  75713. uint32_t pipelineStageCreationFeedbackCount_ = {},
  75714. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineStageCreationFeedbacks_ = {},
  75715. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75716. : pNext( pNext_ )
  75717. , pPipelineCreationFeedback( pPipelineCreationFeedback_ )
  75718. , pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ )
  75719. , pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ )
  75720. {
  75721. }
  75722. VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfo( PipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75723. PipelineCreationFeedbackCreateInfo( VkPipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  75724. : PipelineCreationFeedbackCreateInfo( *reinterpret_cast<PipelineCreationFeedbackCreateInfo const *>( &rhs ) )
  75725. {
  75726. }
  75727. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75728. PipelineCreationFeedbackCreateInfo(
  75729. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback_,
  75730. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback> const & pipelineStageCreationFeedbacks_,
  75731. const void * pNext_ = nullptr )
  75732. : pNext( pNext_ )
  75733. , pPipelineCreationFeedback( pPipelineCreationFeedback_ )
  75734. , pipelineStageCreationFeedbackCount( static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() ) )
  75735. , pPipelineStageCreationFeedbacks( pipelineStageCreationFeedbacks_.data() )
  75736. {
  75737. }
  75738. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75739. PipelineCreationFeedbackCreateInfo & operator=( PipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75740. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75741. PipelineCreationFeedbackCreateInfo & operator=( VkPipelineCreationFeedbackCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  75742. {
  75743. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo const *>( &rhs );
  75744. return *this;
  75745. }
  75746. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75747. VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75748. {
  75749. pNext = pNext_;
  75750. return *this;
  75751. }
  75752. VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo &
  75753. setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT
  75754. {
  75755. pPipelineCreationFeedback = pPipelineCreationFeedback_;
  75756. return *this;
  75757. }
  75758. VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo &
  75759. setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT
  75760. {
  75761. pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_;
  75762. return *this;
  75763. }
  75764. VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfo &
  75765. setPPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT
  75766. {
  75767. pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_;
  75768. return *this;
  75769. }
  75770. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75771. PipelineCreationFeedbackCreateInfo & setPipelineStageCreationFeedbacks(
  75772. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback> const & pipelineStageCreationFeedbacks_ )
  75773. VULKAN_HPP_NOEXCEPT
  75774. {
  75775. pipelineStageCreationFeedbackCount = static_cast<uint32_t>( pipelineStageCreationFeedbacks_.size() );
  75776. pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks_.data();
  75777. return *this;
  75778. }
  75779. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75780. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75781. operator VkPipelineCreationFeedbackCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  75782. {
  75783. return *reinterpret_cast<const VkPipelineCreationFeedbackCreateInfo *>( this );
  75784. }
  75785. operator VkPipelineCreationFeedbackCreateInfo &() VULKAN_HPP_NOEXCEPT
  75786. {
  75787. return *reinterpret_cast<VkPipelineCreationFeedbackCreateInfo *>( this );
  75788. }
  75789. #if defined( VULKAN_HPP_USE_REFLECT )
  75790. # if 14 <= VULKAN_HPP_CPP_VERSION
  75791. auto
  75792. # else
  75793. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  75794. const void * const &,
  75795. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * const &,
  75796. uint32_t const &,
  75797. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * const &>
  75798. # endif
  75799. reflect() const VULKAN_HPP_NOEXCEPT
  75800. {
  75801. return std::tie( sType, pNext, pPipelineCreationFeedback, pipelineStageCreationFeedbackCount, pPipelineStageCreationFeedbacks );
  75802. }
  75803. #endif
  75804. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75805. auto operator<=>( PipelineCreationFeedbackCreateInfo const & ) const = default;
  75806. #else
  75807. bool operator==( PipelineCreationFeedbackCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  75808. {
  75809. # if defined( VULKAN_HPP_USE_REFLECT )
  75810. return this->reflect() == rhs.reflect();
  75811. # else
  75812. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback ) &&
  75813. ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount ) &&
  75814. ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks );
  75815. # endif
  75816. }
  75817. bool operator!=( PipelineCreationFeedbackCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  75818. {
  75819. return !operator==( rhs );
  75820. }
  75821. #endif
  75822. public:
  75823. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfo;
  75824. const void * pNext = {};
  75825. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineCreationFeedback = {};
  75826. uint32_t pipelineStageCreationFeedbackCount = {};
  75827. VULKAN_HPP_NAMESPACE::PipelineCreationFeedback * pPipelineStageCreationFeedbacks = {};
  75828. };
  75829. template <>
  75830. struct CppType<StructureType, StructureType::ePipelineCreationFeedbackCreateInfo>
  75831. {
  75832. using Type = PipelineCreationFeedbackCreateInfo;
  75833. };
  75834. using PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfo;
  75835. struct PipelineDiscardRectangleStateCreateInfoEXT
  75836. {
  75837. using NativeType = VkPipelineDiscardRectangleStateCreateInfoEXT;
  75838. static const bool allowDuplicate = false;
  75839. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
  75840. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75841. VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT(
  75842. VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ = {},
  75843. VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive,
  75844. uint32_t discardRectangleCount_ = {},
  75845. const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles_ = {},
  75846. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75847. : pNext( pNext_ )
  75848. , flags( flags_ )
  75849. , discardRectangleMode( discardRectangleMode_ )
  75850. , discardRectangleCount( discardRectangleCount_ )
  75851. , pDiscardRectangles( pDiscardRectangles_ )
  75852. {
  75853. }
  75854. VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75855. PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  75856. : PipelineDiscardRectangleStateCreateInfoEXT( *reinterpret_cast<PipelineDiscardRectangleStateCreateInfoEXT const *>( &rhs ) )
  75857. {
  75858. }
  75859. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75860. PipelineDiscardRectangleStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_,
  75861. VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_,
  75862. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_,
  75863. const void * pNext_ = nullptr )
  75864. : pNext( pNext_ )
  75865. , flags( flags_ )
  75866. , discardRectangleMode( discardRectangleMode_ )
  75867. , discardRectangleCount( static_cast<uint32_t>( discardRectangles_.size() ) )
  75868. , pDiscardRectangles( discardRectangles_.data() )
  75869. {
  75870. }
  75871. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75872. PipelineDiscardRectangleStateCreateInfoEXT & operator=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75873. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75874. PipelineDiscardRectangleStateCreateInfoEXT & operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  75875. {
  75876. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT const *>( &rhs );
  75877. return *this;
  75878. }
  75879. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75880. VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  75881. {
  75882. pNext = pNext_;
  75883. return *this;
  75884. }
  75885. VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT &
  75886. setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  75887. {
  75888. flags = flags_;
  75889. return *this;
  75890. }
  75891. VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT &
  75892. setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT
  75893. {
  75894. discardRectangleMode = discardRectangleMode_;
  75895. return *this;
  75896. }
  75897. VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT
  75898. {
  75899. discardRectangleCount = discardRectangleCount_;
  75900. return *this;
  75901. }
  75902. VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT &
  75903. setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT
  75904. {
  75905. pDiscardRectangles = pDiscardRectangles_;
  75906. return *this;
  75907. }
  75908. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  75909. PipelineDiscardRectangleStateCreateInfoEXT &
  75910. setDiscardRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles_ ) VULKAN_HPP_NOEXCEPT
  75911. {
  75912. discardRectangleCount = static_cast<uint32_t>( discardRectangles_.size() );
  75913. pDiscardRectangles = discardRectangles_.data();
  75914. return *this;
  75915. }
  75916. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  75917. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  75918. operator VkPipelineDiscardRectangleStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  75919. {
  75920. return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT *>( this );
  75921. }
  75922. operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  75923. {
  75924. return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT *>( this );
  75925. }
  75926. #if defined( VULKAN_HPP_USE_REFLECT )
  75927. # if 14 <= VULKAN_HPP_CPP_VERSION
  75928. auto
  75929. # else
  75930. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  75931. const void * const &,
  75932. VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT const &,
  75933. VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT const &,
  75934. uint32_t const &,
  75935. const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  75936. # endif
  75937. reflect() const VULKAN_HPP_NOEXCEPT
  75938. {
  75939. return std::tie( sType, pNext, flags, discardRectangleMode, discardRectangleCount, pDiscardRectangles );
  75940. }
  75941. #endif
  75942. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  75943. auto operator<=>( PipelineDiscardRectangleStateCreateInfoEXT const & ) const = default;
  75944. #else
  75945. bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75946. {
  75947. # if defined( VULKAN_HPP_USE_REFLECT )
  75948. return this->reflect() == rhs.reflect();
  75949. # else
  75950. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( discardRectangleMode == rhs.discardRectangleMode ) &&
  75951. ( discardRectangleCount == rhs.discardRectangleCount ) && ( pDiscardRectangles == rhs.pDiscardRectangles );
  75952. # endif
  75953. }
  75954. bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  75955. {
  75956. return !operator==( rhs );
  75957. }
  75958. #endif
  75959. public:
  75960. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
  75961. const void * pNext = {};
  75962. VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {};
  75963. VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive;
  75964. uint32_t discardRectangleCount = {};
  75965. const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles = {};
  75966. };
  75967. template <>
  75968. struct CppType<StructureType, StructureType::ePipelineDiscardRectangleStateCreateInfoEXT>
  75969. {
  75970. using Type = PipelineDiscardRectangleStateCreateInfoEXT;
  75971. };
  75972. struct PipelineExecutableInfoKHR
  75973. {
  75974. using NativeType = VkPipelineExecutableInfoKHR;
  75975. static const bool allowDuplicate = false;
  75976. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInfoKHR;
  75977. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  75978. VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
  75979. uint32_t executableIndex_ = {},
  75980. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  75981. : pNext( pNext_ )
  75982. , pipeline( pipeline_ )
  75983. , executableIndex( executableIndex_ )
  75984. {
  75985. }
  75986. VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75987. PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  75988. : PipelineExecutableInfoKHR( *reinterpret_cast<PipelineExecutableInfoKHR const *>( &rhs ) )
  75989. {
  75990. }
  75991. PipelineExecutableInfoKHR & operator=( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  75992. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  75993. PipelineExecutableInfoKHR & operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  75994. {
  75995. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR const *>( &rhs );
  75996. return *this;
  75997. }
  75998. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  75999. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76000. {
  76001. pNext = pNext_;
  76002. return *this;
  76003. }
  76004. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
  76005. {
  76006. pipeline = pipeline_;
  76007. return *this;
  76008. }
  76009. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT
  76010. {
  76011. executableIndex = executableIndex_;
  76012. return *this;
  76013. }
  76014. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76015. operator VkPipelineExecutableInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  76016. {
  76017. return *reinterpret_cast<const VkPipelineExecutableInfoKHR *>( this );
  76018. }
  76019. operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT
  76020. {
  76021. return *reinterpret_cast<VkPipelineExecutableInfoKHR *>( this );
  76022. }
  76023. #if defined( VULKAN_HPP_USE_REFLECT )
  76024. # if 14 <= VULKAN_HPP_CPP_VERSION
  76025. auto
  76026. # else
  76027. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Pipeline const &, uint32_t const &>
  76028. # endif
  76029. reflect() const VULKAN_HPP_NOEXCEPT
  76030. {
  76031. return std::tie( sType, pNext, pipeline, executableIndex );
  76032. }
  76033. #endif
  76034. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76035. auto operator<=>( PipelineExecutableInfoKHR const & ) const = default;
  76036. #else
  76037. bool operator==( PipelineExecutableInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76038. {
  76039. # if defined( VULKAN_HPP_USE_REFLECT )
  76040. return this->reflect() == rhs.reflect();
  76041. # else
  76042. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipeline == rhs.pipeline ) && ( executableIndex == rhs.executableIndex );
  76043. # endif
  76044. }
  76045. bool operator!=( PipelineExecutableInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76046. {
  76047. return !operator==( rhs );
  76048. }
  76049. #endif
  76050. public:
  76051. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR;
  76052. const void * pNext = {};
  76053. VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
  76054. uint32_t executableIndex = {};
  76055. };
  76056. template <>
  76057. struct CppType<StructureType, StructureType::ePipelineExecutableInfoKHR>
  76058. {
  76059. using Type = PipelineExecutableInfoKHR;
  76060. };
  76061. struct PipelineExecutableInternalRepresentationKHR
  76062. {
  76063. using NativeType = VkPipelineExecutableInternalRepresentationKHR;
  76064. static const bool allowDuplicate = false;
  76065. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInternalRepresentationKHR;
  76066. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76067. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR( std::array<char, VK_MAX_DESCRIPTION_SIZE> const & name_ = {},
  76068. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  76069. VULKAN_HPP_NAMESPACE::Bool32 isText_ = {},
  76070. size_t dataSize_ = {},
  76071. void * pData_ = {},
  76072. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76073. : pNext( pNext_ )
  76074. , name( name_ )
  76075. , description( description_ )
  76076. , isText( isText_ )
  76077. , dataSize( dataSize_ )
  76078. , pData( pData_ )
  76079. {
  76080. }
  76081. VULKAN_HPP_CONSTEXPR_14
  76082. PipelineExecutableInternalRepresentationKHR( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76083. PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76084. : PipelineExecutableInternalRepresentationKHR( *reinterpret_cast<PipelineExecutableInternalRepresentationKHR const *>( &rhs ) )
  76085. {
  76086. }
  76087. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  76088. template <typename T>
  76089. PipelineExecutableInternalRepresentationKHR( std::array<char, VK_MAX_DESCRIPTION_SIZE> const & name_,
  76090. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_,
  76091. VULKAN_HPP_NAMESPACE::Bool32 isText_,
  76092. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<T> const & data_,
  76093. void * pNext_ = nullptr )
  76094. : pNext( pNext_ ), name( name_ ), description( description_ ), isText( isText_ ), dataSize( data_.size() * sizeof( T ) ), pData( data_.data() )
  76095. {
  76096. }
  76097. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  76098. PipelineExecutableInternalRepresentationKHR & operator=( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76099. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76100. PipelineExecutableInternalRepresentationKHR & operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76101. {
  76102. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR const *>( &rhs );
  76103. return *this;
  76104. }
  76105. operator VkPipelineExecutableInternalRepresentationKHR const &() const VULKAN_HPP_NOEXCEPT
  76106. {
  76107. return *reinterpret_cast<const VkPipelineExecutableInternalRepresentationKHR *>( this );
  76108. }
  76109. operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT
  76110. {
  76111. return *reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( this );
  76112. }
  76113. #if defined( VULKAN_HPP_USE_REFLECT )
  76114. # if 14 <= VULKAN_HPP_CPP_VERSION
  76115. auto
  76116. # else
  76117. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  76118. void * const &,
  76119. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  76120. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  76121. VULKAN_HPP_NAMESPACE::Bool32 const &,
  76122. size_t const &,
  76123. void * const &>
  76124. # endif
  76125. reflect() const VULKAN_HPP_NOEXCEPT
  76126. {
  76127. return std::tie( sType, pNext, name, description, isText, dataSize, pData );
  76128. }
  76129. #endif
  76130. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76131. auto operator<=>( PipelineExecutableInternalRepresentationKHR const & ) const = default;
  76132. #else
  76133. bool operator==( PipelineExecutableInternalRepresentationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76134. {
  76135. # if defined( VULKAN_HPP_USE_REFLECT )
  76136. return this->reflect() == rhs.reflect();
  76137. # else
  76138. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( name == rhs.name ) && ( description == rhs.description ) && ( isText == rhs.isText ) &&
  76139. ( dataSize == rhs.dataSize ) && ( pData == rhs.pData );
  76140. # endif
  76141. }
  76142. bool operator!=( PipelineExecutableInternalRepresentationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76143. {
  76144. return !operator==( rhs );
  76145. }
  76146. #endif
  76147. public:
  76148. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR;
  76149. void * pNext = {};
  76150. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
  76151. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  76152. VULKAN_HPP_NAMESPACE::Bool32 isText = {};
  76153. size_t dataSize = {};
  76154. void * pData = {};
  76155. };
  76156. template <>
  76157. struct CppType<StructureType, StructureType::ePipelineExecutableInternalRepresentationKHR>
  76158. {
  76159. using Type = PipelineExecutableInternalRepresentationKHR;
  76160. };
  76161. struct PipelineExecutablePropertiesKHR
  76162. {
  76163. using NativeType = VkPipelineExecutablePropertiesKHR;
  76164. static const bool allowDuplicate = false;
  76165. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutablePropertiesKHR;
  76166. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76167. VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags stages_ = {},
  76168. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & name_ = {},
  76169. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  76170. uint32_t subgroupSize_ = {},
  76171. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76172. : pNext( pNext_ )
  76173. , stages( stages_ )
  76174. , name( name_ )
  76175. , description( description_ )
  76176. , subgroupSize( subgroupSize_ )
  76177. {
  76178. }
  76179. VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76180. PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76181. : PipelineExecutablePropertiesKHR( *reinterpret_cast<PipelineExecutablePropertiesKHR const *>( &rhs ) )
  76182. {
  76183. }
  76184. PipelineExecutablePropertiesKHR & operator=( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76185. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76186. PipelineExecutablePropertiesKHR & operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76187. {
  76188. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR const *>( &rhs );
  76189. return *this;
  76190. }
  76191. operator VkPipelineExecutablePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  76192. {
  76193. return *reinterpret_cast<const VkPipelineExecutablePropertiesKHR *>( this );
  76194. }
  76195. operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT
  76196. {
  76197. return *reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( this );
  76198. }
  76199. #if defined( VULKAN_HPP_USE_REFLECT )
  76200. # if 14 <= VULKAN_HPP_CPP_VERSION
  76201. auto
  76202. # else
  76203. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  76204. void * const &,
  76205. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  76206. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  76207. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  76208. uint32_t const &>
  76209. # endif
  76210. reflect() const VULKAN_HPP_NOEXCEPT
  76211. {
  76212. return std::tie( sType, pNext, stages, name, description, subgroupSize );
  76213. }
  76214. #endif
  76215. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76216. auto operator<=>( PipelineExecutablePropertiesKHR const & ) const = default;
  76217. #else
  76218. bool operator==( PipelineExecutablePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76219. {
  76220. # if defined( VULKAN_HPP_USE_REFLECT )
  76221. return this->reflect() == rhs.reflect();
  76222. # else
  76223. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stages == rhs.stages ) && ( name == rhs.name ) && ( description == rhs.description ) &&
  76224. ( subgroupSize == rhs.subgroupSize );
  76225. # endif
  76226. }
  76227. bool operator!=( PipelineExecutablePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76228. {
  76229. return !operator==( rhs );
  76230. }
  76231. #endif
  76232. public:
  76233. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR;
  76234. void * pNext = {};
  76235. VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {};
  76236. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
  76237. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  76238. uint32_t subgroupSize = {};
  76239. };
  76240. template <>
  76241. struct CppType<StructureType, StructureType::ePipelineExecutablePropertiesKHR>
  76242. {
  76243. using Type = PipelineExecutablePropertiesKHR;
  76244. };
  76245. union PipelineExecutableStatisticValueKHR
  76246. {
  76247. using NativeType = VkPipelineExecutableStatisticValueKHR;
  76248. #if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  76249. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::Bool32 b32_ = {} ) : b32( b32_ ) {}
  76250. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( int64_t i64_ ) : i64( i64_ ) {}
  76251. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( uint64_t u64_ ) : u64( u64_ ) {}
  76252. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR( double f64_ ) : f64( f64_ ) {}
  76253. #endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
  76254. #if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  76255. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT
  76256. {
  76257. b32 = b32_;
  76258. return *this;
  76259. }
  76260. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setI64( int64_t i64_ ) VULKAN_HPP_NOEXCEPT
  76261. {
  76262. i64 = i64_;
  76263. return *this;
  76264. }
  76265. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setU64( uint64_t u64_ ) VULKAN_HPP_NOEXCEPT
  76266. {
  76267. u64 = u64_;
  76268. return *this;
  76269. }
  76270. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticValueKHR & setF64( double f64_ ) VULKAN_HPP_NOEXCEPT
  76271. {
  76272. f64 = f64_;
  76273. return *this;
  76274. }
  76275. #endif /*VULKAN_HPP_NO_UNION_SETTERS*/
  76276. operator VkPipelineExecutableStatisticValueKHR const &() const
  76277. {
  76278. return *reinterpret_cast<const VkPipelineExecutableStatisticValueKHR *>( this );
  76279. }
  76280. operator VkPipelineExecutableStatisticValueKHR &()
  76281. {
  76282. return *reinterpret_cast<VkPipelineExecutableStatisticValueKHR *>( this );
  76283. }
  76284. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  76285. VULKAN_HPP_NAMESPACE::Bool32 b32;
  76286. int64_t i64;
  76287. uint64_t u64;
  76288. double f64;
  76289. #else
  76290. VkBool32 b32;
  76291. int64_t i64;
  76292. uint64_t u64;
  76293. double f64;
  76294. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  76295. };
  76296. struct PipelineExecutableStatisticKHR
  76297. {
  76298. using NativeType = VkPipelineExecutableStatisticKHR;
  76299. static const bool allowDuplicate = false;
  76300. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableStatisticKHR;
  76301. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76302. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticKHR(
  76303. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & name_ = {},
  76304. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  76305. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format_ = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32,
  76306. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value_ = {},
  76307. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76308. : pNext( pNext_ )
  76309. , name( name_ )
  76310. , description( description_ )
  76311. , format( format_ )
  76312. , value( value_ )
  76313. {
  76314. }
  76315. VULKAN_HPP_CONSTEXPR_14 PipelineExecutableStatisticKHR( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76316. PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76317. : PipelineExecutableStatisticKHR( *reinterpret_cast<PipelineExecutableStatisticKHR const *>( &rhs ) )
  76318. {
  76319. }
  76320. PipelineExecutableStatisticKHR & operator=( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76321. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76322. PipelineExecutableStatisticKHR & operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76323. {
  76324. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR const *>( &rhs );
  76325. return *this;
  76326. }
  76327. operator VkPipelineExecutableStatisticKHR const &() const VULKAN_HPP_NOEXCEPT
  76328. {
  76329. return *reinterpret_cast<const VkPipelineExecutableStatisticKHR *>( this );
  76330. }
  76331. operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT
  76332. {
  76333. return *reinterpret_cast<VkPipelineExecutableStatisticKHR *>( this );
  76334. }
  76335. #if defined( VULKAN_HPP_USE_REFLECT )
  76336. # if 14 <= VULKAN_HPP_CPP_VERSION
  76337. auto
  76338. # else
  76339. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  76340. void * const &,
  76341. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  76342. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &,
  76343. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR const &,
  76344. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const &>
  76345. # endif
  76346. reflect() const VULKAN_HPP_NOEXCEPT
  76347. {
  76348. return std::tie( sType, pNext, name, description, format, value );
  76349. }
  76350. #endif
  76351. public:
  76352. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR;
  76353. void * pNext = {};
  76354. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> name = {};
  76355. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  76356. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32;
  76357. VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {};
  76358. };
  76359. template <>
  76360. struct CppType<StructureType, StructureType::ePipelineExecutableStatisticKHR>
  76361. {
  76362. using Type = PipelineExecutableStatisticKHR;
  76363. };
  76364. struct PipelineFragmentShadingRateEnumStateCreateInfoNV
  76365. {
  76366. using NativeType = VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
  76367. static const bool allowDuplicate = false;
  76368. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV;
  76369. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76370. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV(
  76371. VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize,
  76372. VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel,
  76373. std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &
  76374. combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } },
  76375. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76376. : pNext( pNext_ )
  76377. , shadingRateType( shadingRateType_ )
  76378. , shadingRate( shadingRate_ )
  76379. , combinerOps( combinerOps_ )
  76380. {
  76381. }
  76382. VULKAN_HPP_CONSTEXPR_14
  76383. PipelineFragmentShadingRateEnumStateCreateInfoNV( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76384. PipelineFragmentShadingRateEnumStateCreateInfoNV( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  76385. : PipelineFragmentShadingRateEnumStateCreateInfoNV( *reinterpret_cast<PipelineFragmentShadingRateEnumStateCreateInfoNV const *>( &rhs ) )
  76386. {
  76387. }
  76388. PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76389. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76390. PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  76391. {
  76392. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV const *>( &rhs );
  76393. return *this;
  76394. }
  76395. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76396. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76397. {
  76398. pNext = pNext_;
  76399. return *this;
  76400. }
  76401. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV &
  76402. setShadingRateType( VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ ) VULKAN_HPP_NOEXCEPT
  76403. {
  76404. shadingRateType = shadingRateType_;
  76405. return *this;
  76406. }
  76407. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV &
  76408. setShadingRate( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ ) VULKAN_HPP_NOEXCEPT
  76409. {
  76410. shadingRate = shadingRate_;
  76411. return *this;
  76412. }
  76413. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV &
  76414. setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
  76415. {
  76416. combinerOps = combinerOps_;
  76417. return *this;
  76418. }
  76419. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76420. operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  76421. {
  76422. return *reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV *>( this );
  76423. }
  76424. operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  76425. {
  76426. return *reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV *>( this );
  76427. }
  76428. #if defined( VULKAN_HPP_USE_REFLECT )
  76429. # if 14 <= VULKAN_HPP_CPP_VERSION
  76430. auto
  76431. # else
  76432. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  76433. const void * const &,
  76434. VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV const &,
  76435. VULKAN_HPP_NAMESPACE::FragmentShadingRateNV const &,
  76436. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &>
  76437. # endif
  76438. reflect() const VULKAN_HPP_NOEXCEPT
  76439. {
  76440. return std::tie( sType, pNext, shadingRateType, shadingRate, combinerOps );
  76441. }
  76442. #endif
  76443. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76444. auto operator<=>( PipelineFragmentShadingRateEnumStateCreateInfoNV const & ) const = default;
  76445. #else
  76446. bool operator==( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  76447. {
  76448. # if defined( VULKAN_HPP_USE_REFLECT )
  76449. return this->reflect() == rhs.reflect();
  76450. # else
  76451. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shadingRateType == rhs.shadingRateType ) && ( shadingRate == rhs.shadingRate ) &&
  76452. ( combinerOps == rhs.combinerOps );
  76453. # endif
  76454. }
  76455. bool operator!=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  76456. {
  76457. return !operator==( rhs );
  76458. }
  76459. #endif
  76460. public:
  76461. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV;
  76462. const void * pNext = {};
  76463. VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize;
  76464. VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel;
  76465. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps = {};
  76466. };
  76467. template <>
  76468. struct CppType<StructureType, StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV>
  76469. {
  76470. using Type = PipelineFragmentShadingRateEnumStateCreateInfoNV;
  76471. };
  76472. struct PipelineFragmentShadingRateStateCreateInfoKHR
  76473. {
  76474. using NativeType = VkPipelineFragmentShadingRateStateCreateInfoKHR;
  76475. static const bool allowDuplicate = false;
  76476. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
  76477. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76478. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR(
  76479. VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {},
  76480. std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &
  76481. combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } },
  76482. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76483. : pNext( pNext_ )
  76484. , fragmentSize( fragmentSize_ )
  76485. , combinerOps( combinerOps_ )
  76486. {
  76487. }
  76488. VULKAN_HPP_CONSTEXPR_14
  76489. PipelineFragmentShadingRateStateCreateInfoKHR( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76490. PipelineFragmentShadingRateStateCreateInfoKHR( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76491. : PipelineFragmentShadingRateStateCreateInfoKHR( *reinterpret_cast<PipelineFragmentShadingRateStateCreateInfoKHR const *>( &rhs ) )
  76492. {
  76493. }
  76494. PipelineFragmentShadingRateStateCreateInfoKHR & operator=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76495. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76496. PipelineFragmentShadingRateStateCreateInfoKHR & operator=( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76497. {
  76498. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR const *>( &rhs );
  76499. return *this;
  76500. }
  76501. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76502. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76503. {
  76504. pNext = pNext_;
  76505. return *this;
  76506. }
  76507. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR &
  76508. setFragmentSize( VULKAN_HPP_NAMESPACE::Extent2D const & fragmentSize_ ) VULKAN_HPP_NOEXCEPT
  76509. {
  76510. fragmentSize = fragmentSize_;
  76511. return *this;
  76512. }
  76513. VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR &
  76514. setCombinerOps( std::array<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps_ ) VULKAN_HPP_NOEXCEPT
  76515. {
  76516. combinerOps = combinerOps_;
  76517. return *this;
  76518. }
  76519. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76520. operator VkPipelineFragmentShadingRateStateCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  76521. {
  76522. return *reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR *>( this );
  76523. }
  76524. operator VkPipelineFragmentShadingRateStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  76525. {
  76526. return *reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR *>( this );
  76527. }
  76528. #if defined( VULKAN_HPP_USE_REFLECT )
  76529. # if 14 <= VULKAN_HPP_CPP_VERSION
  76530. auto
  76531. # else
  76532. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  76533. const void * const &,
  76534. VULKAN_HPP_NAMESPACE::Extent2D const &,
  76535. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> const &>
  76536. # endif
  76537. reflect() const VULKAN_HPP_NOEXCEPT
  76538. {
  76539. return std::tie( sType, pNext, fragmentSize, combinerOps );
  76540. }
  76541. #endif
  76542. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76543. auto operator<=>( PipelineFragmentShadingRateStateCreateInfoKHR const & ) const = default;
  76544. #else
  76545. bool operator==( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76546. {
  76547. # if defined( VULKAN_HPP_USE_REFLECT )
  76548. return this->reflect() == rhs.reflect();
  76549. # else
  76550. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentSize == rhs.fragmentSize ) && ( combinerOps == rhs.combinerOps );
  76551. # endif
  76552. }
  76553. bool operator!=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76554. {
  76555. return !operator==( rhs );
  76556. }
  76557. #endif
  76558. public:
  76559. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR;
  76560. const void * pNext = {};
  76561. VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {};
  76562. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR, 2> combinerOps = {};
  76563. };
  76564. template <>
  76565. struct CppType<StructureType, StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR>
  76566. {
  76567. using Type = PipelineFragmentShadingRateStateCreateInfoKHR;
  76568. };
  76569. struct PipelineIndirectDeviceAddressInfoNV
  76570. {
  76571. using NativeType = VkPipelineIndirectDeviceAddressInfoNV;
  76572. static const bool allowDuplicate = false;
  76573. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineIndirectDeviceAddressInfoNV;
  76574. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76575. VULKAN_HPP_CONSTEXPR
  76576. PipelineIndirectDeviceAddressInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  76577. VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
  76578. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76579. : pNext( pNext_ )
  76580. , pipelineBindPoint( pipelineBindPoint_ )
  76581. , pipeline( pipeline_ )
  76582. {
  76583. }
  76584. VULKAN_HPP_CONSTEXPR PipelineIndirectDeviceAddressInfoNV( PipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76585. PipelineIndirectDeviceAddressInfoNV( VkPipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  76586. : PipelineIndirectDeviceAddressInfoNV( *reinterpret_cast<PipelineIndirectDeviceAddressInfoNV const *>( &rhs ) )
  76587. {
  76588. }
  76589. PipelineIndirectDeviceAddressInfoNV & operator=( PipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76590. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76591. PipelineIndirectDeviceAddressInfoNV & operator=( VkPipelineIndirectDeviceAddressInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  76592. {
  76593. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV const *>( &rhs );
  76594. return *this;
  76595. }
  76596. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76597. VULKAN_HPP_CONSTEXPR_14 PipelineIndirectDeviceAddressInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76598. {
  76599. pNext = pNext_;
  76600. return *this;
  76601. }
  76602. VULKAN_HPP_CONSTEXPR_14 PipelineIndirectDeviceAddressInfoNV &
  76603. setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  76604. {
  76605. pipelineBindPoint = pipelineBindPoint_;
  76606. return *this;
  76607. }
  76608. VULKAN_HPP_CONSTEXPR_14 PipelineIndirectDeviceAddressInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
  76609. {
  76610. pipeline = pipeline_;
  76611. return *this;
  76612. }
  76613. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76614. operator VkPipelineIndirectDeviceAddressInfoNV const &() const VULKAN_HPP_NOEXCEPT
  76615. {
  76616. return *reinterpret_cast<const VkPipelineIndirectDeviceAddressInfoNV *>( this );
  76617. }
  76618. operator VkPipelineIndirectDeviceAddressInfoNV &() VULKAN_HPP_NOEXCEPT
  76619. {
  76620. return *reinterpret_cast<VkPipelineIndirectDeviceAddressInfoNV *>( this );
  76621. }
  76622. #if defined( VULKAN_HPP_USE_REFLECT )
  76623. # if 14 <= VULKAN_HPP_CPP_VERSION
  76624. auto
  76625. # else
  76626. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  76627. const void * const &,
  76628. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  76629. VULKAN_HPP_NAMESPACE::Pipeline const &>
  76630. # endif
  76631. reflect() const VULKAN_HPP_NOEXCEPT
  76632. {
  76633. return std::tie( sType, pNext, pipelineBindPoint, pipeline );
  76634. }
  76635. #endif
  76636. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76637. auto operator<=>( PipelineIndirectDeviceAddressInfoNV const & ) const = default;
  76638. #else
  76639. bool operator==( PipelineIndirectDeviceAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  76640. {
  76641. # if defined( VULKAN_HPP_USE_REFLECT )
  76642. return this->reflect() == rhs.reflect();
  76643. # else
  76644. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( pipeline == rhs.pipeline );
  76645. # endif
  76646. }
  76647. bool operator!=( PipelineIndirectDeviceAddressInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  76648. {
  76649. return !operator==( rhs );
  76650. }
  76651. #endif
  76652. public:
  76653. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineIndirectDeviceAddressInfoNV;
  76654. const void * pNext = {};
  76655. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  76656. VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
  76657. };
  76658. template <>
  76659. struct CppType<StructureType, StructureType::ePipelineIndirectDeviceAddressInfoNV>
  76660. {
  76661. using Type = PipelineIndirectDeviceAddressInfoNV;
  76662. };
  76663. struct PipelineInfoKHR
  76664. {
  76665. using NativeType = VkPipelineInfoKHR;
  76666. static const bool allowDuplicate = false;
  76667. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInfoKHR;
  76668. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76669. VULKAN_HPP_CONSTEXPR PipelineInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76670. : pNext( pNext_ )
  76671. , pipeline( pipeline_ )
  76672. {
  76673. }
  76674. VULKAN_HPP_CONSTEXPR PipelineInfoKHR( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76675. PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : PipelineInfoKHR( *reinterpret_cast<PipelineInfoKHR const *>( &rhs ) ) {}
  76676. PipelineInfoKHR & operator=( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76677. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76678. PipelineInfoKHR & operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  76679. {
  76680. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineInfoKHR const *>( &rhs );
  76681. return *this;
  76682. }
  76683. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76684. VULKAN_HPP_CONSTEXPR_14 PipelineInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76685. {
  76686. pNext = pNext_;
  76687. return *this;
  76688. }
  76689. VULKAN_HPP_CONSTEXPR_14 PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
  76690. {
  76691. pipeline = pipeline_;
  76692. return *this;
  76693. }
  76694. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76695. operator VkPipelineInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  76696. {
  76697. return *reinterpret_cast<const VkPipelineInfoKHR *>( this );
  76698. }
  76699. operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT
  76700. {
  76701. return *reinterpret_cast<VkPipelineInfoKHR *>( this );
  76702. }
  76703. #if defined( VULKAN_HPP_USE_REFLECT )
  76704. # if 14 <= VULKAN_HPP_CPP_VERSION
  76705. auto
  76706. # else
  76707. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Pipeline const &>
  76708. # endif
  76709. reflect() const VULKAN_HPP_NOEXCEPT
  76710. {
  76711. return std::tie( sType, pNext, pipeline );
  76712. }
  76713. #endif
  76714. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76715. auto operator<=>( PipelineInfoKHR const & ) const = default;
  76716. #else
  76717. bool operator==( PipelineInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76718. {
  76719. # if defined( VULKAN_HPP_USE_REFLECT )
  76720. return this->reflect() == rhs.reflect();
  76721. # else
  76722. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipeline == rhs.pipeline );
  76723. # endif
  76724. }
  76725. bool operator!=( PipelineInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  76726. {
  76727. return !operator==( rhs );
  76728. }
  76729. #endif
  76730. public:
  76731. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR;
  76732. const void * pNext = {};
  76733. VULKAN_HPP_NAMESPACE::Pipeline pipeline = {};
  76734. };
  76735. template <>
  76736. struct CppType<StructureType, StructureType::ePipelineInfoKHR>
  76737. {
  76738. using Type = PipelineInfoKHR;
  76739. };
  76740. using PipelineInfoEXT = PipelineInfoKHR;
  76741. struct PushConstantRange
  76742. {
  76743. using NativeType = VkPushConstantRange;
  76744. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76745. VULKAN_HPP_CONSTEXPR
  76746. PushConstantRange( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {} ) VULKAN_HPP_NOEXCEPT
  76747. : stageFlags( stageFlags_ )
  76748. , offset( offset_ )
  76749. , size( size_ )
  76750. {
  76751. }
  76752. VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76753. PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT : PushConstantRange( *reinterpret_cast<PushConstantRange const *>( &rhs ) ) {}
  76754. PushConstantRange & operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76755. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76756. PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
  76757. {
  76758. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushConstantRange const *>( &rhs );
  76759. return *this;
  76760. }
  76761. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76762. VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
  76763. {
  76764. stageFlags = stageFlags_;
  76765. return *this;
  76766. }
  76767. VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
  76768. {
  76769. offset = offset_;
  76770. return *this;
  76771. }
  76772. VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
  76773. {
  76774. size = size_;
  76775. return *this;
  76776. }
  76777. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76778. operator VkPushConstantRange const &() const VULKAN_HPP_NOEXCEPT
  76779. {
  76780. return *reinterpret_cast<const VkPushConstantRange *>( this );
  76781. }
  76782. operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
  76783. {
  76784. return *reinterpret_cast<VkPushConstantRange *>( this );
  76785. }
  76786. #if defined( VULKAN_HPP_USE_REFLECT )
  76787. # if 14 <= VULKAN_HPP_CPP_VERSION
  76788. auto
  76789. # else
  76790. std::tuple<VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, uint32_t const &, uint32_t const &>
  76791. # endif
  76792. reflect() const VULKAN_HPP_NOEXCEPT
  76793. {
  76794. return std::tie( stageFlags, offset, size );
  76795. }
  76796. #endif
  76797. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76798. auto operator<=>( PushConstantRange const & ) const = default;
  76799. #else
  76800. bool operator==( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  76801. {
  76802. # if defined( VULKAN_HPP_USE_REFLECT )
  76803. return this->reflect() == rhs.reflect();
  76804. # else
  76805. return ( stageFlags == rhs.stageFlags ) && ( offset == rhs.offset ) && ( size == rhs.size );
  76806. # endif
  76807. }
  76808. bool operator!=( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT
  76809. {
  76810. return !operator==( rhs );
  76811. }
  76812. #endif
  76813. public:
  76814. VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
  76815. uint32_t offset = {};
  76816. uint32_t size = {};
  76817. };
  76818. struct PipelineLayoutCreateInfo
  76819. {
  76820. using NativeType = VkPipelineLayoutCreateInfo;
  76821. static const bool allowDuplicate = false;
  76822. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLayoutCreateInfo;
  76823. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76824. VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ = {},
  76825. uint32_t setLayoutCount_ = {},
  76826. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ = {},
  76827. uint32_t pushConstantRangeCount_ = {},
  76828. const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ = {},
  76829. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76830. : pNext( pNext_ )
  76831. , flags( flags_ )
  76832. , setLayoutCount( setLayoutCount_ )
  76833. , pSetLayouts( pSetLayouts_ )
  76834. , pushConstantRangeCount( pushConstantRangeCount_ )
  76835. , pPushConstantRanges( pPushConstantRanges_ )
  76836. {
  76837. }
  76838. VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76839. PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  76840. : PipelineLayoutCreateInfo( *reinterpret_cast<PipelineLayoutCreateInfo const *>( &rhs ) )
  76841. {
  76842. }
  76843. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  76844. PipelineLayoutCreateInfo( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_,
  76845. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_,
  76846. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ = {},
  76847. const void * pNext_ = nullptr )
  76848. : pNext( pNext_ )
  76849. , flags( flags_ )
  76850. , setLayoutCount( static_cast<uint32_t>( setLayouts_.size() ) )
  76851. , pSetLayouts( setLayouts_.data() )
  76852. , pushConstantRangeCount( static_cast<uint32_t>( pushConstantRanges_.size() ) )
  76853. , pPushConstantRanges( pushConstantRanges_.data() )
  76854. {
  76855. }
  76856. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  76857. PipelineLayoutCreateInfo & operator=( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76858. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76859. PipelineLayoutCreateInfo & operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  76860. {
  76861. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const *>( &rhs );
  76862. return *this;
  76863. }
  76864. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76865. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76866. {
  76867. pNext = pNext_;
  76868. return *this;
  76869. }
  76870. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  76871. {
  76872. flags = flags_;
  76873. return *this;
  76874. }
  76875. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
  76876. {
  76877. setLayoutCount = setLayoutCount_;
  76878. return *this;
  76879. }
  76880. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
  76881. {
  76882. pSetLayouts = pSetLayouts_;
  76883. return *this;
  76884. }
  76885. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  76886. PipelineLayoutCreateInfo &
  76887. setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
  76888. {
  76889. setLayoutCount = static_cast<uint32_t>( setLayouts_.size() );
  76890. pSetLayouts = setLayouts_.data();
  76891. return *this;
  76892. }
  76893. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  76894. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
  76895. {
  76896. pushConstantRangeCount = pushConstantRangeCount_;
  76897. return *this;
  76898. }
  76899. VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo &
  76900. setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
  76901. {
  76902. pPushConstantRanges = pPushConstantRanges_;
  76903. return *this;
  76904. }
  76905. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  76906. PipelineLayoutCreateInfo & setPushConstantRanges(
  76907. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
  76908. {
  76909. pushConstantRangeCount = static_cast<uint32_t>( pushConstantRanges_.size() );
  76910. pPushConstantRanges = pushConstantRanges_.data();
  76911. return *this;
  76912. }
  76913. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  76914. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  76915. operator VkPipelineLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  76916. {
  76917. return *reinterpret_cast<const VkPipelineLayoutCreateInfo *>( this );
  76918. }
  76919. operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT
  76920. {
  76921. return *reinterpret_cast<VkPipelineLayoutCreateInfo *>( this );
  76922. }
  76923. #if defined( VULKAN_HPP_USE_REFLECT )
  76924. # if 14 <= VULKAN_HPP_CPP_VERSION
  76925. auto
  76926. # else
  76927. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  76928. const void * const &,
  76929. VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags const &,
  76930. uint32_t const &,
  76931. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * const &,
  76932. uint32_t const &,
  76933. const VULKAN_HPP_NAMESPACE::PushConstantRange * const &>
  76934. # endif
  76935. reflect() const VULKAN_HPP_NOEXCEPT
  76936. {
  76937. return std::tie( sType, pNext, flags, setLayoutCount, pSetLayouts, pushConstantRangeCount, pPushConstantRanges );
  76938. }
  76939. #endif
  76940. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  76941. auto operator<=>( PipelineLayoutCreateInfo const & ) const = default;
  76942. #else
  76943. bool operator==( PipelineLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  76944. {
  76945. # if defined( VULKAN_HPP_USE_REFLECT )
  76946. return this->reflect() == rhs.reflect();
  76947. # else
  76948. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( setLayoutCount == rhs.setLayoutCount ) &&
  76949. ( pSetLayouts == rhs.pSetLayouts ) && ( pushConstantRangeCount == rhs.pushConstantRangeCount ) &&
  76950. ( pPushConstantRanges == rhs.pPushConstantRanges );
  76951. # endif
  76952. }
  76953. bool operator!=( PipelineLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  76954. {
  76955. return !operator==( rhs );
  76956. }
  76957. #endif
  76958. public:
  76959. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo;
  76960. const void * pNext = {};
  76961. VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {};
  76962. uint32_t setLayoutCount = {};
  76963. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts = {};
  76964. uint32_t pushConstantRangeCount = {};
  76965. const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges = {};
  76966. };
  76967. template <>
  76968. struct CppType<StructureType, StructureType::ePipelineLayoutCreateInfo>
  76969. {
  76970. using Type = PipelineLayoutCreateInfo;
  76971. };
  76972. struct PipelinePropertiesIdentifierEXT
  76973. {
  76974. using NativeType = VkPipelinePropertiesIdentifierEXT;
  76975. static const bool allowDuplicate = false;
  76976. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelinePropertiesIdentifierEXT;
  76977. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  76978. VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT( std::array<uint8_t, VK_UUID_SIZE> const & pipelineIdentifier_ = {},
  76979. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  76980. : pNext( pNext_ )
  76981. , pipelineIdentifier( pipelineIdentifier_ )
  76982. {
  76983. }
  76984. VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT( PipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76985. PipelinePropertiesIdentifierEXT( VkPipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  76986. : PipelinePropertiesIdentifierEXT( *reinterpret_cast<PipelinePropertiesIdentifierEXT const *>( &rhs ) )
  76987. {
  76988. }
  76989. PipelinePropertiesIdentifierEXT & operator=( PipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  76990. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  76991. PipelinePropertiesIdentifierEXT & operator=( VkPipelinePropertiesIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  76992. {
  76993. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT const *>( &rhs );
  76994. return *this;
  76995. }
  76996. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  76997. VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  76998. {
  76999. pNext = pNext_;
  77000. return *this;
  77001. }
  77002. VULKAN_HPP_CONSTEXPR_14 PipelinePropertiesIdentifierEXT & setPipelineIdentifier( std::array<uint8_t, VK_UUID_SIZE> pipelineIdentifier_ ) VULKAN_HPP_NOEXCEPT
  77003. {
  77004. pipelineIdentifier = pipelineIdentifier_;
  77005. return *this;
  77006. }
  77007. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77008. operator VkPipelinePropertiesIdentifierEXT const &() const VULKAN_HPP_NOEXCEPT
  77009. {
  77010. return *reinterpret_cast<const VkPipelinePropertiesIdentifierEXT *>( this );
  77011. }
  77012. operator VkPipelinePropertiesIdentifierEXT &() VULKAN_HPP_NOEXCEPT
  77013. {
  77014. return *reinterpret_cast<VkPipelinePropertiesIdentifierEXT *>( this );
  77015. }
  77016. #if defined( VULKAN_HPP_USE_REFLECT )
  77017. # if 14 <= VULKAN_HPP_CPP_VERSION
  77018. auto
  77019. # else
  77020. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> const &>
  77021. # endif
  77022. reflect() const VULKAN_HPP_NOEXCEPT
  77023. {
  77024. return std::tie( sType, pNext, pipelineIdentifier );
  77025. }
  77026. #endif
  77027. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77028. auto operator<=>( PipelinePropertiesIdentifierEXT const & ) const = default;
  77029. #else
  77030. bool operator==( PipelinePropertiesIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77031. {
  77032. # if defined( VULKAN_HPP_USE_REFLECT )
  77033. return this->reflect() == rhs.reflect();
  77034. # else
  77035. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineIdentifier == rhs.pipelineIdentifier );
  77036. # endif
  77037. }
  77038. bool operator!=( PipelinePropertiesIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77039. {
  77040. return !operator==( rhs );
  77041. }
  77042. #endif
  77043. public:
  77044. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelinePropertiesIdentifierEXT;
  77045. void * pNext = {};
  77046. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_UUID_SIZE> pipelineIdentifier = {};
  77047. };
  77048. template <>
  77049. struct CppType<StructureType, StructureType::ePipelinePropertiesIdentifierEXT>
  77050. {
  77051. using Type = PipelinePropertiesIdentifierEXT;
  77052. };
  77053. struct PipelineRasterizationConservativeStateCreateInfoEXT
  77054. {
  77055. using NativeType = VkPipelineRasterizationConservativeStateCreateInfoEXT;
  77056. static const bool allowDuplicate = false;
  77057. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
  77058. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77059. VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT(
  77060. VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {},
  77061. VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled,
  77062. float extraPrimitiveOverestimationSize_ = {},
  77063. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77064. : pNext( pNext_ )
  77065. , flags( flags_ )
  77066. , conservativeRasterizationMode( conservativeRasterizationMode_ )
  77067. , extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ )
  77068. {
  77069. }
  77070. VULKAN_HPP_CONSTEXPR
  77071. PipelineRasterizationConservativeStateCreateInfoEXT( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77072. PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77073. : PipelineRasterizationConservativeStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationConservativeStateCreateInfoEXT const *>( &rhs ) )
  77074. {
  77075. }
  77076. PipelineRasterizationConservativeStateCreateInfoEXT &
  77077. operator=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77078. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77079. PipelineRasterizationConservativeStateCreateInfoEXT & operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77080. {
  77081. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT const *>( &rhs );
  77082. return *this;
  77083. }
  77084. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77085. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77086. {
  77087. pNext = pNext_;
  77088. return *this;
  77089. }
  77090. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT &
  77091. setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  77092. {
  77093. flags = flags_;
  77094. return *this;
  77095. }
  77096. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT &
  77097. setConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
  77098. {
  77099. conservativeRasterizationMode = conservativeRasterizationMode_;
  77100. return *this;
  77101. }
  77102. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT &
  77103. setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT
  77104. {
  77105. extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
  77106. return *this;
  77107. }
  77108. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77109. operator VkPipelineRasterizationConservativeStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  77110. {
  77111. return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT *>( this );
  77112. }
  77113. operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  77114. {
  77115. return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT *>( this );
  77116. }
  77117. #if defined( VULKAN_HPP_USE_REFLECT )
  77118. # if 14 <= VULKAN_HPP_CPP_VERSION
  77119. auto
  77120. # else
  77121. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  77122. const void * const &,
  77123. VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT const &,
  77124. VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT const &,
  77125. float const &>
  77126. # endif
  77127. reflect() const VULKAN_HPP_NOEXCEPT
  77128. {
  77129. return std::tie( sType, pNext, flags, conservativeRasterizationMode, extraPrimitiveOverestimationSize );
  77130. }
  77131. #endif
  77132. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77133. auto operator<=>( PipelineRasterizationConservativeStateCreateInfoEXT const & ) const = default;
  77134. #else
  77135. bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77136. {
  77137. # if defined( VULKAN_HPP_USE_REFLECT )
  77138. return this->reflect() == rhs.reflect();
  77139. # else
  77140. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  77141. ( conservativeRasterizationMode == rhs.conservativeRasterizationMode ) &&
  77142. ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize );
  77143. # endif
  77144. }
  77145. bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77146. {
  77147. return !operator==( rhs );
  77148. }
  77149. #endif
  77150. public:
  77151. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
  77152. const void * pNext = {};
  77153. VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {};
  77154. VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled;
  77155. float extraPrimitiveOverestimationSize = {};
  77156. };
  77157. template <>
  77158. struct CppType<StructureType, StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT>
  77159. {
  77160. using Type = PipelineRasterizationConservativeStateCreateInfoEXT;
  77161. };
  77162. struct PipelineRasterizationDepthClipStateCreateInfoEXT
  77163. {
  77164. using NativeType = VkPipelineRasterizationDepthClipStateCreateInfoEXT;
  77165. static const bool allowDuplicate = false;
  77166. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
  77167. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77168. VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {},
  77169. VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {},
  77170. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77171. : pNext( pNext_ )
  77172. , flags( flags_ )
  77173. , depthClipEnable( depthClipEnable_ )
  77174. {
  77175. }
  77176. VULKAN_HPP_CONSTEXPR
  77177. PipelineRasterizationDepthClipStateCreateInfoEXT( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77178. PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77179. : PipelineRasterizationDepthClipStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationDepthClipStateCreateInfoEXT const *>( &rhs ) )
  77180. {
  77181. }
  77182. PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77183. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77184. PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77185. {
  77186. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT const *>( &rhs );
  77187. return *this;
  77188. }
  77189. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77190. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77191. {
  77192. pNext = pNext_;
  77193. return *this;
  77194. }
  77195. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT &
  77196. setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  77197. {
  77198. flags = flags_;
  77199. return *this;
  77200. }
  77201. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT &
  77202. setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT
  77203. {
  77204. depthClipEnable = depthClipEnable_;
  77205. return *this;
  77206. }
  77207. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77208. operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  77209. {
  77210. return *reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT *>( this );
  77211. }
  77212. operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  77213. {
  77214. return *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT *>( this );
  77215. }
  77216. #if defined( VULKAN_HPP_USE_REFLECT )
  77217. # if 14 <= VULKAN_HPP_CPP_VERSION
  77218. auto
  77219. # else
  77220. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  77221. const void * const &,
  77222. VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT const &,
  77223. VULKAN_HPP_NAMESPACE::Bool32 const &>
  77224. # endif
  77225. reflect() const VULKAN_HPP_NOEXCEPT
  77226. {
  77227. return std::tie( sType, pNext, flags, depthClipEnable );
  77228. }
  77229. #endif
  77230. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77231. auto operator<=>( PipelineRasterizationDepthClipStateCreateInfoEXT const & ) const = default;
  77232. #else
  77233. bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77234. {
  77235. # if defined( VULKAN_HPP_USE_REFLECT )
  77236. return this->reflect() == rhs.reflect();
  77237. # else
  77238. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( depthClipEnable == rhs.depthClipEnable );
  77239. # endif
  77240. }
  77241. bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77242. {
  77243. return !operator==( rhs );
  77244. }
  77245. #endif
  77246. public:
  77247. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
  77248. const void * pNext = {};
  77249. VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {};
  77250. VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {};
  77251. };
  77252. template <>
  77253. struct CppType<StructureType, StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT>
  77254. {
  77255. using Type = PipelineRasterizationDepthClipStateCreateInfoEXT;
  77256. };
  77257. struct PipelineRasterizationLineStateCreateInfoEXT
  77258. {
  77259. using NativeType = VkPipelineRasterizationLineStateCreateInfoEXT;
  77260. static const bool allowDuplicate = false;
  77261. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
  77262. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77263. VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT(
  77264. VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault,
  77265. VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ = {},
  77266. uint32_t lineStippleFactor_ = {},
  77267. uint16_t lineStipplePattern_ = {},
  77268. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77269. : pNext( pNext_ )
  77270. , lineRasterizationMode( lineRasterizationMode_ )
  77271. , stippledLineEnable( stippledLineEnable_ )
  77272. , lineStippleFactor( lineStippleFactor_ )
  77273. , lineStipplePattern( lineStipplePattern_ )
  77274. {
  77275. }
  77276. VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77277. PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77278. : PipelineRasterizationLineStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationLineStateCreateInfoEXT const *>( &rhs ) )
  77279. {
  77280. }
  77281. PipelineRasterizationLineStateCreateInfoEXT & operator=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77282. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77283. PipelineRasterizationLineStateCreateInfoEXT & operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77284. {
  77285. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT const *>( &rhs );
  77286. return *this;
  77287. }
  77288. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77289. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77290. {
  77291. pNext = pNext_;
  77292. return *this;
  77293. }
  77294. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT &
  77295. setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT
  77296. {
  77297. lineRasterizationMode = lineRasterizationMode_;
  77298. return *this;
  77299. }
  77300. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT &
  77301. setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT
  77302. {
  77303. stippledLineEnable = stippledLineEnable_;
  77304. return *this;
  77305. }
  77306. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT
  77307. {
  77308. lineStippleFactor = lineStippleFactor_;
  77309. return *this;
  77310. }
  77311. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT
  77312. {
  77313. lineStipplePattern = lineStipplePattern_;
  77314. return *this;
  77315. }
  77316. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77317. operator VkPipelineRasterizationLineStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  77318. {
  77319. return *reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT *>( this );
  77320. }
  77321. operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  77322. {
  77323. return *reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT *>( this );
  77324. }
  77325. #if defined( VULKAN_HPP_USE_REFLECT )
  77326. # if 14 <= VULKAN_HPP_CPP_VERSION
  77327. auto
  77328. # else
  77329. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  77330. const void * const &,
  77331. VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT const &,
  77332. VULKAN_HPP_NAMESPACE::Bool32 const &,
  77333. uint32_t const &,
  77334. uint16_t const &>
  77335. # endif
  77336. reflect() const VULKAN_HPP_NOEXCEPT
  77337. {
  77338. return std::tie( sType, pNext, lineRasterizationMode, stippledLineEnable, lineStippleFactor, lineStipplePattern );
  77339. }
  77340. #endif
  77341. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77342. auto operator<=>( PipelineRasterizationLineStateCreateInfoEXT const & ) const = default;
  77343. #else
  77344. bool operator==( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77345. {
  77346. # if defined( VULKAN_HPP_USE_REFLECT )
  77347. return this->reflect() == rhs.reflect();
  77348. # else
  77349. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( lineRasterizationMode == rhs.lineRasterizationMode ) &&
  77350. ( stippledLineEnable == rhs.stippledLineEnable ) && ( lineStippleFactor == rhs.lineStippleFactor ) &&
  77351. ( lineStipplePattern == rhs.lineStipplePattern );
  77352. # endif
  77353. }
  77354. bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77355. {
  77356. return !operator==( rhs );
  77357. }
  77358. #endif
  77359. public:
  77360. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT;
  77361. const void * pNext = {};
  77362. VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault;
  77363. VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {};
  77364. uint32_t lineStippleFactor = {};
  77365. uint16_t lineStipplePattern = {};
  77366. };
  77367. template <>
  77368. struct CppType<StructureType, StructureType::ePipelineRasterizationLineStateCreateInfoEXT>
  77369. {
  77370. using Type = PipelineRasterizationLineStateCreateInfoEXT;
  77371. };
  77372. struct PipelineRasterizationProvokingVertexStateCreateInfoEXT
  77373. {
  77374. using NativeType = VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
  77375. static const bool allowDuplicate = false;
  77376. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT;
  77377. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77378. VULKAN_HPP_CONSTEXPR PipelineRasterizationProvokingVertexStateCreateInfoEXT(
  77379. VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode_ = VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT::eFirstVertex,
  77380. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77381. : pNext( pNext_ )
  77382. , provokingVertexMode( provokingVertexMode_ )
  77383. {
  77384. }
  77385. VULKAN_HPP_CONSTEXPR PipelineRasterizationProvokingVertexStateCreateInfoEXT( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs )
  77386. VULKAN_HPP_NOEXCEPT = default;
  77387. PipelineRasterizationProvokingVertexStateCreateInfoEXT( VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77388. : PipelineRasterizationProvokingVertexStateCreateInfoEXT( *reinterpret_cast<PipelineRasterizationProvokingVertexStateCreateInfoEXT const *>( &rhs ) )
  77389. {
  77390. }
  77391. PipelineRasterizationProvokingVertexStateCreateInfoEXT &
  77392. operator=( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77393. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77394. PipelineRasterizationProvokingVertexStateCreateInfoEXT &
  77395. operator=( VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77396. {
  77397. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT const *>( &rhs );
  77398. return *this;
  77399. }
  77400. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77401. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationProvokingVertexStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77402. {
  77403. pNext = pNext_;
  77404. return *this;
  77405. }
  77406. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationProvokingVertexStateCreateInfoEXT &
  77407. setProvokingVertexMode( VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode_ ) VULKAN_HPP_NOEXCEPT
  77408. {
  77409. provokingVertexMode = provokingVertexMode_;
  77410. return *this;
  77411. }
  77412. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77413. operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  77414. {
  77415. return *reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *>( this );
  77416. }
  77417. operator VkPipelineRasterizationProvokingVertexStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  77418. {
  77419. return *reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *>( this );
  77420. }
  77421. #if defined( VULKAN_HPP_USE_REFLECT )
  77422. # if 14 <= VULKAN_HPP_CPP_VERSION
  77423. auto
  77424. # else
  77425. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT const &>
  77426. # endif
  77427. reflect() const VULKAN_HPP_NOEXCEPT
  77428. {
  77429. return std::tie( sType, pNext, provokingVertexMode );
  77430. }
  77431. #endif
  77432. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77433. auto operator<=>( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & ) const = default;
  77434. #else
  77435. bool operator==( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77436. {
  77437. # if defined( VULKAN_HPP_USE_REFLECT )
  77438. return this->reflect() == rhs.reflect();
  77439. # else
  77440. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( provokingVertexMode == rhs.provokingVertexMode );
  77441. # endif
  77442. }
  77443. bool operator!=( PipelineRasterizationProvokingVertexStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77444. {
  77445. return !operator==( rhs );
  77446. }
  77447. #endif
  77448. public:
  77449. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT;
  77450. const void * pNext = {};
  77451. VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode = VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT::eFirstVertex;
  77452. };
  77453. template <>
  77454. struct CppType<StructureType, StructureType::ePipelineRasterizationProvokingVertexStateCreateInfoEXT>
  77455. {
  77456. using Type = PipelineRasterizationProvokingVertexStateCreateInfoEXT;
  77457. };
  77458. struct PipelineRasterizationStateRasterizationOrderAMD
  77459. {
  77460. using NativeType = VkPipelineRasterizationStateRasterizationOrderAMD;
  77461. static const bool allowDuplicate = false;
  77462. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
  77463. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77464. VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD(
  77465. VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict,
  77466. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77467. : pNext( pNext_ )
  77468. , rasterizationOrder( rasterizationOrder_ )
  77469. {
  77470. }
  77471. VULKAN_HPP_CONSTEXPR
  77472. PipelineRasterizationStateRasterizationOrderAMD( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77473. PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  77474. : PipelineRasterizationStateRasterizationOrderAMD( *reinterpret_cast<PipelineRasterizationStateRasterizationOrderAMD const *>( &rhs ) )
  77475. {
  77476. }
  77477. PipelineRasterizationStateRasterizationOrderAMD & operator=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77478. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77479. PipelineRasterizationStateRasterizationOrderAMD & operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  77480. {
  77481. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD const *>( &rhs );
  77482. return *this;
  77483. }
  77484. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77485. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77486. {
  77487. pNext = pNext_;
  77488. return *this;
  77489. }
  77490. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateRasterizationOrderAMD &
  77491. setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT
  77492. {
  77493. rasterizationOrder = rasterizationOrder_;
  77494. return *this;
  77495. }
  77496. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77497. operator VkPipelineRasterizationStateRasterizationOrderAMD const &() const VULKAN_HPP_NOEXCEPT
  77498. {
  77499. return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD *>( this );
  77500. }
  77501. operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT
  77502. {
  77503. return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD *>( this );
  77504. }
  77505. #if defined( VULKAN_HPP_USE_REFLECT )
  77506. # if 14 <= VULKAN_HPP_CPP_VERSION
  77507. auto
  77508. # else
  77509. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RasterizationOrderAMD const &>
  77510. # endif
  77511. reflect() const VULKAN_HPP_NOEXCEPT
  77512. {
  77513. return std::tie( sType, pNext, rasterizationOrder );
  77514. }
  77515. #endif
  77516. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77517. auto operator<=>( PipelineRasterizationStateRasterizationOrderAMD const & ) const = default;
  77518. #else
  77519. bool operator==( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  77520. {
  77521. # if defined( VULKAN_HPP_USE_REFLECT )
  77522. return this->reflect() == rhs.reflect();
  77523. # else
  77524. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rasterizationOrder == rhs.rasterizationOrder );
  77525. # endif
  77526. }
  77527. bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  77528. {
  77529. return !operator==( rhs );
  77530. }
  77531. #endif
  77532. public:
  77533. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
  77534. const void * pNext = {};
  77535. VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict;
  77536. };
  77537. template <>
  77538. struct CppType<StructureType, StructureType::ePipelineRasterizationStateRasterizationOrderAMD>
  77539. {
  77540. using Type = PipelineRasterizationStateRasterizationOrderAMD;
  77541. };
  77542. struct PipelineRasterizationStateStreamCreateInfoEXT
  77543. {
  77544. using NativeType = VkPipelineRasterizationStateStreamCreateInfoEXT;
  77545. static const bool allowDuplicate = false;
  77546. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
  77547. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77548. VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {},
  77549. uint32_t rasterizationStream_ = {},
  77550. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77551. : pNext( pNext_ )
  77552. , flags( flags_ )
  77553. , rasterizationStream( rasterizationStream_ )
  77554. {
  77555. }
  77556. VULKAN_HPP_CONSTEXPR
  77557. PipelineRasterizationStateStreamCreateInfoEXT( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77558. PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77559. : PipelineRasterizationStateStreamCreateInfoEXT( *reinterpret_cast<PipelineRasterizationStateStreamCreateInfoEXT const *>( &rhs ) )
  77560. {
  77561. }
  77562. PipelineRasterizationStateStreamCreateInfoEXT & operator=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77563. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77564. PipelineRasterizationStateStreamCreateInfoEXT & operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77565. {
  77566. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT const *>( &rhs );
  77567. return *this;
  77568. }
  77569. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77570. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77571. {
  77572. pNext = pNext_;
  77573. return *this;
  77574. }
  77575. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT &
  77576. setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  77577. {
  77578. flags = flags_;
  77579. return *this;
  77580. }
  77581. VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT
  77582. {
  77583. rasterizationStream = rasterizationStream_;
  77584. return *this;
  77585. }
  77586. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77587. operator VkPipelineRasterizationStateStreamCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  77588. {
  77589. return *reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT *>( this );
  77590. }
  77591. operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  77592. {
  77593. return *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT *>( this );
  77594. }
  77595. #if defined( VULKAN_HPP_USE_REFLECT )
  77596. # if 14 <= VULKAN_HPP_CPP_VERSION
  77597. auto
  77598. # else
  77599. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  77600. const void * const &,
  77601. VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT const &,
  77602. uint32_t const &>
  77603. # endif
  77604. reflect() const VULKAN_HPP_NOEXCEPT
  77605. {
  77606. return std::tie( sType, pNext, flags, rasterizationStream );
  77607. }
  77608. #endif
  77609. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77610. auto operator<=>( PipelineRasterizationStateStreamCreateInfoEXT const & ) const = default;
  77611. #else
  77612. bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77613. {
  77614. # if defined( VULKAN_HPP_USE_REFLECT )
  77615. return this->reflect() == rhs.reflect();
  77616. # else
  77617. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( rasterizationStream == rhs.rasterizationStream );
  77618. # endif
  77619. }
  77620. bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77621. {
  77622. return !operator==( rhs );
  77623. }
  77624. #endif
  77625. public:
  77626. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
  77627. const void * pNext = {};
  77628. VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {};
  77629. uint32_t rasterizationStream = {};
  77630. };
  77631. template <>
  77632. struct CppType<StructureType, StructureType::ePipelineRasterizationStateStreamCreateInfoEXT>
  77633. {
  77634. using Type = PipelineRasterizationStateStreamCreateInfoEXT;
  77635. };
  77636. struct PipelineRenderingCreateInfo
  77637. {
  77638. using NativeType = VkPipelineRenderingCreateInfo;
  77639. static const bool allowDuplicate = false;
  77640. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRenderingCreateInfo;
  77641. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77642. VULKAN_HPP_CONSTEXPR PipelineRenderingCreateInfo( uint32_t viewMask_ = {},
  77643. uint32_t colorAttachmentCount_ = {},
  77644. const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ = {},
  77645. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  77646. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  77647. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77648. : pNext( pNext_ )
  77649. , viewMask( viewMask_ )
  77650. , colorAttachmentCount( colorAttachmentCount_ )
  77651. , pColorAttachmentFormats( pColorAttachmentFormats_ )
  77652. , depthAttachmentFormat( depthAttachmentFormat_ )
  77653. , stencilAttachmentFormat( stencilAttachmentFormat_ )
  77654. {
  77655. }
  77656. VULKAN_HPP_CONSTEXPR PipelineRenderingCreateInfo( PipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77657. PipelineRenderingCreateInfo( VkPipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  77658. : PipelineRenderingCreateInfo( *reinterpret_cast<PipelineRenderingCreateInfo const *>( &rhs ) )
  77659. {
  77660. }
  77661. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  77662. PipelineRenderingCreateInfo( uint32_t viewMask_,
  77663. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_,
  77664. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  77665. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  77666. const void * pNext_ = nullptr )
  77667. : pNext( pNext_ )
  77668. , viewMask( viewMask_ )
  77669. , colorAttachmentCount( static_cast<uint32_t>( colorAttachmentFormats_.size() ) )
  77670. , pColorAttachmentFormats( colorAttachmentFormats_.data() )
  77671. , depthAttachmentFormat( depthAttachmentFormat_ )
  77672. , stencilAttachmentFormat( stencilAttachmentFormat_ )
  77673. {
  77674. }
  77675. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  77676. PipelineRenderingCreateInfo & operator=( PipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77677. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77678. PipelineRenderingCreateInfo & operator=( VkPipelineRenderingCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  77679. {
  77680. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo const *>( &rhs );
  77681. return *this;
  77682. }
  77683. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77684. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77685. {
  77686. pNext = pNext_;
  77687. return *this;
  77688. }
  77689. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
  77690. {
  77691. viewMask = viewMask_;
  77692. return *this;
  77693. }
  77694. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  77695. {
  77696. colorAttachmentCount = colorAttachmentCount_;
  77697. return *this;
  77698. }
  77699. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo &
  77700. setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
  77701. {
  77702. pColorAttachmentFormats = pColorAttachmentFormats_;
  77703. return *this;
  77704. }
  77705. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  77706. PipelineRenderingCreateInfo & setColorAttachmentFormats(
  77707. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
  77708. {
  77709. colorAttachmentCount = static_cast<uint32_t>( colorAttachmentFormats_.size() );
  77710. pColorAttachmentFormats = colorAttachmentFormats_.data();
  77711. return *this;
  77712. }
  77713. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  77714. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo & setDepthAttachmentFormat( VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
  77715. {
  77716. depthAttachmentFormat = depthAttachmentFormat_;
  77717. return *this;
  77718. }
  77719. VULKAN_HPP_CONSTEXPR_14 PipelineRenderingCreateInfo &
  77720. setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
  77721. {
  77722. stencilAttachmentFormat = stencilAttachmentFormat_;
  77723. return *this;
  77724. }
  77725. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77726. operator VkPipelineRenderingCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  77727. {
  77728. return *reinterpret_cast<const VkPipelineRenderingCreateInfo *>( this );
  77729. }
  77730. operator VkPipelineRenderingCreateInfo &() VULKAN_HPP_NOEXCEPT
  77731. {
  77732. return *reinterpret_cast<VkPipelineRenderingCreateInfo *>( this );
  77733. }
  77734. #if defined( VULKAN_HPP_USE_REFLECT )
  77735. # if 14 <= VULKAN_HPP_CPP_VERSION
  77736. auto
  77737. # else
  77738. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  77739. const void * const &,
  77740. uint32_t const &,
  77741. uint32_t const &,
  77742. const VULKAN_HPP_NAMESPACE::Format * const &,
  77743. VULKAN_HPP_NAMESPACE::Format const &,
  77744. VULKAN_HPP_NAMESPACE::Format const &>
  77745. # endif
  77746. reflect() const VULKAN_HPP_NOEXCEPT
  77747. {
  77748. return std::tie( sType, pNext, viewMask, colorAttachmentCount, pColorAttachmentFormats, depthAttachmentFormat, stencilAttachmentFormat );
  77749. }
  77750. #endif
  77751. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77752. auto operator<=>( PipelineRenderingCreateInfo const & ) const = default;
  77753. #else
  77754. bool operator==( PipelineRenderingCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  77755. {
  77756. # if defined( VULKAN_HPP_USE_REFLECT )
  77757. return this->reflect() == rhs.reflect();
  77758. # else
  77759. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewMask == rhs.viewMask ) && ( colorAttachmentCount == rhs.colorAttachmentCount ) &&
  77760. ( pColorAttachmentFormats == rhs.pColorAttachmentFormats ) && ( depthAttachmentFormat == rhs.depthAttachmentFormat ) &&
  77761. ( stencilAttachmentFormat == rhs.stencilAttachmentFormat );
  77762. # endif
  77763. }
  77764. bool operator!=( PipelineRenderingCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  77765. {
  77766. return !operator==( rhs );
  77767. }
  77768. #endif
  77769. public:
  77770. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRenderingCreateInfo;
  77771. const void * pNext = {};
  77772. uint32_t viewMask = {};
  77773. uint32_t colorAttachmentCount = {};
  77774. const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats = {};
  77775. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  77776. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  77777. };
  77778. template <>
  77779. struct CppType<StructureType, StructureType::ePipelineRenderingCreateInfo>
  77780. {
  77781. using Type = PipelineRenderingCreateInfo;
  77782. };
  77783. using PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo;
  77784. struct PipelineRepresentativeFragmentTestStateCreateInfoNV
  77785. {
  77786. using NativeType = VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
  77787. static const bool allowDuplicate = false;
  77788. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
  77789. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77790. VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {},
  77791. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77792. : pNext( pNext_ )
  77793. , representativeFragmentTestEnable( representativeFragmentTestEnable_ )
  77794. {
  77795. }
  77796. VULKAN_HPP_CONSTEXPR
  77797. PipelineRepresentativeFragmentTestStateCreateInfoNV( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77798. PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  77799. : PipelineRepresentativeFragmentTestStateCreateInfoNV( *reinterpret_cast<PipelineRepresentativeFragmentTestStateCreateInfoNV const *>( &rhs ) )
  77800. {
  77801. }
  77802. PipelineRepresentativeFragmentTestStateCreateInfoNV &
  77803. operator=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77804. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77805. PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  77806. {
  77807. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV const *>( &rhs );
  77808. return *this;
  77809. }
  77810. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77811. VULKAN_HPP_CONSTEXPR_14 PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77812. {
  77813. pNext = pNext_;
  77814. return *this;
  77815. }
  77816. VULKAN_HPP_CONSTEXPR_14 PipelineRepresentativeFragmentTestStateCreateInfoNV &
  77817. setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT
  77818. {
  77819. representativeFragmentTestEnable = representativeFragmentTestEnable_;
  77820. return *this;
  77821. }
  77822. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77823. operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  77824. {
  77825. return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV *>( this );
  77826. }
  77827. operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  77828. {
  77829. return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV *>( this );
  77830. }
  77831. #if defined( VULKAN_HPP_USE_REFLECT )
  77832. # if 14 <= VULKAN_HPP_CPP_VERSION
  77833. auto
  77834. # else
  77835. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  77836. # endif
  77837. reflect() const VULKAN_HPP_NOEXCEPT
  77838. {
  77839. return std::tie( sType, pNext, representativeFragmentTestEnable );
  77840. }
  77841. #endif
  77842. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77843. auto operator<=>( PipelineRepresentativeFragmentTestStateCreateInfoNV const & ) const = default;
  77844. #else
  77845. bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  77846. {
  77847. # if defined( VULKAN_HPP_USE_REFLECT )
  77848. return this->reflect() == rhs.reflect();
  77849. # else
  77850. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable );
  77851. # endif
  77852. }
  77853. bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  77854. {
  77855. return !operator==( rhs );
  77856. }
  77857. #endif
  77858. public:
  77859. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
  77860. const void * pNext = {};
  77861. VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {};
  77862. };
  77863. template <>
  77864. struct CppType<StructureType, StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV>
  77865. {
  77866. using Type = PipelineRepresentativeFragmentTestStateCreateInfoNV;
  77867. };
  77868. struct PipelineRobustnessCreateInfoEXT
  77869. {
  77870. using NativeType = VkPipelineRobustnessCreateInfoEXT;
  77871. static const bool allowDuplicate = false;
  77872. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRobustnessCreateInfoEXT;
  77873. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77874. VULKAN_HPP_CONSTEXPR PipelineRobustnessCreateInfoEXT(
  77875. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT storageBuffers_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  77876. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT uniformBuffers_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  77877. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault,
  77878. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT images_ = VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault,
  77879. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77880. : pNext( pNext_ )
  77881. , storageBuffers( storageBuffers_ )
  77882. , uniformBuffers( uniformBuffers_ )
  77883. , vertexInputs( vertexInputs_ )
  77884. , images( images_ )
  77885. {
  77886. }
  77887. VULKAN_HPP_CONSTEXPR PipelineRobustnessCreateInfoEXT( PipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77888. PipelineRobustnessCreateInfoEXT( VkPipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77889. : PipelineRobustnessCreateInfoEXT( *reinterpret_cast<PipelineRobustnessCreateInfoEXT const *>( &rhs ) )
  77890. {
  77891. }
  77892. PipelineRobustnessCreateInfoEXT & operator=( PipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77893. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  77894. PipelineRobustnessCreateInfoEXT & operator=( VkPipelineRobustnessCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77895. {
  77896. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT const *>( &rhs );
  77897. return *this;
  77898. }
  77899. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  77900. VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  77901. {
  77902. pNext = pNext_;
  77903. return *this;
  77904. }
  77905. VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT &
  77906. setStorageBuffers( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT storageBuffers_ ) VULKAN_HPP_NOEXCEPT
  77907. {
  77908. storageBuffers = storageBuffers_;
  77909. return *this;
  77910. }
  77911. VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT &
  77912. setUniformBuffers( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT uniformBuffers_ ) VULKAN_HPP_NOEXCEPT
  77913. {
  77914. uniformBuffers = uniformBuffers_;
  77915. return *this;
  77916. }
  77917. VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT &
  77918. setVertexInputs( VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs_ ) VULKAN_HPP_NOEXCEPT
  77919. {
  77920. vertexInputs = vertexInputs_;
  77921. return *this;
  77922. }
  77923. VULKAN_HPP_CONSTEXPR_14 PipelineRobustnessCreateInfoEXT & setImages( VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT images_ ) VULKAN_HPP_NOEXCEPT
  77924. {
  77925. images = images_;
  77926. return *this;
  77927. }
  77928. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  77929. operator VkPipelineRobustnessCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  77930. {
  77931. return *reinterpret_cast<const VkPipelineRobustnessCreateInfoEXT *>( this );
  77932. }
  77933. operator VkPipelineRobustnessCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  77934. {
  77935. return *reinterpret_cast<VkPipelineRobustnessCreateInfoEXT *>( this );
  77936. }
  77937. #if defined( VULKAN_HPP_USE_REFLECT )
  77938. # if 14 <= VULKAN_HPP_CPP_VERSION
  77939. auto
  77940. # else
  77941. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  77942. const void * const &,
  77943. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  77944. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  77945. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT const &,
  77946. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT const &>
  77947. # endif
  77948. reflect() const VULKAN_HPP_NOEXCEPT
  77949. {
  77950. return std::tie( sType, pNext, storageBuffers, uniformBuffers, vertexInputs, images );
  77951. }
  77952. #endif
  77953. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  77954. auto operator<=>( PipelineRobustnessCreateInfoEXT const & ) const = default;
  77955. #else
  77956. bool operator==( PipelineRobustnessCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77957. {
  77958. # if defined( VULKAN_HPP_USE_REFLECT )
  77959. return this->reflect() == rhs.reflect();
  77960. # else
  77961. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( storageBuffers == rhs.storageBuffers ) && ( uniformBuffers == rhs.uniformBuffers ) &&
  77962. ( vertexInputs == rhs.vertexInputs ) && ( images == rhs.images );
  77963. # endif
  77964. }
  77965. bool operator!=( PipelineRobustnessCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  77966. {
  77967. return !operator==( rhs );
  77968. }
  77969. #endif
  77970. public:
  77971. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRobustnessCreateInfoEXT;
  77972. const void * pNext = {};
  77973. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT storageBuffers = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  77974. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT uniformBuffers = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  77975. VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT vertexInputs = VULKAN_HPP_NAMESPACE::PipelineRobustnessBufferBehaviorEXT::eDeviceDefault;
  77976. VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT images = VULKAN_HPP_NAMESPACE::PipelineRobustnessImageBehaviorEXT::eDeviceDefault;
  77977. };
  77978. template <>
  77979. struct CppType<StructureType, StructureType::ePipelineRobustnessCreateInfoEXT>
  77980. {
  77981. using Type = PipelineRobustnessCreateInfoEXT;
  77982. };
  77983. struct PipelineSampleLocationsStateCreateInfoEXT
  77984. {
  77985. using NativeType = VkPipelineSampleLocationsStateCreateInfoEXT;
  77986. static const bool allowDuplicate = false;
  77987. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
  77988. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  77989. VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {},
  77990. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {},
  77991. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  77992. : pNext( pNext_ )
  77993. , sampleLocationsEnable( sampleLocationsEnable_ )
  77994. , sampleLocationsInfo( sampleLocationsInfo_ )
  77995. {
  77996. }
  77997. VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  77998. PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  77999. : PipelineSampleLocationsStateCreateInfoEXT( *reinterpret_cast<PipelineSampleLocationsStateCreateInfoEXT const *>( &rhs ) )
  78000. {
  78001. }
  78002. PipelineSampleLocationsStateCreateInfoEXT & operator=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78003. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78004. PipelineSampleLocationsStateCreateInfoEXT & operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78005. {
  78006. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT const *>( &rhs );
  78007. return *this;
  78008. }
  78009. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78010. VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78011. {
  78012. pNext = pNext_;
  78013. return *this;
  78014. }
  78015. VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT &
  78016. setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT
  78017. {
  78018. sampleLocationsEnable = sampleLocationsEnable_;
  78019. return *this;
  78020. }
  78021. VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT &
  78022. setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
  78023. {
  78024. sampleLocationsInfo = sampleLocationsInfo_;
  78025. return *this;
  78026. }
  78027. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78028. operator VkPipelineSampleLocationsStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78029. {
  78030. return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT *>( this );
  78031. }
  78032. operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  78033. {
  78034. return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT *>( this );
  78035. }
  78036. #if defined( VULKAN_HPP_USE_REFLECT )
  78037. # if 14 <= VULKAN_HPP_CPP_VERSION
  78038. auto
  78039. # else
  78040. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  78041. const void * const &,
  78042. VULKAN_HPP_NAMESPACE::Bool32 const &,
  78043. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const &>
  78044. # endif
  78045. reflect() const VULKAN_HPP_NOEXCEPT
  78046. {
  78047. return std::tie( sType, pNext, sampleLocationsEnable, sampleLocationsInfo );
  78048. }
  78049. #endif
  78050. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78051. auto operator<=>( PipelineSampleLocationsStateCreateInfoEXT const & ) const = default;
  78052. #else
  78053. bool operator==( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78054. {
  78055. # if defined( VULKAN_HPP_USE_REFLECT )
  78056. return this->reflect() == rhs.reflect();
  78057. # else
  78058. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleLocationsEnable == rhs.sampleLocationsEnable ) &&
  78059. ( sampleLocationsInfo == rhs.sampleLocationsInfo );
  78060. # endif
  78061. }
  78062. bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78063. {
  78064. return !operator==( rhs );
  78065. }
  78066. #endif
  78067. public:
  78068. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
  78069. const void * pNext = {};
  78070. VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {};
  78071. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
  78072. };
  78073. template <>
  78074. struct CppType<StructureType, StructureType::ePipelineSampleLocationsStateCreateInfoEXT>
  78075. {
  78076. using Type = PipelineSampleLocationsStateCreateInfoEXT;
  78077. };
  78078. struct PipelineShaderStageModuleIdentifierCreateInfoEXT
  78079. {
  78080. using NativeType = VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
  78081. static const bool allowDuplicate = false;
  78082. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageModuleIdentifierCreateInfoEXT;
  78083. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78084. VULKAN_HPP_CONSTEXPR PipelineShaderStageModuleIdentifierCreateInfoEXT( uint32_t identifierSize_ = {},
  78085. const uint8_t * pIdentifier_ = {},
  78086. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78087. : pNext( pNext_ )
  78088. , identifierSize( identifierSize_ )
  78089. , pIdentifier( pIdentifier_ )
  78090. {
  78091. }
  78092. VULKAN_HPP_CONSTEXPR
  78093. PipelineShaderStageModuleIdentifierCreateInfoEXT( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78094. PipelineShaderStageModuleIdentifierCreateInfoEXT( VkPipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78095. : PipelineShaderStageModuleIdentifierCreateInfoEXT( *reinterpret_cast<PipelineShaderStageModuleIdentifierCreateInfoEXT const *>( &rhs ) )
  78096. {
  78097. }
  78098. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78099. PipelineShaderStageModuleIdentifierCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & identifier_,
  78100. const void * pNext_ = nullptr )
  78101. : pNext( pNext_ ), identifierSize( static_cast<uint32_t>( identifier_.size() ) ), pIdentifier( identifier_.data() )
  78102. {
  78103. }
  78104. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78105. PipelineShaderStageModuleIdentifierCreateInfoEXT & operator=( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78106. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78107. PipelineShaderStageModuleIdentifierCreateInfoEXT & operator=( VkPipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78108. {
  78109. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT const *>( &rhs );
  78110. return *this;
  78111. }
  78112. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78113. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageModuleIdentifierCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78114. {
  78115. pNext = pNext_;
  78116. return *this;
  78117. }
  78118. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageModuleIdentifierCreateInfoEXT & setIdentifierSize( uint32_t identifierSize_ ) VULKAN_HPP_NOEXCEPT
  78119. {
  78120. identifierSize = identifierSize_;
  78121. return *this;
  78122. }
  78123. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageModuleIdentifierCreateInfoEXT & setPIdentifier( const uint8_t * pIdentifier_ ) VULKAN_HPP_NOEXCEPT
  78124. {
  78125. pIdentifier = pIdentifier_;
  78126. return *this;
  78127. }
  78128. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78129. PipelineShaderStageModuleIdentifierCreateInfoEXT &
  78130. setIdentifier( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint8_t> const & identifier_ ) VULKAN_HPP_NOEXCEPT
  78131. {
  78132. identifierSize = static_cast<uint32_t>( identifier_.size() );
  78133. pIdentifier = identifier_.data();
  78134. return *this;
  78135. }
  78136. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78137. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78138. operator VkPipelineShaderStageModuleIdentifierCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78139. {
  78140. return *reinterpret_cast<const VkPipelineShaderStageModuleIdentifierCreateInfoEXT *>( this );
  78141. }
  78142. operator VkPipelineShaderStageModuleIdentifierCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  78143. {
  78144. return *reinterpret_cast<VkPipelineShaderStageModuleIdentifierCreateInfoEXT *>( this );
  78145. }
  78146. #if defined( VULKAN_HPP_USE_REFLECT )
  78147. # if 14 <= VULKAN_HPP_CPP_VERSION
  78148. auto
  78149. # else
  78150. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint8_t * const &>
  78151. # endif
  78152. reflect() const VULKAN_HPP_NOEXCEPT
  78153. {
  78154. return std::tie( sType, pNext, identifierSize, pIdentifier );
  78155. }
  78156. #endif
  78157. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78158. auto operator<=>( PipelineShaderStageModuleIdentifierCreateInfoEXT const & ) const = default;
  78159. #else
  78160. bool operator==( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78161. {
  78162. # if defined( VULKAN_HPP_USE_REFLECT )
  78163. return this->reflect() == rhs.reflect();
  78164. # else
  78165. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( identifierSize == rhs.identifierSize ) && ( pIdentifier == rhs.pIdentifier );
  78166. # endif
  78167. }
  78168. bool operator!=( PipelineShaderStageModuleIdentifierCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78169. {
  78170. return !operator==( rhs );
  78171. }
  78172. #endif
  78173. public:
  78174. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageModuleIdentifierCreateInfoEXT;
  78175. const void * pNext = {};
  78176. uint32_t identifierSize = {};
  78177. const uint8_t * pIdentifier = {};
  78178. };
  78179. template <>
  78180. struct CppType<StructureType, StructureType::ePipelineShaderStageModuleIdentifierCreateInfoEXT>
  78181. {
  78182. using Type = PipelineShaderStageModuleIdentifierCreateInfoEXT;
  78183. };
  78184. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  78185. struct PipelineShaderStageNodeCreateInfoAMDX
  78186. {
  78187. using NativeType = VkPipelineShaderStageNodeCreateInfoAMDX;
  78188. static const bool allowDuplicate = false;
  78189. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageNodeCreateInfoAMDX;
  78190. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78191. VULKAN_HPP_CONSTEXPR
  78192. PipelineShaderStageNodeCreateInfoAMDX( const char * pName_ = {}, uint32_t index_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78193. : pNext( pNext_ )
  78194. , pName( pName_ )
  78195. , index( index_ )
  78196. {
  78197. }
  78198. VULKAN_HPP_CONSTEXPR PipelineShaderStageNodeCreateInfoAMDX( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78199. PipelineShaderStageNodeCreateInfoAMDX( VkPipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  78200. : PipelineShaderStageNodeCreateInfoAMDX( *reinterpret_cast<PipelineShaderStageNodeCreateInfoAMDX const *>( &rhs ) )
  78201. {
  78202. }
  78203. PipelineShaderStageNodeCreateInfoAMDX & operator=( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78204. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78205. PipelineShaderStageNodeCreateInfoAMDX & operator=( VkPipelineShaderStageNodeCreateInfoAMDX const & rhs ) VULKAN_HPP_NOEXCEPT
  78206. {
  78207. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX const *>( &rhs );
  78208. return *this;
  78209. }
  78210. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78211. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageNodeCreateInfoAMDX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78212. {
  78213. pNext = pNext_;
  78214. return *this;
  78215. }
  78216. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageNodeCreateInfoAMDX & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
  78217. {
  78218. pName = pName_;
  78219. return *this;
  78220. }
  78221. VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageNodeCreateInfoAMDX & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
  78222. {
  78223. index = index_;
  78224. return *this;
  78225. }
  78226. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78227. operator VkPipelineShaderStageNodeCreateInfoAMDX const &() const VULKAN_HPP_NOEXCEPT
  78228. {
  78229. return *reinterpret_cast<const VkPipelineShaderStageNodeCreateInfoAMDX *>( this );
  78230. }
  78231. operator VkPipelineShaderStageNodeCreateInfoAMDX &() VULKAN_HPP_NOEXCEPT
  78232. {
  78233. return *reinterpret_cast<VkPipelineShaderStageNodeCreateInfoAMDX *>( this );
  78234. }
  78235. # if defined( VULKAN_HPP_USE_REFLECT )
  78236. # if 14 <= VULKAN_HPP_CPP_VERSION
  78237. auto
  78238. # else
  78239. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const char * const &, uint32_t const &>
  78240. # endif
  78241. reflect() const VULKAN_HPP_NOEXCEPT
  78242. {
  78243. return std::tie( sType, pNext, pName, index );
  78244. }
  78245. # endif
  78246. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78247. std::strong_ordering operator<=>( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
  78248. {
  78249. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  78250. return cmp;
  78251. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  78252. return cmp;
  78253. if ( pName != rhs.pName )
  78254. if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
  78255. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  78256. if ( auto cmp = index <=> rhs.index; cmp != 0 )
  78257. return cmp;
  78258. return std::strong_ordering::equivalent;
  78259. }
  78260. # endif
  78261. bool operator==( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
  78262. {
  78263. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) ) && ( index == rhs.index );
  78264. }
  78265. bool operator!=( PipelineShaderStageNodeCreateInfoAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT
  78266. {
  78267. return !operator==( rhs );
  78268. }
  78269. public:
  78270. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageNodeCreateInfoAMDX;
  78271. const void * pNext = {};
  78272. const char * pName = {};
  78273. uint32_t index = {};
  78274. };
  78275. template <>
  78276. struct CppType<StructureType, StructureType::ePipelineShaderStageNodeCreateInfoAMDX>
  78277. {
  78278. using Type = PipelineShaderStageNodeCreateInfoAMDX;
  78279. };
  78280. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  78281. struct PipelineShaderStageRequiredSubgroupSizeCreateInfo
  78282. {
  78283. using NativeType = VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
  78284. static const bool allowDuplicate = false;
  78285. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfo;
  78286. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78287. VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfo( uint32_t requiredSubgroupSize_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78288. : pNext( pNext_ )
  78289. , requiredSubgroupSize( requiredSubgroupSize_ )
  78290. {
  78291. }
  78292. VULKAN_HPP_CONSTEXPR
  78293. PipelineShaderStageRequiredSubgroupSizeCreateInfo( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78294. PipelineShaderStageRequiredSubgroupSizeCreateInfo( VkPipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  78295. : PipelineShaderStageRequiredSubgroupSizeCreateInfo( *reinterpret_cast<PipelineShaderStageRequiredSubgroupSizeCreateInfo const *>( &rhs ) )
  78296. {
  78297. }
  78298. PipelineShaderStageRequiredSubgroupSizeCreateInfo &
  78299. operator=( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78300. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78301. PipelineShaderStageRequiredSubgroupSizeCreateInfo & operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  78302. {
  78303. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo const *>( &rhs );
  78304. return *this;
  78305. }
  78306. operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  78307. {
  78308. return *reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *>( this );
  78309. }
  78310. operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfo &() VULKAN_HPP_NOEXCEPT
  78311. {
  78312. return *reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *>( this );
  78313. }
  78314. #if defined( VULKAN_HPP_USE_REFLECT )
  78315. # if 14 <= VULKAN_HPP_CPP_VERSION
  78316. auto
  78317. # else
  78318. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  78319. # endif
  78320. reflect() const VULKAN_HPP_NOEXCEPT
  78321. {
  78322. return std::tie( sType, pNext, requiredSubgroupSize );
  78323. }
  78324. #endif
  78325. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78326. auto operator<=>( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & ) const = default;
  78327. #else
  78328. bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  78329. {
  78330. # if defined( VULKAN_HPP_USE_REFLECT )
  78331. return this->reflect() == rhs.reflect();
  78332. # else
  78333. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( requiredSubgroupSize == rhs.requiredSubgroupSize );
  78334. # endif
  78335. }
  78336. bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  78337. {
  78338. return !operator==( rhs );
  78339. }
  78340. #endif
  78341. public:
  78342. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfo;
  78343. void * pNext = {};
  78344. uint32_t requiredSubgroupSize = {};
  78345. };
  78346. template <>
  78347. struct CppType<StructureType, StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfo>
  78348. {
  78349. using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
  78350. };
  78351. using PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
  78352. using ShaderRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
  78353. struct PipelineTessellationDomainOriginStateCreateInfo
  78354. {
  78355. using NativeType = VkPipelineTessellationDomainOriginStateCreateInfo;
  78356. static const bool allowDuplicate = false;
  78357. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
  78358. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78359. VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo(
  78360. VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft,
  78361. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78362. : pNext( pNext_ )
  78363. , domainOrigin( domainOrigin_ )
  78364. {
  78365. }
  78366. VULKAN_HPP_CONSTEXPR
  78367. PipelineTessellationDomainOriginStateCreateInfo( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78368. PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  78369. : PipelineTessellationDomainOriginStateCreateInfo( *reinterpret_cast<PipelineTessellationDomainOriginStateCreateInfo const *>( &rhs ) )
  78370. {
  78371. }
  78372. PipelineTessellationDomainOriginStateCreateInfo & operator=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78373. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78374. PipelineTessellationDomainOriginStateCreateInfo & operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  78375. {
  78376. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo const *>( &rhs );
  78377. return *this;
  78378. }
  78379. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78380. VULKAN_HPP_CONSTEXPR_14 PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78381. {
  78382. pNext = pNext_;
  78383. return *this;
  78384. }
  78385. VULKAN_HPP_CONSTEXPR_14 PipelineTessellationDomainOriginStateCreateInfo &
  78386. setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT
  78387. {
  78388. domainOrigin = domainOrigin_;
  78389. return *this;
  78390. }
  78391. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78392. operator VkPipelineTessellationDomainOriginStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  78393. {
  78394. return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo *>( this );
  78395. }
  78396. operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT
  78397. {
  78398. return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo *>( this );
  78399. }
  78400. #if defined( VULKAN_HPP_USE_REFLECT )
  78401. # if 14 <= VULKAN_HPP_CPP_VERSION
  78402. auto
  78403. # else
  78404. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::TessellationDomainOrigin const &>
  78405. # endif
  78406. reflect() const VULKAN_HPP_NOEXCEPT
  78407. {
  78408. return std::tie( sType, pNext, domainOrigin );
  78409. }
  78410. #endif
  78411. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78412. auto operator<=>( PipelineTessellationDomainOriginStateCreateInfo const & ) const = default;
  78413. #else
  78414. bool operator==( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  78415. {
  78416. # if defined( VULKAN_HPP_USE_REFLECT )
  78417. return this->reflect() == rhs.reflect();
  78418. # else
  78419. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( domainOrigin == rhs.domainOrigin );
  78420. # endif
  78421. }
  78422. bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  78423. {
  78424. return !operator==( rhs );
  78425. }
  78426. #endif
  78427. public:
  78428. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
  78429. const void * pNext = {};
  78430. VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft;
  78431. };
  78432. template <>
  78433. struct CppType<StructureType, StructureType::ePipelineTessellationDomainOriginStateCreateInfo>
  78434. {
  78435. using Type = PipelineTessellationDomainOriginStateCreateInfo;
  78436. };
  78437. using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
  78438. struct VertexInputBindingDivisorDescriptionEXT
  78439. {
  78440. using NativeType = VkVertexInputBindingDivisorDescriptionEXT;
  78441. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78442. VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( uint32_t binding_ = {}, uint32_t divisor_ = {} ) VULKAN_HPP_NOEXCEPT
  78443. : binding( binding_ )
  78444. , divisor( divisor_ )
  78445. {
  78446. }
  78447. VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78448. VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78449. : VertexInputBindingDivisorDescriptionEXT( *reinterpret_cast<VertexInputBindingDivisorDescriptionEXT const *>( &rhs ) )
  78450. {
  78451. }
  78452. VertexInputBindingDivisorDescriptionEXT & operator=( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78453. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78454. VertexInputBindingDivisorDescriptionEXT & operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78455. {
  78456. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT const *>( &rhs );
  78457. return *this;
  78458. }
  78459. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78460. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  78461. {
  78462. binding = binding_;
  78463. return *this;
  78464. }
  78465. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
  78466. {
  78467. divisor = divisor_;
  78468. return *this;
  78469. }
  78470. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78471. operator VkVertexInputBindingDivisorDescriptionEXT const &() const VULKAN_HPP_NOEXCEPT
  78472. {
  78473. return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT *>( this );
  78474. }
  78475. operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT
  78476. {
  78477. return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT *>( this );
  78478. }
  78479. #if defined( VULKAN_HPP_USE_REFLECT )
  78480. # if 14 <= VULKAN_HPP_CPP_VERSION
  78481. auto
  78482. # else
  78483. std::tuple<uint32_t const &, uint32_t const &>
  78484. # endif
  78485. reflect() const VULKAN_HPP_NOEXCEPT
  78486. {
  78487. return std::tie( binding, divisor );
  78488. }
  78489. #endif
  78490. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78491. auto operator<=>( VertexInputBindingDivisorDescriptionEXT const & ) const = default;
  78492. #else
  78493. bool operator==( VertexInputBindingDivisorDescriptionEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78494. {
  78495. # if defined( VULKAN_HPP_USE_REFLECT )
  78496. return this->reflect() == rhs.reflect();
  78497. # else
  78498. return ( binding == rhs.binding ) && ( divisor == rhs.divisor );
  78499. # endif
  78500. }
  78501. bool operator!=( VertexInputBindingDivisorDescriptionEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78502. {
  78503. return !operator==( rhs );
  78504. }
  78505. #endif
  78506. public:
  78507. uint32_t binding = {};
  78508. uint32_t divisor = {};
  78509. };
  78510. struct PipelineVertexInputDivisorStateCreateInfoEXT
  78511. {
  78512. using NativeType = VkPipelineVertexInputDivisorStateCreateInfoEXT;
  78513. static const bool allowDuplicate = false;
  78514. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
  78515. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78516. VULKAN_HPP_CONSTEXPR
  78517. PipelineVertexInputDivisorStateCreateInfoEXT( uint32_t vertexBindingDivisorCount_ = {},
  78518. const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors_ = {},
  78519. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78520. : pNext( pNext_ )
  78521. , vertexBindingDivisorCount( vertexBindingDivisorCount_ )
  78522. , pVertexBindingDivisors( pVertexBindingDivisors_ )
  78523. {
  78524. }
  78525. VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78526. PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78527. : PipelineVertexInputDivisorStateCreateInfoEXT( *reinterpret_cast<PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs ) )
  78528. {
  78529. }
  78530. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78531. PipelineVertexInputDivisorStateCreateInfoEXT(
  78532. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_,
  78533. const void * pNext_ = nullptr )
  78534. : pNext( pNext_ )
  78535. , vertexBindingDivisorCount( static_cast<uint32_t>( vertexBindingDivisors_.size() ) )
  78536. , pVertexBindingDivisors( vertexBindingDivisors_.data() )
  78537. {
  78538. }
  78539. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78540. PipelineVertexInputDivisorStateCreateInfoEXT & operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78541. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78542. PipelineVertexInputDivisorStateCreateInfoEXT & operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78543. {
  78544. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const *>( &rhs );
  78545. return *this;
  78546. }
  78547. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78548. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78549. {
  78550. pNext = pNext_;
  78551. return *this;
  78552. }
  78553. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT &
  78554. setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT
  78555. {
  78556. vertexBindingDivisorCount = vertexBindingDivisorCount_;
  78557. return *this;
  78558. }
  78559. VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT &
  78560. setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT
  78561. {
  78562. pVertexBindingDivisors = pVertexBindingDivisors_;
  78563. return *this;
  78564. }
  78565. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78566. PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors(
  78567. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ )
  78568. VULKAN_HPP_NOEXCEPT
  78569. {
  78570. vertexBindingDivisorCount = static_cast<uint32_t>( vertexBindingDivisors_.size() );
  78571. pVertexBindingDivisors = vertexBindingDivisors_.data();
  78572. return *this;
  78573. }
  78574. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78575. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78576. operator VkPipelineVertexInputDivisorStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78577. {
  78578. return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT *>( this );
  78579. }
  78580. operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  78581. {
  78582. return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT *>( this );
  78583. }
  78584. #if defined( VULKAN_HPP_USE_REFLECT )
  78585. # if 14 <= VULKAN_HPP_CPP_VERSION
  78586. auto
  78587. # else
  78588. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  78589. const void * const &,
  78590. uint32_t const &,
  78591. const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * const &>
  78592. # endif
  78593. reflect() const VULKAN_HPP_NOEXCEPT
  78594. {
  78595. return std::tie( sType, pNext, vertexBindingDivisorCount, pVertexBindingDivisors );
  78596. }
  78597. #endif
  78598. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78599. auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const & ) const = default;
  78600. #else
  78601. bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78602. {
  78603. # if defined( VULKAN_HPP_USE_REFLECT )
  78604. return this->reflect() == rhs.reflect();
  78605. # else
  78606. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount ) &&
  78607. ( pVertexBindingDivisors == rhs.pVertexBindingDivisors );
  78608. # endif
  78609. }
  78610. bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78611. {
  78612. return !operator==( rhs );
  78613. }
  78614. #endif
  78615. public:
  78616. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
  78617. const void * pNext = {};
  78618. uint32_t vertexBindingDivisorCount = {};
  78619. const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors = {};
  78620. };
  78621. template <>
  78622. struct CppType<StructureType, StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT>
  78623. {
  78624. using Type = PipelineVertexInputDivisorStateCreateInfoEXT;
  78625. };
  78626. struct PipelineViewportCoarseSampleOrderStateCreateInfoNV
  78627. {
  78628. using NativeType = VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
  78629. static const bool allowDuplicate = false;
  78630. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
  78631. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78632. VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV(
  78633. VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault,
  78634. uint32_t customSampleOrderCount_ = {},
  78635. const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders_ = {},
  78636. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78637. : pNext( pNext_ )
  78638. , sampleOrderType( sampleOrderType_ )
  78639. , customSampleOrderCount( customSampleOrderCount_ )
  78640. , pCustomSampleOrders( pCustomSampleOrders_ )
  78641. {
  78642. }
  78643. VULKAN_HPP_CONSTEXPR
  78644. PipelineViewportCoarseSampleOrderStateCreateInfoNV( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78645. PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  78646. : PipelineViewportCoarseSampleOrderStateCreateInfoNV( *reinterpret_cast<PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>( &rhs ) )
  78647. {
  78648. }
  78649. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78650. PipelineViewportCoarseSampleOrderStateCreateInfoNV(
  78651. VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_,
  78652. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_,
  78653. const void * pNext_ = nullptr )
  78654. : pNext( pNext_ )
  78655. , sampleOrderType( sampleOrderType_ )
  78656. , customSampleOrderCount( static_cast<uint32_t>( customSampleOrders_.size() ) )
  78657. , pCustomSampleOrders( customSampleOrders_.data() )
  78658. {
  78659. }
  78660. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78661. PipelineViewportCoarseSampleOrderStateCreateInfoNV &
  78662. operator=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78663. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78664. PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  78665. {
  78666. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV const *>( &rhs );
  78667. return *this;
  78668. }
  78669. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78670. VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78671. {
  78672. pNext = pNext_;
  78673. return *this;
  78674. }
  78675. VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV &
  78676. setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT
  78677. {
  78678. sampleOrderType = sampleOrderType_;
  78679. return *this;
  78680. }
  78681. VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV &
  78682. setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT
  78683. {
  78684. customSampleOrderCount = customSampleOrderCount_;
  78685. return *this;
  78686. }
  78687. VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV &
  78688. setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT
  78689. {
  78690. pCustomSampleOrders = pCustomSampleOrders_;
  78691. return *this;
  78692. }
  78693. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78694. PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders(
  78695. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders_ ) VULKAN_HPP_NOEXCEPT
  78696. {
  78697. customSampleOrderCount = static_cast<uint32_t>( customSampleOrders_.size() );
  78698. pCustomSampleOrders = customSampleOrders_.data();
  78699. return *this;
  78700. }
  78701. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78702. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78703. operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  78704. {
  78705. return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV *>( this );
  78706. }
  78707. operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  78708. {
  78709. return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV *>( this );
  78710. }
  78711. #if defined( VULKAN_HPP_USE_REFLECT )
  78712. # if 14 <= VULKAN_HPP_CPP_VERSION
  78713. auto
  78714. # else
  78715. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  78716. const void * const &,
  78717. VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV const &,
  78718. uint32_t const &,
  78719. const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * const &>
  78720. # endif
  78721. reflect() const VULKAN_HPP_NOEXCEPT
  78722. {
  78723. return std::tie( sType, pNext, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
  78724. }
  78725. #endif
  78726. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78727. auto operator<=>( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & ) const = default;
  78728. #else
  78729. bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  78730. {
  78731. # if defined( VULKAN_HPP_USE_REFLECT )
  78732. return this->reflect() == rhs.reflect();
  78733. # else
  78734. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleOrderType == rhs.sampleOrderType ) &&
  78735. ( customSampleOrderCount == rhs.customSampleOrderCount ) && ( pCustomSampleOrders == rhs.pCustomSampleOrders );
  78736. # endif
  78737. }
  78738. bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  78739. {
  78740. return !operator==( rhs );
  78741. }
  78742. #endif
  78743. public:
  78744. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
  78745. const void * pNext = {};
  78746. VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault;
  78747. uint32_t customSampleOrderCount = {};
  78748. const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders = {};
  78749. };
  78750. template <>
  78751. struct CppType<StructureType, StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV>
  78752. {
  78753. using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV;
  78754. };
  78755. struct PipelineViewportDepthClipControlCreateInfoEXT
  78756. {
  78757. using NativeType = VkPipelineViewportDepthClipControlCreateInfoEXT;
  78758. static const bool allowDuplicate = false;
  78759. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportDepthClipControlCreateInfoEXT;
  78760. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78761. VULKAN_HPP_CONSTEXPR PipelineViewportDepthClipControlCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne_ = {},
  78762. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78763. : pNext( pNext_ )
  78764. , negativeOneToOne( negativeOneToOne_ )
  78765. {
  78766. }
  78767. VULKAN_HPP_CONSTEXPR
  78768. PipelineViewportDepthClipControlCreateInfoEXT( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78769. PipelineViewportDepthClipControlCreateInfoEXT( VkPipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78770. : PipelineViewportDepthClipControlCreateInfoEXT( *reinterpret_cast<PipelineViewportDepthClipControlCreateInfoEXT const *>( &rhs ) )
  78771. {
  78772. }
  78773. PipelineViewportDepthClipControlCreateInfoEXT & operator=( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78774. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78775. PipelineViewportDepthClipControlCreateInfoEXT & operator=( VkPipelineViewportDepthClipControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  78776. {
  78777. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT const *>( &rhs );
  78778. return *this;
  78779. }
  78780. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78781. VULKAN_HPP_CONSTEXPR_14 PipelineViewportDepthClipControlCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78782. {
  78783. pNext = pNext_;
  78784. return *this;
  78785. }
  78786. VULKAN_HPP_CONSTEXPR_14 PipelineViewportDepthClipControlCreateInfoEXT &
  78787. setNegativeOneToOne( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne_ ) VULKAN_HPP_NOEXCEPT
  78788. {
  78789. negativeOneToOne = negativeOneToOne_;
  78790. return *this;
  78791. }
  78792. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78793. operator VkPipelineViewportDepthClipControlCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  78794. {
  78795. return *reinterpret_cast<const VkPipelineViewportDepthClipControlCreateInfoEXT *>( this );
  78796. }
  78797. operator VkPipelineViewportDepthClipControlCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  78798. {
  78799. return *reinterpret_cast<VkPipelineViewportDepthClipControlCreateInfoEXT *>( this );
  78800. }
  78801. #if defined( VULKAN_HPP_USE_REFLECT )
  78802. # if 14 <= VULKAN_HPP_CPP_VERSION
  78803. auto
  78804. # else
  78805. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  78806. # endif
  78807. reflect() const VULKAN_HPP_NOEXCEPT
  78808. {
  78809. return std::tie( sType, pNext, negativeOneToOne );
  78810. }
  78811. #endif
  78812. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78813. auto operator<=>( PipelineViewportDepthClipControlCreateInfoEXT const & ) const = default;
  78814. #else
  78815. bool operator==( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78816. {
  78817. # if defined( VULKAN_HPP_USE_REFLECT )
  78818. return this->reflect() == rhs.reflect();
  78819. # else
  78820. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( negativeOneToOne == rhs.negativeOneToOne );
  78821. # endif
  78822. }
  78823. bool operator!=( PipelineViewportDepthClipControlCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  78824. {
  78825. return !operator==( rhs );
  78826. }
  78827. #endif
  78828. public:
  78829. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportDepthClipControlCreateInfoEXT;
  78830. const void * pNext = {};
  78831. VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne = {};
  78832. };
  78833. template <>
  78834. struct CppType<StructureType, StructureType::ePipelineViewportDepthClipControlCreateInfoEXT>
  78835. {
  78836. using Type = PipelineViewportDepthClipControlCreateInfoEXT;
  78837. };
  78838. struct PipelineViewportExclusiveScissorStateCreateInfoNV
  78839. {
  78840. using NativeType = VkPipelineViewportExclusiveScissorStateCreateInfoNV;
  78841. static const bool allowDuplicate = false;
  78842. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
  78843. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78844. VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( uint32_t exclusiveScissorCount_ = {},
  78845. const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors_ = {},
  78846. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  78847. : pNext( pNext_ )
  78848. , exclusiveScissorCount( exclusiveScissorCount_ )
  78849. , pExclusiveScissors( pExclusiveScissors_ )
  78850. {
  78851. }
  78852. VULKAN_HPP_CONSTEXPR
  78853. PipelineViewportExclusiveScissorStateCreateInfoNV( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78854. PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  78855. : PipelineViewportExclusiveScissorStateCreateInfoNV( *reinterpret_cast<PipelineViewportExclusiveScissorStateCreateInfoNV const *>( &rhs ) )
  78856. {
  78857. }
  78858. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78859. PipelineViewportExclusiveScissorStateCreateInfoNV(
  78860. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_, const void * pNext_ = nullptr )
  78861. : pNext( pNext_ ), exclusiveScissorCount( static_cast<uint32_t>( exclusiveScissors_.size() ) ), pExclusiveScissors( exclusiveScissors_.data() )
  78862. {
  78863. }
  78864. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78865. PipelineViewportExclusiveScissorStateCreateInfoNV &
  78866. operator=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78867. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78868. PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  78869. {
  78870. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV const *>( &rhs );
  78871. return *this;
  78872. }
  78873. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78874. VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  78875. {
  78876. pNext = pNext_;
  78877. return *this;
  78878. }
  78879. VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT
  78880. {
  78881. exclusiveScissorCount = exclusiveScissorCount_;
  78882. return *this;
  78883. }
  78884. VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV &
  78885. setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
  78886. {
  78887. pExclusiveScissors = pExclusiveScissors_;
  78888. return *this;
  78889. }
  78890. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78891. PipelineViewportExclusiveScissorStateCreateInfoNV &
  78892. setExclusiveScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors_ ) VULKAN_HPP_NOEXCEPT
  78893. {
  78894. exclusiveScissorCount = static_cast<uint32_t>( exclusiveScissors_.size() );
  78895. pExclusiveScissors = exclusiveScissors_.data();
  78896. return *this;
  78897. }
  78898. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78899. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  78900. operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  78901. {
  78902. return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV *>( this );
  78903. }
  78904. operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  78905. {
  78906. return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV *>( this );
  78907. }
  78908. #if defined( VULKAN_HPP_USE_REFLECT )
  78909. # if 14 <= VULKAN_HPP_CPP_VERSION
  78910. auto
  78911. # else
  78912. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Rect2D * const &>
  78913. # endif
  78914. reflect() const VULKAN_HPP_NOEXCEPT
  78915. {
  78916. return std::tie( sType, pNext, exclusiveScissorCount, pExclusiveScissors );
  78917. }
  78918. #endif
  78919. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  78920. auto operator<=>( PipelineViewportExclusiveScissorStateCreateInfoNV const & ) const = default;
  78921. #else
  78922. bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  78923. {
  78924. # if defined( VULKAN_HPP_USE_REFLECT )
  78925. return this->reflect() == rhs.reflect();
  78926. # else
  78927. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( exclusiveScissorCount == rhs.exclusiveScissorCount ) &&
  78928. ( pExclusiveScissors == rhs.pExclusiveScissors );
  78929. # endif
  78930. }
  78931. bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  78932. {
  78933. return !operator==( rhs );
  78934. }
  78935. #endif
  78936. public:
  78937. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
  78938. const void * pNext = {};
  78939. uint32_t exclusiveScissorCount = {};
  78940. const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors = {};
  78941. };
  78942. template <>
  78943. struct CppType<StructureType, StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV>
  78944. {
  78945. using Type = PipelineViewportExclusiveScissorStateCreateInfoNV;
  78946. };
  78947. struct ShadingRatePaletteNV
  78948. {
  78949. using NativeType = VkShadingRatePaletteNV;
  78950. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  78951. VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( uint32_t shadingRatePaletteEntryCount_ = {},
  78952. const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries_ = {} ) VULKAN_HPP_NOEXCEPT
  78953. : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ )
  78954. , pShadingRatePaletteEntries( pShadingRatePaletteEntries_ )
  78955. {
  78956. }
  78957. VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78958. ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
  78959. : ShadingRatePaletteNV( *reinterpret_cast<ShadingRatePaletteNV const *>( &rhs ) )
  78960. {
  78961. }
  78962. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78963. ShadingRatePaletteNV(
  78964. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ )
  78965. : shadingRatePaletteEntryCount( static_cast<uint32_t>( shadingRatePaletteEntries_.size() ) )
  78966. , pShadingRatePaletteEntries( shadingRatePaletteEntries_.data() )
  78967. {
  78968. }
  78969. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78970. ShadingRatePaletteNV & operator=( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  78971. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  78972. ShadingRatePaletteNV & operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT
  78973. {
  78974. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV const *>( &rhs );
  78975. return *this;
  78976. }
  78977. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  78978. VULKAN_HPP_CONSTEXPR_14 ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT
  78979. {
  78980. shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_;
  78981. return *this;
  78982. }
  78983. VULKAN_HPP_CONSTEXPR_14 ShadingRatePaletteNV &
  78984. setPShadingRatePaletteEntries( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT
  78985. {
  78986. pShadingRatePaletteEntries = pShadingRatePaletteEntries_;
  78987. return *this;
  78988. }
  78989. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  78990. ShadingRatePaletteNV & setShadingRatePaletteEntries(
  78991. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV> const & shadingRatePaletteEntries_ )
  78992. VULKAN_HPP_NOEXCEPT
  78993. {
  78994. shadingRatePaletteEntryCount = static_cast<uint32_t>( shadingRatePaletteEntries_.size() );
  78995. pShadingRatePaletteEntries = shadingRatePaletteEntries_.data();
  78996. return *this;
  78997. }
  78998. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  78999. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79000. operator VkShadingRatePaletteNV const &() const VULKAN_HPP_NOEXCEPT
  79001. {
  79002. return *reinterpret_cast<const VkShadingRatePaletteNV *>( this );
  79003. }
  79004. operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT
  79005. {
  79006. return *reinterpret_cast<VkShadingRatePaletteNV *>( this );
  79007. }
  79008. #if defined( VULKAN_HPP_USE_REFLECT )
  79009. # if 14 <= VULKAN_HPP_CPP_VERSION
  79010. auto
  79011. # else
  79012. std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * const &>
  79013. # endif
  79014. reflect() const VULKAN_HPP_NOEXCEPT
  79015. {
  79016. return std::tie( shadingRatePaletteEntryCount, pShadingRatePaletteEntries );
  79017. }
  79018. #endif
  79019. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79020. auto operator<=>( ShadingRatePaletteNV const & ) const = default;
  79021. #else
  79022. bool operator==( ShadingRatePaletteNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79023. {
  79024. # if defined( VULKAN_HPP_USE_REFLECT )
  79025. return this->reflect() == rhs.reflect();
  79026. # else
  79027. return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount ) && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries );
  79028. # endif
  79029. }
  79030. bool operator!=( ShadingRatePaletteNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79031. {
  79032. return !operator==( rhs );
  79033. }
  79034. #endif
  79035. public:
  79036. uint32_t shadingRatePaletteEntryCount = {};
  79037. const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries = {};
  79038. };
  79039. struct PipelineViewportShadingRateImageStateCreateInfoNV
  79040. {
  79041. using NativeType = VkPipelineViewportShadingRateImageStateCreateInfoNV;
  79042. static const bool allowDuplicate = false;
  79043. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
  79044. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79045. VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {},
  79046. uint32_t viewportCount_ = {},
  79047. const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes_ = {},
  79048. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79049. : pNext( pNext_ )
  79050. , shadingRateImageEnable( shadingRateImageEnable_ )
  79051. , viewportCount( viewportCount_ )
  79052. , pShadingRatePalettes( pShadingRatePalettes_ )
  79053. {
  79054. }
  79055. VULKAN_HPP_CONSTEXPR
  79056. PipelineViewportShadingRateImageStateCreateInfoNV( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79057. PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  79058. : PipelineViewportShadingRateImageStateCreateInfoNV( *reinterpret_cast<PipelineViewportShadingRateImageStateCreateInfoNV const *>( &rhs ) )
  79059. {
  79060. }
  79061. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79062. PipelineViewportShadingRateImageStateCreateInfoNV(
  79063. VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_,
  79064. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_,
  79065. const void * pNext_ = nullptr )
  79066. : pNext( pNext_ )
  79067. , shadingRateImageEnable( shadingRateImageEnable_ )
  79068. , viewportCount( static_cast<uint32_t>( shadingRatePalettes_.size() ) )
  79069. , pShadingRatePalettes( shadingRatePalettes_.data() )
  79070. {
  79071. }
  79072. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79073. PipelineViewportShadingRateImageStateCreateInfoNV &
  79074. operator=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79075. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79076. PipelineViewportShadingRateImageStateCreateInfoNV & operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  79077. {
  79078. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV const *>( &rhs );
  79079. return *this;
  79080. }
  79081. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79082. VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79083. {
  79084. pNext = pNext_;
  79085. return *this;
  79086. }
  79087. VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV &
  79088. setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT
  79089. {
  79090. shadingRateImageEnable = shadingRateImageEnable_;
  79091. return *this;
  79092. }
  79093. VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
  79094. {
  79095. viewportCount = viewportCount_;
  79096. return *this;
  79097. }
  79098. VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV &
  79099. setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
  79100. {
  79101. pShadingRatePalettes = pShadingRatePalettes_;
  79102. return *this;
  79103. }
  79104. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79105. PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes(
  79106. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT
  79107. {
  79108. viewportCount = static_cast<uint32_t>( shadingRatePalettes_.size() );
  79109. pShadingRatePalettes = shadingRatePalettes_.data();
  79110. return *this;
  79111. }
  79112. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79113. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79114. operator VkPipelineViewportShadingRateImageStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  79115. {
  79116. return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV *>( this );
  79117. }
  79118. operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  79119. {
  79120. return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV *>( this );
  79121. }
  79122. #if defined( VULKAN_HPP_USE_REFLECT )
  79123. # if 14 <= VULKAN_HPP_CPP_VERSION
  79124. auto
  79125. # else
  79126. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  79127. const void * const &,
  79128. VULKAN_HPP_NAMESPACE::Bool32 const &,
  79129. uint32_t const &,
  79130. const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * const &>
  79131. # endif
  79132. reflect() const VULKAN_HPP_NOEXCEPT
  79133. {
  79134. return std::tie( sType, pNext, shadingRateImageEnable, viewportCount, pShadingRatePalettes );
  79135. }
  79136. #endif
  79137. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79138. auto operator<=>( PipelineViewportShadingRateImageStateCreateInfoNV const & ) const = default;
  79139. #else
  79140. bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79141. {
  79142. # if defined( VULKAN_HPP_USE_REFLECT )
  79143. return this->reflect() == rhs.reflect();
  79144. # else
  79145. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shadingRateImageEnable == rhs.shadingRateImageEnable ) &&
  79146. ( viewportCount == rhs.viewportCount ) && ( pShadingRatePalettes == rhs.pShadingRatePalettes );
  79147. # endif
  79148. }
  79149. bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79150. {
  79151. return !operator==( rhs );
  79152. }
  79153. #endif
  79154. public:
  79155. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
  79156. const void * pNext = {};
  79157. VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {};
  79158. uint32_t viewportCount = {};
  79159. const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes = {};
  79160. };
  79161. template <>
  79162. struct CppType<StructureType, StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV>
  79163. {
  79164. using Type = PipelineViewportShadingRateImageStateCreateInfoNV;
  79165. };
  79166. struct ViewportSwizzleNV
  79167. {
  79168. using NativeType = VkViewportSwizzleNV;
  79169. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79170. VULKAN_HPP_CONSTEXPR ViewportSwizzleNV(
  79171. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX,
  79172. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX,
  79173. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX,
  79174. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX ) VULKAN_HPP_NOEXCEPT
  79175. : x( x_ )
  79176. , y( y_ )
  79177. , z( z_ )
  79178. , w( w_ )
  79179. {
  79180. }
  79181. VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79182. ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT : ViewportSwizzleNV( *reinterpret_cast<ViewportSwizzleNV const *>( &rhs ) ) {}
  79183. ViewportSwizzleNV & operator=( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79184. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79185. ViewportSwizzleNV & operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT
  79186. {
  79187. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportSwizzleNV const *>( &rhs );
  79188. return *this;
  79189. }
  79190. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79191. VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT
  79192. {
  79193. x = x_;
  79194. return *this;
  79195. }
  79196. VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT
  79197. {
  79198. y = y_;
  79199. return *this;
  79200. }
  79201. VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT
  79202. {
  79203. z = z_;
  79204. return *this;
  79205. }
  79206. VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT
  79207. {
  79208. w = w_;
  79209. return *this;
  79210. }
  79211. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79212. operator VkViewportSwizzleNV const &() const VULKAN_HPP_NOEXCEPT
  79213. {
  79214. return *reinterpret_cast<const VkViewportSwizzleNV *>( this );
  79215. }
  79216. operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT
  79217. {
  79218. return *reinterpret_cast<VkViewportSwizzleNV *>( this );
  79219. }
  79220. #if defined( VULKAN_HPP_USE_REFLECT )
  79221. # if 14 <= VULKAN_HPP_CPP_VERSION
  79222. auto
  79223. # else
  79224. std::tuple<VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &,
  79225. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &,
  79226. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &,
  79227. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV const &>
  79228. # endif
  79229. reflect() const VULKAN_HPP_NOEXCEPT
  79230. {
  79231. return std::tie( x, y, z, w );
  79232. }
  79233. #endif
  79234. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79235. auto operator<=>( ViewportSwizzleNV const & ) const = default;
  79236. #else
  79237. bool operator==( ViewportSwizzleNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79238. {
  79239. # if defined( VULKAN_HPP_USE_REFLECT )
  79240. return this->reflect() == rhs.reflect();
  79241. # else
  79242. return ( x == rhs.x ) && ( y == rhs.y ) && ( z == rhs.z ) && ( w == rhs.w );
  79243. # endif
  79244. }
  79245. bool operator!=( ViewportSwizzleNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79246. {
  79247. return !operator==( rhs );
  79248. }
  79249. #endif
  79250. public:
  79251. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
  79252. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
  79253. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
  79254. VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX;
  79255. };
  79256. struct PipelineViewportSwizzleStateCreateInfoNV
  79257. {
  79258. using NativeType = VkPipelineViewportSwizzleStateCreateInfoNV;
  79259. static const bool allowDuplicate = false;
  79260. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
  79261. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79262. VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {},
  79263. uint32_t viewportCount_ = {},
  79264. const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles_ = {},
  79265. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79266. : pNext( pNext_ )
  79267. , flags( flags_ )
  79268. , viewportCount( viewportCount_ )
  79269. , pViewportSwizzles( pViewportSwizzles_ )
  79270. {
  79271. }
  79272. VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79273. PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  79274. : PipelineViewportSwizzleStateCreateInfoNV( *reinterpret_cast<PipelineViewportSwizzleStateCreateInfoNV const *>( &rhs ) )
  79275. {
  79276. }
  79277. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79278. PipelineViewportSwizzleStateCreateInfoNV(
  79279. VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_,
  79280. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_,
  79281. const void * pNext_ = nullptr )
  79282. : pNext( pNext_ ), flags( flags_ ), viewportCount( static_cast<uint32_t>( viewportSwizzles_.size() ) ), pViewportSwizzles( viewportSwizzles_.data() )
  79283. {
  79284. }
  79285. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79286. PipelineViewportSwizzleStateCreateInfoNV & operator=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79287. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79288. PipelineViewportSwizzleStateCreateInfoNV & operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  79289. {
  79290. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV const *>( &rhs );
  79291. return *this;
  79292. }
  79293. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79294. VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79295. {
  79296. pNext = pNext_;
  79297. return *this;
  79298. }
  79299. VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV &
  79300. setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT
  79301. {
  79302. flags = flags_;
  79303. return *this;
  79304. }
  79305. VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
  79306. {
  79307. viewportCount = viewportCount_;
  79308. return *this;
  79309. }
  79310. VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV &
  79311. setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
  79312. {
  79313. pViewportSwizzles = pViewportSwizzles_;
  79314. return *this;
  79315. }
  79316. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79317. PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles(
  79318. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles_ ) VULKAN_HPP_NOEXCEPT
  79319. {
  79320. viewportCount = static_cast<uint32_t>( viewportSwizzles_.size() );
  79321. pViewportSwizzles = viewportSwizzles_.data();
  79322. return *this;
  79323. }
  79324. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79325. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79326. operator VkPipelineViewportSwizzleStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  79327. {
  79328. return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV *>( this );
  79329. }
  79330. operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  79331. {
  79332. return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV *>( this );
  79333. }
  79334. #if defined( VULKAN_HPP_USE_REFLECT )
  79335. # if 14 <= VULKAN_HPP_CPP_VERSION
  79336. auto
  79337. # else
  79338. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  79339. const void * const &,
  79340. VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV const &,
  79341. uint32_t const &,
  79342. const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * const &>
  79343. # endif
  79344. reflect() const VULKAN_HPP_NOEXCEPT
  79345. {
  79346. return std::tie( sType, pNext, flags, viewportCount, pViewportSwizzles );
  79347. }
  79348. #endif
  79349. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79350. auto operator<=>( PipelineViewportSwizzleStateCreateInfoNV const & ) const = default;
  79351. #else
  79352. bool operator==( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79353. {
  79354. # if defined( VULKAN_HPP_USE_REFLECT )
  79355. return this->reflect() == rhs.reflect();
  79356. # else
  79357. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( viewportCount == rhs.viewportCount ) &&
  79358. ( pViewportSwizzles == rhs.pViewportSwizzles );
  79359. # endif
  79360. }
  79361. bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79362. {
  79363. return !operator==( rhs );
  79364. }
  79365. #endif
  79366. public:
  79367. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
  79368. const void * pNext = {};
  79369. VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {};
  79370. uint32_t viewportCount = {};
  79371. const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles = {};
  79372. };
  79373. template <>
  79374. struct CppType<StructureType, StructureType::ePipelineViewportSwizzleStateCreateInfoNV>
  79375. {
  79376. using Type = PipelineViewportSwizzleStateCreateInfoNV;
  79377. };
  79378. struct ViewportWScalingNV
  79379. {
  79380. using NativeType = VkViewportWScalingNV;
  79381. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79382. VULKAN_HPP_CONSTEXPR ViewportWScalingNV( float xcoeff_ = {}, float ycoeff_ = {} ) VULKAN_HPP_NOEXCEPT
  79383. : xcoeff( xcoeff_ )
  79384. , ycoeff( ycoeff_ )
  79385. {
  79386. }
  79387. VULKAN_HPP_CONSTEXPR ViewportWScalingNV( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79388. ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT : ViewportWScalingNV( *reinterpret_cast<ViewportWScalingNV const *>( &rhs ) ) {}
  79389. ViewportWScalingNV & operator=( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79390. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79391. ViewportWScalingNV & operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT
  79392. {
  79393. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViewportWScalingNV const *>( &rhs );
  79394. return *this;
  79395. }
  79396. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79397. VULKAN_HPP_CONSTEXPR_14 ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT
  79398. {
  79399. xcoeff = xcoeff_;
  79400. return *this;
  79401. }
  79402. VULKAN_HPP_CONSTEXPR_14 ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT
  79403. {
  79404. ycoeff = ycoeff_;
  79405. return *this;
  79406. }
  79407. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79408. operator VkViewportWScalingNV const &() const VULKAN_HPP_NOEXCEPT
  79409. {
  79410. return *reinterpret_cast<const VkViewportWScalingNV *>( this );
  79411. }
  79412. operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT
  79413. {
  79414. return *reinterpret_cast<VkViewportWScalingNV *>( this );
  79415. }
  79416. #if defined( VULKAN_HPP_USE_REFLECT )
  79417. # if 14 <= VULKAN_HPP_CPP_VERSION
  79418. auto
  79419. # else
  79420. std::tuple<float const &, float const &>
  79421. # endif
  79422. reflect() const VULKAN_HPP_NOEXCEPT
  79423. {
  79424. return std::tie( xcoeff, ycoeff );
  79425. }
  79426. #endif
  79427. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79428. auto operator<=>( ViewportWScalingNV const & ) const = default;
  79429. #else
  79430. bool operator==( ViewportWScalingNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79431. {
  79432. # if defined( VULKAN_HPP_USE_REFLECT )
  79433. return this->reflect() == rhs.reflect();
  79434. # else
  79435. return ( xcoeff == rhs.xcoeff ) && ( ycoeff == rhs.ycoeff );
  79436. # endif
  79437. }
  79438. bool operator!=( ViewportWScalingNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79439. {
  79440. return !operator==( rhs );
  79441. }
  79442. #endif
  79443. public:
  79444. float xcoeff = {};
  79445. float ycoeff = {};
  79446. };
  79447. struct PipelineViewportWScalingStateCreateInfoNV
  79448. {
  79449. using NativeType = VkPipelineViewportWScalingStateCreateInfoNV;
  79450. static const bool allowDuplicate = false;
  79451. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
  79452. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79453. VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {},
  79454. uint32_t viewportCount_ = {},
  79455. const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings_ = {},
  79456. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79457. : pNext( pNext_ )
  79458. , viewportWScalingEnable( viewportWScalingEnable_ )
  79459. , viewportCount( viewportCount_ )
  79460. , pViewportWScalings( pViewportWScalings_ )
  79461. {
  79462. }
  79463. VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79464. PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  79465. : PipelineViewportWScalingStateCreateInfoNV( *reinterpret_cast<PipelineViewportWScalingStateCreateInfoNV const *>( &rhs ) )
  79466. {
  79467. }
  79468. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79469. PipelineViewportWScalingStateCreateInfoNV(
  79470. VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_,
  79471. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_,
  79472. const void * pNext_ = nullptr )
  79473. : pNext( pNext_ )
  79474. , viewportWScalingEnable( viewportWScalingEnable_ )
  79475. , viewportCount( static_cast<uint32_t>( viewportWScalings_.size() ) )
  79476. , pViewportWScalings( viewportWScalings_.data() )
  79477. {
  79478. }
  79479. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79480. PipelineViewportWScalingStateCreateInfoNV & operator=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79481. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79482. PipelineViewportWScalingStateCreateInfoNV & operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  79483. {
  79484. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV const *>( &rhs );
  79485. return *this;
  79486. }
  79487. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79488. VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79489. {
  79490. pNext = pNext_;
  79491. return *this;
  79492. }
  79493. VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV &
  79494. setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT
  79495. {
  79496. viewportWScalingEnable = viewportWScalingEnable_;
  79497. return *this;
  79498. }
  79499. VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT
  79500. {
  79501. viewportCount = viewportCount_;
  79502. return *this;
  79503. }
  79504. VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV &
  79505. setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT
  79506. {
  79507. pViewportWScalings = pViewportWScalings_;
  79508. return *this;
  79509. }
  79510. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79511. PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings(
  79512. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings_ ) VULKAN_HPP_NOEXCEPT
  79513. {
  79514. viewportCount = static_cast<uint32_t>( viewportWScalings_.size() );
  79515. pViewportWScalings = viewportWScalings_.data();
  79516. return *this;
  79517. }
  79518. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79519. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79520. operator VkPipelineViewportWScalingStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  79521. {
  79522. return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV *>( this );
  79523. }
  79524. operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  79525. {
  79526. return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV *>( this );
  79527. }
  79528. #if defined( VULKAN_HPP_USE_REFLECT )
  79529. # if 14 <= VULKAN_HPP_CPP_VERSION
  79530. auto
  79531. # else
  79532. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  79533. const void * const &,
  79534. VULKAN_HPP_NAMESPACE::Bool32 const &,
  79535. uint32_t const &,
  79536. const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * const &>
  79537. # endif
  79538. reflect() const VULKAN_HPP_NOEXCEPT
  79539. {
  79540. return std::tie( sType, pNext, viewportWScalingEnable, viewportCount, pViewportWScalings );
  79541. }
  79542. #endif
  79543. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79544. auto operator<=>( PipelineViewportWScalingStateCreateInfoNV const & ) const = default;
  79545. #else
  79546. bool operator==( PipelineViewportWScalingStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79547. {
  79548. # if defined( VULKAN_HPP_USE_REFLECT )
  79549. return this->reflect() == rhs.reflect();
  79550. # else
  79551. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewportWScalingEnable == rhs.viewportWScalingEnable ) &&
  79552. ( viewportCount == rhs.viewportCount ) && ( pViewportWScalings == rhs.pViewportWScalings );
  79553. # endif
  79554. }
  79555. bool operator!=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  79556. {
  79557. return !operator==( rhs );
  79558. }
  79559. #endif
  79560. public:
  79561. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
  79562. const void * pNext = {};
  79563. VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {};
  79564. uint32_t viewportCount = {};
  79565. const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings = {};
  79566. };
  79567. template <>
  79568. struct CppType<StructureType, StructureType::ePipelineViewportWScalingStateCreateInfoNV>
  79569. {
  79570. using Type = PipelineViewportWScalingStateCreateInfoNV;
  79571. };
  79572. #if defined( VK_USE_PLATFORM_GGP )
  79573. struct PresentFrameTokenGGP
  79574. {
  79575. using NativeType = VkPresentFrameTokenGGP;
  79576. static const bool allowDuplicate = false;
  79577. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentFrameTokenGGP;
  79578. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79579. VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( GgpFrameToken frameToken_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79580. : pNext( pNext_ )
  79581. , frameToken( frameToken_ )
  79582. {
  79583. }
  79584. VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79585. PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
  79586. : PresentFrameTokenGGP( *reinterpret_cast<PresentFrameTokenGGP const *>( &rhs ) )
  79587. {
  79588. }
  79589. PresentFrameTokenGGP & operator=( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79590. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79591. PresentFrameTokenGGP & operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT
  79592. {
  79593. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP const *>( &rhs );
  79594. return *this;
  79595. }
  79596. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79597. VULKAN_HPP_CONSTEXPR_14 PresentFrameTokenGGP & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79598. {
  79599. pNext = pNext_;
  79600. return *this;
  79601. }
  79602. VULKAN_HPP_CONSTEXPR_14 PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT
  79603. {
  79604. frameToken = frameToken_;
  79605. return *this;
  79606. }
  79607. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79608. operator VkPresentFrameTokenGGP const &() const VULKAN_HPP_NOEXCEPT
  79609. {
  79610. return *reinterpret_cast<const VkPresentFrameTokenGGP *>( this );
  79611. }
  79612. operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT
  79613. {
  79614. return *reinterpret_cast<VkPresentFrameTokenGGP *>( this );
  79615. }
  79616. # if defined( VULKAN_HPP_USE_REFLECT )
  79617. # if 14 <= VULKAN_HPP_CPP_VERSION
  79618. auto
  79619. # else
  79620. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, GgpFrameToken const &>
  79621. # endif
  79622. reflect() const VULKAN_HPP_NOEXCEPT
  79623. {
  79624. return std::tie( sType, pNext, frameToken );
  79625. }
  79626. # endif
  79627. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79628. std::strong_ordering operator<=>( PresentFrameTokenGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  79629. {
  79630. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  79631. return cmp;
  79632. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  79633. return cmp;
  79634. if ( auto cmp = memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ); cmp != 0 )
  79635. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  79636. return std::strong_ordering::equivalent;
  79637. }
  79638. # endif
  79639. bool operator==( PresentFrameTokenGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  79640. {
  79641. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ) == 0 );
  79642. }
  79643. bool operator!=( PresentFrameTokenGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  79644. {
  79645. return !operator==( rhs );
  79646. }
  79647. public:
  79648. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP;
  79649. const void * pNext = {};
  79650. GgpFrameToken frameToken = {};
  79651. };
  79652. template <>
  79653. struct CppType<StructureType, StructureType::ePresentFrameTokenGGP>
  79654. {
  79655. using Type = PresentFrameTokenGGP;
  79656. };
  79657. #endif /*VK_USE_PLATFORM_GGP*/
  79658. struct PresentIdKHR
  79659. {
  79660. using NativeType = VkPresentIdKHR;
  79661. static const bool allowDuplicate = false;
  79662. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentIdKHR;
  79663. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79664. VULKAN_HPP_CONSTEXPR PresentIdKHR( uint32_t swapchainCount_ = {}, const uint64_t * pPresentIds_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79665. : pNext( pNext_ )
  79666. , swapchainCount( swapchainCount_ )
  79667. , pPresentIds( pPresentIds_ )
  79668. {
  79669. }
  79670. VULKAN_HPP_CONSTEXPR PresentIdKHR( PresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79671. PresentIdKHR( VkPresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT : PresentIdKHR( *reinterpret_cast<PresentIdKHR const *>( &rhs ) ) {}
  79672. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79673. PresentIdKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & presentIds_, const void * pNext_ = nullptr )
  79674. : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( presentIds_.size() ) ), pPresentIds( presentIds_.data() )
  79675. {
  79676. }
  79677. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79678. PresentIdKHR & operator=( PresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79679. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79680. PresentIdKHR & operator=( VkPresentIdKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  79681. {
  79682. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentIdKHR const *>( &rhs );
  79683. return *this;
  79684. }
  79685. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79686. VULKAN_HPP_CONSTEXPR_14 PresentIdKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79687. {
  79688. pNext = pNext_;
  79689. return *this;
  79690. }
  79691. VULKAN_HPP_CONSTEXPR_14 PresentIdKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  79692. {
  79693. swapchainCount = swapchainCount_;
  79694. return *this;
  79695. }
  79696. VULKAN_HPP_CONSTEXPR_14 PresentIdKHR & setPPresentIds( const uint64_t * pPresentIds_ ) VULKAN_HPP_NOEXCEPT
  79697. {
  79698. pPresentIds = pPresentIds_;
  79699. return *this;
  79700. }
  79701. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79702. PresentIdKHR & setPresentIds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & presentIds_ ) VULKAN_HPP_NOEXCEPT
  79703. {
  79704. swapchainCount = static_cast<uint32_t>( presentIds_.size() );
  79705. pPresentIds = presentIds_.data();
  79706. return *this;
  79707. }
  79708. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79709. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79710. operator VkPresentIdKHR const &() const VULKAN_HPP_NOEXCEPT
  79711. {
  79712. return *reinterpret_cast<const VkPresentIdKHR *>( this );
  79713. }
  79714. operator VkPresentIdKHR &() VULKAN_HPP_NOEXCEPT
  79715. {
  79716. return *reinterpret_cast<VkPresentIdKHR *>( this );
  79717. }
  79718. #if defined( VULKAN_HPP_USE_REFLECT )
  79719. # if 14 <= VULKAN_HPP_CPP_VERSION
  79720. auto
  79721. # else
  79722. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const uint64_t * const &>
  79723. # endif
  79724. reflect() const VULKAN_HPP_NOEXCEPT
  79725. {
  79726. return std::tie( sType, pNext, swapchainCount, pPresentIds );
  79727. }
  79728. #endif
  79729. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79730. auto operator<=>( PresentIdKHR const & ) const = default;
  79731. #else
  79732. bool operator==( PresentIdKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  79733. {
  79734. # if defined( VULKAN_HPP_USE_REFLECT )
  79735. return this->reflect() == rhs.reflect();
  79736. # else
  79737. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && ( pPresentIds == rhs.pPresentIds );
  79738. # endif
  79739. }
  79740. bool operator!=( PresentIdKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  79741. {
  79742. return !operator==( rhs );
  79743. }
  79744. #endif
  79745. public:
  79746. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentIdKHR;
  79747. const void * pNext = {};
  79748. uint32_t swapchainCount = {};
  79749. const uint64_t * pPresentIds = {};
  79750. };
  79751. template <>
  79752. struct CppType<StructureType, StructureType::ePresentIdKHR>
  79753. {
  79754. using Type = PresentIdKHR;
  79755. };
  79756. struct PresentInfoKHR
  79757. {
  79758. using NativeType = VkPresentInfoKHR;
  79759. static const bool allowDuplicate = false;
  79760. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentInfoKHR;
  79761. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79762. VULKAN_HPP_CONSTEXPR PresentInfoKHR( uint32_t waitSemaphoreCount_ = {},
  79763. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {},
  79764. uint32_t swapchainCount_ = {},
  79765. const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains_ = {},
  79766. const uint32_t * pImageIndices_ = {},
  79767. VULKAN_HPP_NAMESPACE::Result * pResults_ = {},
  79768. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  79769. : pNext( pNext_ )
  79770. , waitSemaphoreCount( waitSemaphoreCount_ )
  79771. , pWaitSemaphores( pWaitSemaphores_ )
  79772. , swapchainCount( swapchainCount_ )
  79773. , pSwapchains( pSwapchains_ )
  79774. , pImageIndices( pImageIndices_ )
  79775. , pResults( pResults_ )
  79776. {
  79777. }
  79778. VULKAN_HPP_CONSTEXPR PresentInfoKHR( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79779. PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : PresentInfoKHR( *reinterpret_cast<PresentInfoKHR const *>( &rhs ) ) {}
  79780. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79781. PresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_,
  79782. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ = {},
  79783. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ = {},
  79784. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ = {},
  79785. const void * pNext_ = nullptr )
  79786. : pNext( pNext_ )
  79787. , waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) )
  79788. , pWaitSemaphores( waitSemaphores_.data() )
  79789. , swapchainCount( static_cast<uint32_t>( swapchains_.size() ) )
  79790. , pSwapchains( swapchains_.data() )
  79791. , pImageIndices( imageIndices_.data() )
  79792. , pResults( results_.data() )
  79793. {
  79794. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  79795. VULKAN_HPP_ASSERT( swapchains_.size() == imageIndices_.size() );
  79796. VULKAN_HPP_ASSERT( results_.empty() || ( swapchains_.size() == results_.size() ) );
  79797. VULKAN_HPP_ASSERT( results_.empty() || ( imageIndices_.size() == results_.size() ) );
  79798. # else
  79799. if ( swapchains_.size() != imageIndices_.size() )
  79800. {
  79801. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: swapchains_.size() != imageIndices_.size()" );
  79802. }
  79803. if ( !results_.empty() && ( swapchains_.size() != results_.size() ) )
  79804. {
  79805. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( swapchains_.size() != results_.size() )" );
  79806. }
  79807. if ( !results_.empty() && ( imageIndices_.size() != results_.size() ) )
  79808. {
  79809. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( imageIndices_.size() != results_.size() )" );
  79810. }
  79811. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  79812. }
  79813. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79814. PresentInfoKHR & operator=( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79815. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79816. PresentInfoKHR & operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  79817. {
  79818. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentInfoKHR const *>( &rhs );
  79819. return *this;
  79820. }
  79821. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79822. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  79823. {
  79824. pNext = pNext_;
  79825. return *this;
  79826. }
  79827. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  79828. {
  79829. waitSemaphoreCount = waitSemaphoreCount_;
  79830. return *this;
  79831. }
  79832. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  79833. {
  79834. pWaitSemaphores = pWaitSemaphores_;
  79835. return *this;
  79836. }
  79837. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79838. PresentInfoKHR &
  79839. setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  79840. {
  79841. waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
  79842. pWaitSemaphores = waitSemaphores_.data();
  79843. return *this;
  79844. }
  79845. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79846. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  79847. {
  79848. swapchainCount = swapchainCount_;
  79849. return *this;
  79850. }
  79851. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains_ ) VULKAN_HPP_NOEXCEPT
  79852. {
  79853. pSwapchains = pSwapchains_;
  79854. return *this;
  79855. }
  79856. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79857. PresentInfoKHR &
  79858. setSwapchains( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains_ ) VULKAN_HPP_NOEXCEPT
  79859. {
  79860. swapchainCount = static_cast<uint32_t>( swapchains_.size() );
  79861. pSwapchains = swapchains_.data();
  79862. return *this;
  79863. }
  79864. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79865. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPImageIndices( const uint32_t * pImageIndices_ ) VULKAN_HPP_NOEXCEPT
  79866. {
  79867. pImageIndices = pImageIndices_;
  79868. return *this;
  79869. }
  79870. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79871. PresentInfoKHR & setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ ) VULKAN_HPP_NOEXCEPT
  79872. {
  79873. swapchainCount = static_cast<uint32_t>( imageIndices_.size() );
  79874. pImageIndices = imageIndices_.data();
  79875. return *this;
  79876. }
  79877. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79878. VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result * pResults_ ) VULKAN_HPP_NOEXCEPT
  79879. {
  79880. pResults = pResults_;
  79881. return *this;
  79882. }
  79883. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  79884. PresentInfoKHR & setResults( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::Result> const & results_ ) VULKAN_HPP_NOEXCEPT
  79885. {
  79886. swapchainCount = static_cast<uint32_t>( results_.size() );
  79887. pResults = results_.data();
  79888. return *this;
  79889. }
  79890. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  79891. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79892. operator VkPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  79893. {
  79894. return *reinterpret_cast<const VkPresentInfoKHR *>( this );
  79895. }
  79896. operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT
  79897. {
  79898. return *reinterpret_cast<VkPresentInfoKHR *>( this );
  79899. }
  79900. #if defined( VULKAN_HPP_USE_REFLECT )
  79901. # if 14 <= VULKAN_HPP_CPP_VERSION
  79902. auto
  79903. # else
  79904. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  79905. const void * const &,
  79906. uint32_t const &,
  79907. const VULKAN_HPP_NAMESPACE::Semaphore * const &,
  79908. uint32_t const &,
  79909. const VULKAN_HPP_NAMESPACE::SwapchainKHR * const &,
  79910. const uint32_t * const &,
  79911. VULKAN_HPP_NAMESPACE::Result * const &>
  79912. # endif
  79913. reflect() const VULKAN_HPP_NOEXCEPT
  79914. {
  79915. return std::tie( sType, pNext, waitSemaphoreCount, pWaitSemaphores, swapchainCount, pSwapchains, pImageIndices, pResults );
  79916. }
  79917. #endif
  79918. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  79919. auto operator<=>( PresentInfoKHR const & ) const = default;
  79920. #else
  79921. bool operator==( PresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  79922. {
  79923. # if defined( VULKAN_HPP_USE_REFLECT )
  79924. return this->reflect() == rhs.reflect();
  79925. # else
  79926. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) &&
  79927. ( pWaitSemaphores == rhs.pWaitSemaphores ) && ( swapchainCount == rhs.swapchainCount ) && ( pSwapchains == rhs.pSwapchains ) &&
  79928. ( pImageIndices == rhs.pImageIndices ) && ( pResults == rhs.pResults );
  79929. # endif
  79930. }
  79931. bool operator!=( PresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  79932. {
  79933. return !operator==( rhs );
  79934. }
  79935. #endif
  79936. public:
  79937. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR;
  79938. const void * pNext = {};
  79939. uint32_t waitSemaphoreCount = {};
  79940. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {};
  79941. uint32_t swapchainCount = {};
  79942. const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains = {};
  79943. const uint32_t * pImageIndices = {};
  79944. VULKAN_HPP_NAMESPACE::Result * pResults = {};
  79945. };
  79946. template <>
  79947. struct CppType<StructureType, StructureType::ePresentInfoKHR>
  79948. {
  79949. using Type = PresentInfoKHR;
  79950. };
  79951. struct RectLayerKHR
  79952. {
  79953. using NativeType = VkRectLayerKHR;
  79954. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  79955. VULKAN_HPP_CONSTEXPR
  79956. RectLayerKHR( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, uint32_t layer_ = {} ) VULKAN_HPP_NOEXCEPT
  79957. : offset( offset_ )
  79958. , extent( extent_ )
  79959. , layer( layer_ )
  79960. {
  79961. }
  79962. VULKAN_HPP_CONSTEXPR RectLayerKHR( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79963. RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT : RectLayerKHR( *reinterpret_cast<RectLayerKHR const *>( &rhs ) ) {}
  79964. explicit RectLayerKHR( Rect2D const & rect2D, uint32_t layer_ = {} ) : offset( rect2D.offset ), extent( rect2D.extent ), layer( layer_ ) {}
  79965. RectLayerKHR & operator=( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  79966. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  79967. RectLayerKHR & operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  79968. {
  79969. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RectLayerKHR const *>( &rhs );
  79970. return *this;
  79971. }
  79972. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  79973. VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT
  79974. {
  79975. offset = offset_;
  79976. return *this;
  79977. }
  79978. VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT
  79979. {
  79980. extent = extent_;
  79981. return *this;
  79982. }
  79983. VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT
  79984. {
  79985. layer = layer_;
  79986. return *this;
  79987. }
  79988. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  79989. operator VkRectLayerKHR const &() const VULKAN_HPP_NOEXCEPT
  79990. {
  79991. return *reinterpret_cast<const VkRectLayerKHR *>( this );
  79992. }
  79993. operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT
  79994. {
  79995. return *reinterpret_cast<VkRectLayerKHR *>( this );
  79996. }
  79997. #if defined( VULKAN_HPP_USE_REFLECT )
  79998. # if 14 <= VULKAN_HPP_CPP_VERSION
  79999. auto
  80000. # else
  80001. std::tuple<VULKAN_HPP_NAMESPACE::Offset2D const &, VULKAN_HPP_NAMESPACE::Extent2D const &, uint32_t const &>
  80002. # endif
  80003. reflect() const VULKAN_HPP_NOEXCEPT
  80004. {
  80005. return std::tie( offset, extent, layer );
  80006. }
  80007. #endif
  80008. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80009. auto operator<=>( RectLayerKHR const & ) const = default;
  80010. #else
  80011. bool operator==( RectLayerKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  80012. {
  80013. # if defined( VULKAN_HPP_USE_REFLECT )
  80014. return this->reflect() == rhs.reflect();
  80015. # else
  80016. return ( offset == rhs.offset ) && ( extent == rhs.extent ) && ( layer == rhs.layer );
  80017. # endif
  80018. }
  80019. bool operator!=( RectLayerKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  80020. {
  80021. return !operator==( rhs );
  80022. }
  80023. #endif
  80024. public:
  80025. VULKAN_HPP_NAMESPACE::Offset2D offset = {};
  80026. VULKAN_HPP_NAMESPACE::Extent2D extent = {};
  80027. uint32_t layer = {};
  80028. };
  80029. struct PresentRegionKHR
  80030. {
  80031. using NativeType = VkPresentRegionKHR;
  80032. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80033. VULKAN_HPP_CONSTEXPR PresentRegionKHR( uint32_t rectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles_ = {} ) VULKAN_HPP_NOEXCEPT
  80034. : rectangleCount( rectangleCount_ )
  80035. , pRectangles( pRectangles_ )
  80036. {
  80037. }
  80038. VULKAN_HPP_CONSTEXPR PresentRegionKHR( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80039. PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT : PresentRegionKHR( *reinterpret_cast<PresentRegionKHR const *>( &rhs ) ) {}
  80040. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80041. PresentRegionKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ )
  80042. : rectangleCount( static_cast<uint32_t>( rectangles_.size() ) ), pRectangles( rectangles_.data() )
  80043. {
  80044. }
  80045. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80046. PresentRegionKHR & operator=( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80047. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80048. PresentRegionKHR & operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  80049. {
  80050. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionKHR const *>( &rhs );
  80051. return *this;
  80052. }
  80053. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80054. VULKAN_HPP_CONSTEXPR_14 PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT
  80055. {
  80056. rectangleCount = rectangleCount_;
  80057. return *this;
  80058. }
  80059. VULKAN_HPP_CONSTEXPR_14 PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles_ ) VULKAN_HPP_NOEXCEPT
  80060. {
  80061. pRectangles = pRectangles_;
  80062. return *this;
  80063. }
  80064. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80065. PresentRegionKHR &
  80066. setRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RectLayerKHR> const & rectangles_ ) VULKAN_HPP_NOEXCEPT
  80067. {
  80068. rectangleCount = static_cast<uint32_t>( rectangles_.size() );
  80069. pRectangles = rectangles_.data();
  80070. return *this;
  80071. }
  80072. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80073. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80074. operator VkPresentRegionKHR const &() const VULKAN_HPP_NOEXCEPT
  80075. {
  80076. return *reinterpret_cast<const VkPresentRegionKHR *>( this );
  80077. }
  80078. operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT
  80079. {
  80080. return *reinterpret_cast<VkPresentRegionKHR *>( this );
  80081. }
  80082. #if defined( VULKAN_HPP_USE_REFLECT )
  80083. # if 14 <= VULKAN_HPP_CPP_VERSION
  80084. auto
  80085. # else
  80086. std::tuple<uint32_t const &, const VULKAN_HPP_NAMESPACE::RectLayerKHR * const &>
  80087. # endif
  80088. reflect() const VULKAN_HPP_NOEXCEPT
  80089. {
  80090. return std::tie( rectangleCount, pRectangles );
  80091. }
  80092. #endif
  80093. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80094. auto operator<=>( PresentRegionKHR const & ) const = default;
  80095. #else
  80096. bool operator==( PresentRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  80097. {
  80098. # if defined( VULKAN_HPP_USE_REFLECT )
  80099. return this->reflect() == rhs.reflect();
  80100. # else
  80101. return ( rectangleCount == rhs.rectangleCount ) && ( pRectangles == rhs.pRectangles );
  80102. # endif
  80103. }
  80104. bool operator!=( PresentRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  80105. {
  80106. return !operator==( rhs );
  80107. }
  80108. #endif
  80109. public:
  80110. uint32_t rectangleCount = {};
  80111. const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles = {};
  80112. };
  80113. struct PresentRegionsKHR
  80114. {
  80115. using NativeType = VkPresentRegionsKHR;
  80116. static const bool allowDuplicate = false;
  80117. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentRegionsKHR;
  80118. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80119. VULKAN_HPP_CONSTEXPR PresentRegionsKHR( uint32_t swapchainCount_ = {},
  80120. const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions_ = {},
  80121. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80122. : pNext( pNext_ )
  80123. , swapchainCount( swapchainCount_ )
  80124. , pRegions( pRegions_ )
  80125. {
  80126. }
  80127. VULKAN_HPP_CONSTEXPR PresentRegionsKHR( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80128. PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT : PresentRegionsKHR( *reinterpret_cast<PresentRegionsKHR const *>( &rhs ) ) {}
  80129. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80130. PresentRegionsKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_,
  80131. const void * pNext_ = nullptr )
  80132. : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( regions_.size() ) ), pRegions( regions_.data() )
  80133. {
  80134. }
  80135. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80136. PresentRegionsKHR & operator=( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80137. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80138. PresentRegionsKHR & operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  80139. {
  80140. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentRegionsKHR const *>( &rhs );
  80141. return *this;
  80142. }
  80143. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80144. VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80145. {
  80146. pNext = pNext_;
  80147. return *this;
  80148. }
  80149. VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  80150. {
  80151. swapchainCount = swapchainCount_;
  80152. return *this;
  80153. }
  80154. VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions_ ) VULKAN_HPP_NOEXCEPT
  80155. {
  80156. pRegions = pRegions_;
  80157. return *this;
  80158. }
  80159. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80160. PresentRegionsKHR &
  80161. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentRegionKHR> const & regions_ ) VULKAN_HPP_NOEXCEPT
  80162. {
  80163. swapchainCount = static_cast<uint32_t>( regions_.size() );
  80164. pRegions = regions_.data();
  80165. return *this;
  80166. }
  80167. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80168. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80169. operator VkPresentRegionsKHR const &() const VULKAN_HPP_NOEXCEPT
  80170. {
  80171. return *reinterpret_cast<const VkPresentRegionsKHR *>( this );
  80172. }
  80173. operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT
  80174. {
  80175. return *reinterpret_cast<VkPresentRegionsKHR *>( this );
  80176. }
  80177. #if defined( VULKAN_HPP_USE_REFLECT )
  80178. # if 14 <= VULKAN_HPP_CPP_VERSION
  80179. auto
  80180. # else
  80181. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentRegionKHR * const &>
  80182. # endif
  80183. reflect() const VULKAN_HPP_NOEXCEPT
  80184. {
  80185. return std::tie( sType, pNext, swapchainCount, pRegions );
  80186. }
  80187. #endif
  80188. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80189. auto operator<=>( PresentRegionsKHR const & ) const = default;
  80190. #else
  80191. bool operator==( PresentRegionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  80192. {
  80193. # if defined( VULKAN_HPP_USE_REFLECT )
  80194. return this->reflect() == rhs.reflect();
  80195. # else
  80196. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && ( pRegions == rhs.pRegions );
  80197. # endif
  80198. }
  80199. bool operator!=( PresentRegionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  80200. {
  80201. return !operator==( rhs );
  80202. }
  80203. #endif
  80204. public:
  80205. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR;
  80206. const void * pNext = {};
  80207. uint32_t swapchainCount = {};
  80208. const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions = {};
  80209. };
  80210. template <>
  80211. struct CppType<StructureType, StructureType::ePresentRegionsKHR>
  80212. {
  80213. using Type = PresentRegionsKHR;
  80214. };
  80215. struct PresentTimeGOOGLE
  80216. {
  80217. using NativeType = VkPresentTimeGOOGLE;
  80218. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80219. VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {} ) VULKAN_HPP_NOEXCEPT
  80220. : presentID( presentID_ )
  80221. , desiredPresentTime( desiredPresentTime_ )
  80222. {
  80223. }
  80224. VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80225. PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT : PresentTimeGOOGLE( *reinterpret_cast<PresentTimeGOOGLE const *>( &rhs ) ) {}
  80226. PresentTimeGOOGLE & operator=( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80227. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80228. PresentTimeGOOGLE & operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  80229. {
  80230. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE const *>( &rhs );
  80231. return *this;
  80232. }
  80233. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80234. VULKAN_HPP_CONSTEXPR_14 PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT
  80235. {
  80236. presentID = presentID_;
  80237. return *this;
  80238. }
  80239. VULKAN_HPP_CONSTEXPR_14 PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT
  80240. {
  80241. desiredPresentTime = desiredPresentTime_;
  80242. return *this;
  80243. }
  80244. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80245. operator VkPresentTimeGOOGLE const &() const VULKAN_HPP_NOEXCEPT
  80246. {
  80247. return *reinterpret_cast<const VkPresentTimeGOOGLE *>( this );
  80248. }
  80249. operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT
  80250. {
  80251. return *reinterpret_cast<VkPresentTimeGOOGLE *>( this );
  80252. }
  80253. #if defined( VULKAN_HPP_USE_REFLECT )
  80254. # if 14 <= VULKAN_HPP_CPP_VERSION
  80255. auto
  80256. # else
  80257. std::tuple<uint32_t const &, uint64_t const &>
  80258. # endif
  80259. reflect() const VULKAN_HPP_NOEXCEPT
  80260. {
  80261. return std::tie( presentID, desiredPresentTime );
  80262. }
  80263. #endif
  80264. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80265. auto operator<=>( PresentTimeGOOGLE const & ) const = default;
  80266. #else
  80267. bool operator==( PresentTimeGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  80268. {
  80269. # if defined( VULKAN_HPP_USE_REFLECT )
  80270. return this->reflect() == rhs.reflect();
  80271. # else
  80272. return ( presentID == rhs.presentID ) && ( desiredPresentTime == rhs.desiredPresentTime );
  80273. # endif
  80274. }
  80275. bool operator!=( PresentTimeGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  80276. {
  80277. return !operator==( rhs );
  80278. }
  80279. #endif
  80280. public:
  80281. uint32_t presentID = {};
  80282. uint64_t desiredPresentTime = {};
  80283. };
  80284. struct PresentTimesInfoGOOGLE
  80285. {
  80286. using NativeType = VkPresentTimesInfoGOOGLE;
  80287. static const bool allowDuplicate = false;
  80288. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentTimesInfoGOOGLE;
  80289. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80290. VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( uint32_t swapchainCount_ = {},
  80291. const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes_ = {},
  80292. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80293. : pNext( pNext_ )
  80294. , swapchainCount( swapchainCount_ )
  80295. , pTimes( pTimes_ )
  80296. {
  80297. }
  80298. VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80299. PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  80300. : PresentTimesInfoGOOGLE( *reinterpret_cast<PresentTimesInfoGOOGLE const *>( &rhs ) )
  80301. {
  80302. }
  80303. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80304. PresentTimesInfoGOOGLE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_,
  80305. const void * pNext_ = nullptr )
  80306. : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( times_.size() ) ), pTimes( times_.data() )
  80307. {
  80308. }
  80309. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80310. PresentTimesInfoGOOGLE & operator=( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80311. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80312. PresentTimesInfoGOOGLE & operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  80313. {
  80314. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE const *>( &rhs );
  80315. return *this;
  80316. }
  80317. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80318. VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80319. {
  80320. pNext = pNext_;
  80321. return *this;
  80322. }
  80323. VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  80324. {
  80325. swapchainCount = swapchainCount_;
  80326. return *this;
  80327. }
  80328. VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes_ ) VULKAN_HPP_NOEXCEPT
  80329. {
  80330. pTimes = pTimes_;
  80331. return *this;
  80332. }
  80333. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80334. PresentTimesInfoGOOGLE &
  80335. setTimes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE> const & times_ ) VULKAN_HPP_NOEXCEPT
  80336. {
  80337. swapchainCount = static_cast<uint32_t>( times_.size() );
  80338. pTimes = times_.data();
  80339. return *this;
  80340. }
  80341. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80342. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80343. operator VkPresentTimesInfoGOOGLE const &() const VULKAN_HPP_NOEXCEPT
  80344. {
  80345. return *reinterpret_cast<const VkPresentTimesInfoGOOGLE *>( this );
  80346. }
  80347. operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT
  80348. {
  80349. return *reinterpret_cast<VkPresentTimesInfoGOOGLE *>( this );
  80350. }
  80351. #if defined( VULKAN_HPP_USE_REFLECT )
  80352. # if 14 <= VULKAN_HPP_CPP_VERSION
  80353. auto
  80354. # else
  80355. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * const &>
  80356. # endif
  80357. reflect() const VULKAN_HPP_NOEXCEPT
  80358. {
  80359. return std::tie( sType, pNext, swapchainCount, pTimes );
  80360. }
  80361. #endif
  80362. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80363. auto operator<=>( PresentTimesInfoGOOGLE const & ) const = default;
  80364. #else
  80365. bool operator==( PresentTimesInfoGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  80366. {
  80367. # if defined( VULKAN_HPP_USE_REFLECT )
  80368. return this->reflect() == rhs.reflect();
  80369. # else
  80370. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && ( pTimes == rhs.pTimes );
  80371. # endif
  80372. }
  80373. bool operator!=( PresentTimesInfoGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  80374. {
  80375. return !operator==( rhs );
  80376. }
  80377. #endif
  80378. public:
  80379. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE;
  80380. const void * pNext = {};
  80381. uint32_t swapchainCount = {};
  80382. const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes = {};
  80383. };
  80384. template <>
  80385. struct CppType<StructureType, StructureType::ePresentTimesInfoGOOGLE>
  80386. {
  80387. using Type = PresentTimesInfoGOOGLE;
  80388. };
  80389. struct PrivateDataSlotCreateInfo
  80390. {
  80391. using NativeType = VkPrivateDataSlotCreateInfo;
  80392. static const bool allowDuplicate = false;
  80393. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePrivateDataSlotCreateInfo;
  80394. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80395. VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfo( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags flags_ = {},
  80396. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80397. : pNext( pNext_ )
  80398. , flags( flags_ )
  80399. {
  80400. }
  80401. VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfo( PrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80402. PrivateDataSlotCreateInfo( VkPrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  80403. : PrivateDataSlotCreateInfo( *reinterpret_cast<PrivateDataSlotCreateInfo const *>( &rhs ) )
  80404. {
  80405. }
  80406. PrivateDataSlotCreateInfo & operator=( PrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80407. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80408. PrivateDataSlotCreateInfo & operator=( VkPrivateDataSlotCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  80409. {
  80410. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const *>( &rhs );
  80411. return *this;
  80412. }
  80413. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80414. VULKAN_HPP_CONSTEXPR_14 PrivateDataSlotCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80415. {
  80416. pNext = pNext_;
  80417. return *this;
  80418. }
  80419. VULKAN_HPP_CONSTEXPR_14 PrivateDataSlotCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  80420. {
  80421. flags = flags_;
  80422. return *this;
  80423. }
  80424. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80425. operator VkPrivateDataSlotCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  80426. {
  80427. return *reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( this );
  80428. }
  80429. operator VkPrivateDataSlotCreateInfo &() VULKAN_HPP_NOEXCEPT
  80430. {
  80431. return *reinterpret_cast<VkPrivateDataSlotCreateInfo *>( this );
  80432. }
  80433. #if defined( VULKAN_HPP_USE_REFLECT )
  80434. # if 14 <= VULKAN_HPP_CPP_VERSION
  80435. auto
  80436. # else
  80437. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags const &>
  80438. # endif
  80439. reflect() const VULKAN_HPP_NOEXCEPT
  80440. {
  80441. return std::tie( sType, pNext, flags );
  80442. }
  80443. #endif
  80444. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80445. auto operator<=>( PrivateDataSlotCreateInfo const & ) const = default;
  80446. #else
  80447. bool operator==( PrivateDataSlotCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  80448. {
  80449. # if defined( VULKAN_HPP_USE_REFLECT )
  80450. return this->reflect() == rhs.reflect();
  80451. # else
  80452. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  80453. # endif
  80454. }
  80455. bool operator!=( PrivateDataSlotCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  80456. {
  80457. return !operator==( rhs );
  80458. }
  80459. #endif
  80460. public:
  80461. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePrivateDataSlotCreateInfo;
  80462. const void * pNext = {};
  80463. VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlags flags = {};
  80464. };
  80465. template <>
  80466. struct CppType<StructureType, StructureType::ePrivateDataSlotCreateInfo>
  80467. {
  80468. using Type = PrivateDataSlotCreateInfo;
  80469. };
  80470. using PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfo;
  80471. struct ProtectedSubmitInfo
  80472. {
  80473. using NativeType = VkProtectedSubmitInfo;
  80474. static const bool allowDuplicate = false;
  80475. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eProtectedSubmitInfo;
  80476. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80477. VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80478. : pNext( pNext_ )
  80479. , protectedSubmit( protectedSubmit_ )
  80480. {
  80481. }
  80482. VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80483. ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT : ProtectedSubmitInfo( *reinterpret_cast<ProtectedSubmitInfo const *>( &rhs ) )
  80484. {
  80485. }
  80486. ProtectedSubmitInfo & operator=( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80487. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80488. ProtectedSubmitInfo & operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  80489. {
  80490. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo const *>( &rhs );
  80491. return *this;
  80492. }
  80493. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80494. VULKAN_HPP_CONSTEXPR_14 ProtectedSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80495. {
  80496. pNext = pNext_;
  80497. return *this;
  80498. }
  80499. VULKAN_HPP_CONSTEXPR_14 ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT
  80500. {
  80501. protectedSubmit = protectedSubmit_;
  80502. return *this;
  80503. }
  80504. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80505. operator VkProtectedSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  80506. {
  80507. return *reinterpret_cast<const VkProtectedSubmitInfo *>( this );
  80508. }
  80509. operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT
  80510. {
  80511. return *reinterpret_cast<VkProtectedSubmitInfo *>( this );
  80512. }
  80513. #if defined( VULKAN_HPP_USE_REFLECT )
  80514. # if 14 <= VULKAN_HPP_CPP_VERSION
  80515. auto
  80516. # else
  80517. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  80518. # endif
  80519. reflect() const VULKAN_HPP_NOEXCEPT
  80520. {
  80521. return std::tie( sType, pNext, protectedSubmit );
  80522. }
  80523. #endif
  80524. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80525. auto operator<=>( ProtectedSubmitInfo const & ) const = default;
  80526. #else
  80527. bool operator==( ProtectedSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  80528. {
  80529. # if defined( VULKAN_HPP_USE_REFLECT )
  80530. return this->reflect() == rhs.reflect();
  80531. # else
  80532. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( protectedSubmit == rhs.protectedSubmit );
  80533. # endif
  80534. }
  80535. bool operator!=( ProtectedSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  80536. {
  80537. return !operator==( rhs );
  80538. }
  80539. #endif
  80540. public:
  80541. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo;
  80542. const void * pNext = {};
  80543. VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {};
  80544. };
  80545. template <>
  80546. struct CppType<StructureType, StructureType::eProtectedSubmitInfo>
  80547. {
  80548. using Type = ProtectedSubmitInfo;
  80549. };
  80550. struct QueryLowLatencySupportNV
  80551. {
  80552. using NativeType = VkQueryLowLatencySupportNV;
  80553. static const bool allowDuplicate = false;
  80554. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryLowLatencySupportNV;
  80555. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80556. VULKAN_HPP_CONSTEXPR QueryLowLatencySupportNV( void * pQueriedLowLatencyData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80557. : pNext( pNext_ )
  80558. , pQueriedLowLatencyData( pQueriedLowLatencyData_ )
  80559. {
  80560. }
  80561. VULKAN_HPP_CONSTEXPR QueryLowLatencySupportNV( QueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80562. QueryLowLatencySupportNV( VkQueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT
  80563. : QueryLowLatencySupportNV( *reinterpret_cast<QueryLowLatencySupportNV const *>( &rhs ) )
  80564. {
  80565. }
  80566. QueryLowLatencySupportNV & operator=( QueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80567. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80568. QueryLowLatencySupportNV & operator=( VkQueryLowLatencySupportNV const & rhs ) VULKAN_HPP_NOEXCEPT
  80569. {
  80570. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV const *>( &rhs );
  80571. return *this;
  80572. }
  80573. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80574. VULKAN_HPP_CONSTEXPR_14 QueryLowLatencySupportNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80575. {
  80576. pNext = pNext_;
  80577. return *this;
  80578. }
  80579. VULKAN_HPP_CONSTEXPR_14 QueryLowLatencySupportNV & setPQueriedLowLatencyData( void * pQueriedLowLatencyData_ ) VULKAN_HPP_NOEXCEPT
  80580. {
  80581. pQueriedLowLatencyData = pQueriedLowLatencyData_;
  80582. return *this;
  80583. }
  80584. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80585. operator VkQueryLowLatencySupportNV const &() const VULKAN_HPP_NOEXCEPT
  80586. {
  80587. return *reinterpret_cast<const VkQueryLowLatencySupportNV *>( this );
  80588. }
  80589. operator VkQueryLowLatencySupportNV &() VULKAN_HPP_NOEXCEPT
  80590. {
  80591. return *reinterpret_cast<VkQueryLowLatencySupportNV *>( this );
  80592. }
  80593. #if defined( VULKAN_HPP_USE_REFLECT )
  80594. # if 14 <= VULKAN_HPP_CPP_VERSION
  80595. auto
  80596. # else
  80597. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, void * const &>
  80598. # endif
  80599. reflect() const VULKAN_HPP_NOEXCEPT
  80600. {
  80601. return std::tie( sType, pNext, pQueriedLowLatencyData );
  80602. }
  80603. #endif
  80604. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80605. auto operator<=>( QueryLowLatencySupportNV const & ) const = default;
  80606. #else
  80607. bool operator==( QueryLowLatencySupportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  80608. {
  80609. # if defined( VULKAN_HPP_USE_REFLECT )
  80610. return this->reflect() == rhs.reflect();
  80611. # else
  80612. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pQueriedLowLatencyData == rhs.pQueriedLowLatencyData );
  80613. # endif
  80614. }
  80615. bool operator!=( QueryLowLatencySupportNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  80616. {
  80617. return !operator==( rhs );
  80618. }
  80619. #endif
  80620. public:
  80621. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryLowLatencySupportNV;
  80622. const void * pNext = {};
  80623. void * pQueriedLowLatencyData = {};
  80624. };
  80625. template <>
  80626. struct CppType<StructureType, StructureType::eQueryLowLatencySupportNV>
  80627. {
  80628. using Type = QueryLowLatencySupportNV;
  80629. };
  80630. struct QueryPoolCreateInfo
  80631. {
  80632. using NativeType = VkQueryPoolCreateInfo;
  80633. static const bool allowDuplicate = false;
  80634. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolCreateInfo;
  80635. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80636. VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ = {},
  80637. VULKAN_HPP_NAMESPACE::QueryType queryType_ = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion,
  80638. uint32_t queryCount_ = {},
  80639. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {},
  80640. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80641. : pNext( pNext_ )
  80642. , flags( flags_ )
  80643. , queryType( queryType_ )
  80644. , queryCount( queryCount_ )
  80645. , pipelineStatistics( pipelineStatistics_ )
  80646. {
  80647. }
  80648. VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80649. QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : QueryPoolCreateInfo( *reinterpret_cast<QueryPoolCreateInfo const *>( &rhs ) )
  80650. {
  80651. }
  80652. QueryPoolCreateInfo & operator=( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80653. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80654. QueryPoolCreateInfo & operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  80655. {
  80656. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const *>( &rhs );
  80657. return *this;
  80658. }
  80659. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80660. VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80661. {
  80662. pNext = pNext_;
  80663. return *this;
  80664. }
  80665. VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  80666. {
  80667. flags = flags_;
  80668. return *this;
  80669. }
  80670. VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT
  80671. {
  80672. queryType = queryType_;
  80673. return *this;
  80674. }
  80675. VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT
  80676. {
  80677. queryCount = queryCount_;
  80678. return *this;
  80679. }
  80680. VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo &
  80681. setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT
  80682. {
  80683. pipelineStatistics = pipelineStatistics_;
  80684. return *this;
  80685. }
  80686. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80687. operator VkQueryPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  80688. {
  80689. return *reinterpret_cast<const VkQueryPoolCreateInfo *>( this );
  80690. }
  80691. operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT
  80692. {
  80693. return *reinterpret_cast<VkQueryPoolCreateInfo *>( this );
  80694. }
  80695. #if defined( VULKAN_HPP_USE_REFLECT )
  80696. # if 14 <= VULKAN_HPP_CPP_VERSION
  80697. auto
  80698. # else
  80699. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  80700. const void * const &,
  80701. VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags const &,
  80702. VULKAN_HPP_NAMESPACE::QueryType const &,
  80703. uint32_t const &,
  80704. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags const &>
  80705. # endif
  80706. reflect() const VULKAN_HPP_NOEXCEPT
  80707. {
  80708. return std::tie( sType, pNext, flags, queryType, queryCount, pipelineStatistics );
  80709. }
  80710. #endif
  80711. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80712. auto operator<=>( QueryPoolCreateInfo const & ) const = default;
  80713. #else
  80714. bool operator==( QueryPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  80715. {
  80716. # if defined( VULKAN_HPP_USE_REFLECT )
  80717. return this->reflect() == rhs.reflect();
  80718. # else
  80719. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( queryType == rhs.queryType ) && ( queryCount == rhs.queryCount ) &&
  80720. ( pipelineStatistics == rhs.pipelineStatistics );
  80721. # endif
  80722. }
  80723. bool operator!=( QueryPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  80724. {
  80725. return !operator==( rhs );
  80726. }
  80727. #endif
  80728. public:
  80729. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo;
  80730. const void * pNext = {};
  80731. VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {};
  80732. VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion;
  80733. uint32_t queryCount = {};
  80734. VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {};
  80735. };
  80736. template <>
  80737. struct CppType<StructureType, StructureType::eQueryPoolCreateInfo>
  80738. {
  80739. using Type = QueryPoolCreateInfo;
  80740. };
  80741. struct QueryPoolPerformanceCreateInfoKHR
  80742. {
  80743. using NativeType = VkQueryPoolPerformanceCreateInfoKHR;
  80744. static const bool allowDuplicate = false;
  80745. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
  80746. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80747. VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_ = {},
  80748. uint32_t counterIndexCount_ = {},
  80749. const uint32_t * pCounterIndices_ = {},
  80750. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80751. : pNext( pNext_ )
  80752. , queueFamilyIndex( queueFamilyIndex_ )
  80753. , counterIndexCount( counterIndexCount_ )
  80754. , pCounterIndices( pCounterIndices_ )
  80755. {
  80756. }
  80757. VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80758. QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  80759. : QueryPoolPerformanceCreateInfoKHR( *reinterpret_cast<QueryPoolPerformanceCreateInfoKHR const *>( &rhs ) )
  80760. {
  80761. }
  80762. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80763. QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_,
  80764. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_,
  80765. const void * pNext_ = nullptr )
  80766. : pNext( pNext_ )
  80767. , queueFamilyIndex( queueFamilyIndex_ )
  80768. , counterIndexCount( static_cast<uint32_t>( counterIndices_.size() ) )
  80769. , pCounterIndices( counterIndices_.data() )
  80770. {
  80771. }
  80772. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80773. QueryPoolPerformanceCreateInfoKHR & operator=( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80774. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80775. QueryPoolPerformanceCreateInfoKHR & operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  80776. {
  80777. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR const *>( &rhs );
  80778. return *this;
  80779. }
  80780. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80781. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80782. {
  80783. pNext = pNext_;
  80784. return *this;
  80785. }
  80786. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  80787. {
  80788. queueFamilyIndex = queueFamilyIndex_;
  80789. return *this;
  80790. }
  80791. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT
  80792. {
  80793. counterIndexCount = counterIndexCount_;
  80794. return *this;
  80795. }
  80796. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t * pCounterIndices_ ) VULKAN_HPP_NOEXCEPT
  80797. {
  80798. pCounterIndices = pCounterIndices_;
  80799. return *this;
  80800. }
  80801. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  80802. QueryPoolPerformanceCreateInfoKHR &
  80803. setCounterIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & counterIndices_ ) VULKAN_HPP_NOEXCEPT
  80804. {
  80805. counterIndexCount = static_cast<uint32_t>( counterIndices_.size() );
  80806. pCounterIndices = counterIndices_.data();
  80807. return *this;
  80808. }
  80809. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  80810. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80811. operator VkQueryPoolPerformanceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  80812. {
  80813. return *reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( this );
  80814. }
  80815. operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  80816. {
  80817. return *reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR *>( this );
  80818. }
  80819. #if defined( VULKAN_HPP_USE_REFLECT )
  80820. # if 14 <= VULKAN_HPP_CPP_VERSION
  80821. auto
  80822. # else
  80823. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &, const uint32_t * const &>
  80824. # endif
  80825. reflect() const VULKAN_HPP_NOEXCEPT
  80826. {
  80827. return std::tie( sType, pNext, queueFamilyIndex, counterIndexCount, pCounterIndices );
  80828. }
  80829. #endif
  80830. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80831. auto operator<=>( QueryPoolPerformanceCreateInfoKHR const & ) const = default;
  80832. #else
  80833. bool operator==( QueryPoolPerformanceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  80834. {
  80835. # if defined( VULKAN_HPP_USE_REFLECT )
  80836. return this->reflect() == rhs.reflect();
  80837. # else
  80838. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueFamilyIndex == rhs.queueFamilyIndex ) &&
  80839. ( counterIndexCount == rhs.counterIndexCount ) && ( pCounterIndices == rhs.pCounterIndices );
  80840. # endif
  80841. }
  80842. bool operator!=( QueryPoolPerformanceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  80843. {
  80844. return !operator==( rhs );
  80845. }
  80846. #endif
  80847. public:
  80848. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR;
  80849. const void * pNext = {};
  80850. uint32_t queueFamilyIndex = {};
  80851. uint32_t counterIndexCount = {};
  80852. const uint32_t * pCounterIndices = {};
  80853. };
  80854. template <>
  80855. struct CppType<StructureType, StructureType::eQueryPoolPerformanceCreateInfoKHR>
  80856. {
  80857. using Type = QueryPoolPerformanceCreateInfoKHR;
  80858. };
  80859. struct QueryPoolPerformanceQueryCreateInfoINTEL
  80860. {
  80861. using NativeType = VkQueryPoolPerformanceQueryCreateInfoINTEL;
  80862. static const bool allowDuplicate = false;
  80863. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
  80864. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80865. VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL(
  80866. VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual,
  80867. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80868. : pNext( pNext_ )
  80869. , performanceCountersSampling( performanceCountersSampling_ )
  80870. {
  80871. }
  80872. VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80873. QueryPoolPerformanceQueryCreateInfoINTEL( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  80874. : QueryPoolPerformanceQueryCreateInfoINTEL( *reinterpret_cast<QueryPoolPerformanceQueryCreateInfoINTEL const *>( &rhs ) )
  80875. {
  80876. }
  80877. QueryPoolPerformanceQueryCreateInfoINTEL & operator=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80878. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80879. QueryPoolPerformanceQueryCreateInfoINTEL & operator=( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT
  80880. {
  80881. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL const *>( &rhs );
  80882. return *this;
  80883. }
  80884. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80885. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80886. {
  80887. pNext = pNext_;
  80888. return *this;
  80889. }
  80890. VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceQueryCreateInfoINTEL &
  80891. setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT
  80892. {
  80893. performanceCountersSampling = performanceCountersSampling_;
  80894. return *this;
  80895. }
  80896. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80897. operator VkQueryPoolPerformanceQueryCreateInfoINTEL const &() const VULKAN_HPP_NOEXCEPT
  80898. {
  80899. return *reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL *>( this );
  80900. }
  80901. operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT
  80902. {
  80903. return *reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL *>( this );
  80904. }
  80905. #if defined( VULKAN_HPP_USE_REFLECT )
  80906. # if 14 <= VULKAN_HPP_CPP_VERSION
  80907. auto
  80908. # else
  80909. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL const &>
  80910. # endif
  80911. reflect() const VULKAN_HPP_NOEXCEPT
  80912. {
  80913. return std::tie( sType, pNext, performanceCountersSampling );
  80914. }
  80915. #endif
  80916. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  80917. auto operator<=>( QueryPoolPerformanceQueryCreateInfoINTEL const & ) const = default;
  80918. #else
  80919. bool operator==( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  80920. {
  80921. # if defined( VULKAN_HPP_USE_REFLECT )
  80922. return this->reflect() == rhs.reflect();
  80923. # else
  80924. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( performanceCountersSampling == rhs.performanceCountersSampling );
  80925. # endif
  80926. }
  80927. bool operator!=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
  80928. {
  80929. return !operator==( rhs );
  80930. }
  80931. #endif
  80932. public:
  80933. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL;
  80934. const void * pNext = {};
  80935. VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual;
  80936. };
  80937. template <>
  80938. struct CppType<StructureType, StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL>
  80939. {
  80940. using Type = QueryPoolPerformanceQueryCreateInfoINTEL;
  80941. };
  80942. using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
  80943. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  80944. struct QueryPoolVideoEncodeFeedbackCreateInfoKHR
  80945. {
  80946. using NativeType = VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
  80947. static const bool allowDuplicate = false;
  80948. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolVideoEncodeFeedbackCreateInfoKHR;
  80949. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  80950. VULKAN_HPP_CONSTEXPR QueryPoolVideoEncodeFeedbackCreateInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR encodeFeedbackFlags_ = {},
  80951. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  80952. : pNext( pNext_ )
  80953. , encodeFeedbackFlags( encodeFeedbackFlags_ )
  80954. {
  80955. }
  80956. VULKAN_HPP_CONSTEXPR QueryPoolVideoEncodeFeedbackCreateInfoKHR( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80957. QueryPoolVideoEncodeFeedbackCreateInfoKHR( VkQueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  80958. : QueryPoolVideoEncodeFeedbackCreateInfoKHR( *reinterpret_cast<QueryPoolVideoEncodeFeedbackCreateInfoKHR const *>( &rhs ) )
  80959. {
  80960. }
  80961. QueryPoolVideoEncodeFeedbackCreateInfoKHR & operator=( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  80962. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  80963. QueryPoolVideoEncodeFeedbackCreateInfoKHR & operator=( VkQueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  80964. {
  80965. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR const *>( &rhs );
  80966. return *this;
  80967. }
  80968. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  80969. VULKAN_HPP_CONSTEXPR_14 QueryPoolVideoEncodeFeedbackCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  80970. {
  80971. pNext = pNext_;
  80972. return *this;
  80973. }
  80974. VULKAN_HPP_CONSTEXPR_14 QueryPoolVideoEncodeFeedbackCreateInfoKHR &
  80975. setEncodeFeedbackFlags( VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR encodeFeedbackFlags_ ) VULKAN_HPP_NOEXCEPT
  80976. {
  80977. encodeFeedbackFlags = encodeFeedbackFlags_;
  80978. return *this;
  80979. }
  80980. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  80981. operator VkQueryPoolVideoEncodeFeedbackCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  80982. {
  80983. return *reinterpret_cast<const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR *>( this );
  80984. }
  80985. operator VkQueryPoolVideoEncodeFeedbackCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  80986. {
  80987. return *reinterpret_cast<VkQueryPoolVideoEncodeFeedbackCreateInfoKHR *>( this );
  80988. }
  80989. # if defined( VULKAN_HPP_USE_REFLECT )
  80990. # if 14 <= VULKAN_HPP_CPP_VERSION
  80991. auto
  80992. # else
  80993. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR const &>
  80994. # endif
  80995. reflect() const VULKAN_HPP_NOEXCEPT
  80996. {
  80997. return std::tie( sType, pNext, encodeFeedbackFlags );
  80998. }
  80999. # endif
  81000. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81001. auto operator<=>( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & ) const = default;
  81002. # else
  81003. bool operator==( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81004. {
  81005. # if defined( VULKAN_HPP_USE_REFLECT )
  81006. return this->reflect() == rhs.reflect();
  81007. # else
  81008. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( encodeFeedbackFlags == rhs.encodeFeedbackFlags );
  81009. # endif
  81010. }
  81011. bool operator!=( QueryPoolVideoEncodeFeedbackCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81012. {
  81013. return !operator==( rhs );
  81014. }
  81015. # endif
  81016. public:
  81017. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolVideoEncodeFeedbackCreateInfoKHR;
  81018. const void * pNext = {};
  81019. VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR encodeFeedbackFlags = {};
  81020. };
  81021. template <>
  81022. struct CppType<StructureType, StructureType::eQueryPoolVideoEncodeFeedbackCreateInfoKHR>
  81023. {
  81024. using Type = QueryPoolVideoEncodeFeedbackCreateInfoKHR;
  81025. };
  81026. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  81027. struct QueueFamilyCheckpointProperties2NV
  81028. {
  81029. using NativeType = VkQueueFamilyCheckpointProperties2NV;
  81030. static const bool allowDuplicate = false;
  81031. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointProperties2NV;
  81032. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81033. VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 checkpointExecutionStageMask_ = {},
  81034. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81035. : pNext( pNext_ )
  81036. , checkpointExecutionStageMask( checkpointExecutionStageMask_ )
  81037. {
  81038. }
  81039. VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV( QueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81040. QueueFamilyCheckpointProperties2NV( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT
  81041. : QueueFamilyCheckpointProperties2NV( *reinterpret_cast<QueueFamilyCheckpointProperties2NV const *>( &rhs ) )
  81042. {
  81043. }
  81044. QueueFamilyCheckpointProperties2NV & operator=( QueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81045. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81046. QueueFamilyCheckpointProperties2NV & operator=( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT
  81047. {
  81048. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV const *>( &rhs );
  81049. return *this;
  81050. }
  81051. operator VkQueueFamilyCheckpointProperties2NV const &() const VULKAN_HPP_NOEXCEPT
  81052. {
  81053. return *reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV *>( this );
  81054. }
  81055. operator VkQueueFamilyCheckpointProperties2NV &() VULKAN_HPP_NOEXCEPT
  81056. {
  81057. return *reinterpret_cast<VkQueueFamilyCheckpointProperties2NV *>( this );
  81058. }
  81059. #if defined( VULKAN_HPP_USE_REFLECT )
  81060. # if 14 <= VULKAN_HPP_CPP_VERSION
  81061. auto
  81062. # else
  81063. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &>
  81064. # endif
  81065. reflect() const VULKAN_HPP_NOEXCEPT
  81066. {
  81067. return std::tie( sType, pNext, checkpointExecutionStageMask );
  81068. }
  81069. #endif
  81070. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81071. auto operator<=>( QueueFamilyCheckpointProperties2NV const & ) const = default;
  81072. #else
  81073. bool operator==( QueueFamilyCheckpointProperties2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
  81074. {
  81075. # if defined( VULKAN_HPP_USE_REFLECT )
  81076. return this->reflect() == rhs.reflect();
  81077. # else
  81078. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
  81079. # endif
  81080. }
  81081. bool operator!=( QueueFamilyCheckpointProperties2NV const & rhs ) const VULKAN_HPP_NOEXCEPT
  81082. {
  81083. return !operator==( rhs );
  81084. }
  81085. #endif
  81086. public:
  81087. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointProperties2NV;
  81088. void * pNext = {};
  81089. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 checkpointExecutionStageMask = {};
  81090. };
  81091. template <>
  81092. struct CppType<StructureType, StructureType::eQueueFamilyCheckpointProperties2NV>
  81093. {
  81094. using Type = QueueFamilyCheckpointProperties2NV;
  81095. };
  81096. struct QueueFamilyCheckpointPropertiesNV
  81097. {
  81098. using NativeType = VkQueueFamilyCheckpointPropertiesNV;
  81099. static const bool allowDuplicate = false;
  81100. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointPropertiesNV;
  81101. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81102. VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {},
  81103. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81104. : pNext( pNext_ )
  81105. , checkpointExecutionStageMask( checkpointExecutionStageMask_ )
  81106. {
  81107. }
  81108. VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81109. QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  81110. : QueueFamilyCheckpointPropertiesNV( *reinterpret_cast<QueueFamilyCheckpointPropertiesNV const *>( &rhs ) )
  81111. {
  81112. }
  81113. QueueFamilyCheckpointPropertiesNV & operator=( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81114. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81115. QueueFamilyCheckpointPropertiesNV & operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT
  81116. {
  81117. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV const *>( &rhs );
  81118. return *this;
  81119. }
  81120. operator VkQueueFamilyCheckpointPropertiesNV const &() const VULKAN_HPP_NOEXCEPT
  81121. {
  81122. return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV *>( this );
  81123. }
  81124. operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT
  81125. {
  81126. return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV *>( this );
  81127. }
  81128. #if defined( VULKAN_HPP_USE_REFLECT )
  81129. # if 14 <= VULKAN_HPP_CPP_VERSION
  81130. auto
  81131. # else
  81132. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PipelineStageFlags const &>
  81133. # endif
  81134. reflect() const VULKAN_HPP_NOEXCEPT
  81135. {
  81136. return std::tie( sType, pNext, checkpointExecutionStageMask );
  81137. }
  81138. #endif
  81139. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81140. auto operator<=>( QueueFamilyCheckpointPropertiesNV const & ) const = default;
  81141. #else
  81142. bool operator==( QueueFamilyCheckpointPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  81143. {
  81144. # if defined( VULKAN_HPP_USE_REFLECT )
  81145. return this->reflect() == rhs.reflect();
  81146. # else
  81147. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
  81148. # endif
  81149. }
  81150. bool operator!=( QueueFamilyCheckpointPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  81151. {
  81152. return !operator==( rhs );
  81153. }
  81154. #endif
  81155. public:
  81156. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV;
  81157. void * pNext = {};
  81158. VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {};
  81159. };
  81160. template <>
  81161. struct CppType<StructureType, StructureType::eQueueFamilyCheckpointPropertiesNV>
  81162. {
  81163. using Type = QueueFamilyCheckpointPropertiesNV;
  81164. };
  81165. struct QueueFamilyGlobalPriorityPropertiesKHR
  81166. {
  81167. using NativeType = VkQueueFamilyGlobalPriorityPropertiesKHR;
  81168. static const bool allowDuplicate = false;
  81169. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyGlobalPriorityPropertiesKHR;
  81170. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81171. VULKAN_HPP_CONSTEXPR_14
  81172. QueueFamilyGlobalPriorityPropertiesKHR( uint32_t priorityCount_ = {},
  81173. std::array<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR, VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> const &
  81174. priorities_ = { { VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81175. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81176. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81177. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81178. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81179. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81180. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81181. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81182. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81183. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81184. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81185. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81186. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81187. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81188. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow,
  81189. VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR::eLow } },
  81190. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81191. : pNext( pNext_ )
  81192. , priorityCount( priorityCount_ )
  81193. , priorities( priorities_ )
  81194. {
  81195. }
  81196. VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81197. QueueFamilyGlobalPriorityPropertiesKHR( VkQueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81198. : QueueFamilyGlobalPriorityPropertiesKHR( *reinterpret_cast<QueueFamilyGlobalPriorityPropertiesKHR const *>( &rhs ) )
  81199. {
  81200. }
  81201. QueueFamilyGlobalPriorityPropertiesKHR & operator=( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81202. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81203. QueueFamilyGlobalPriorityPropertiesKHR & operator=( VkQueueFamilyGlobalPriorityPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81204. {
  81205. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR const *>( &rhs );
  81206. return *this;
  81207. }
  81208. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81209. VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  81210. {
  81211. pNext = pNext_;
  81212. return *this;
  81213. }
  81214. VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR & setPriorityCount( uint32_t priorityCount_ ) VULKAN_HPP_NOEXCEPT
  81215. {
  81216. priorityCount = priorityCount_;
  81217. return *this;
  81218. }
  81219. VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityPropertiesKHR &
  81220. setPriorities( std::array<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR, VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> priorities_ ) VULKAN_HPP_NOEXCEPT
  81221. {
  81222. priorities = priorities_;
  81223. return *this;
  81224. }
  81225. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81226. operator VkQueueFamilyGlobalPriorityPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  81227. {
  81228. return *reinterpret_cast<const VkQueueFamilyGlobalPriorityPropertiesKHR *>( this );
  81229. }
  81230. operator VkQueueFamilyGlobalPriorityPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  81231. {
  81232. return *reinterpret_cast<VkQueueFamilyGlobalPriorityPropertiesKHR *>( this );
  81233. }
  81234. #if defined( VULKAN_HPP_USE_REFLECT )
  81235. # if 14 <= VULKAN_HPP_CPP_VERSION
  81236. auto
  81237. # else
  81238. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  81239. void * const &,
  81240. uint32_t const &,
  81241. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR, VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> const &>
  81242. # endif
  81243. reflect() const VULKAN_HPP_NOEXCEPT
  81244. {
  81245. return std::tie( sType, pNext, priorityCount, priorities );
  81246. }
  81247. #endif
  81248. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81249. auto operator<=>( QueueFamilyGlobalPriorityPropertiesKHR const & ) const = default;
  81250. #else
  81251. bool operator==( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81252. {
  81253. # if defined( VULKAN_HPP_USE_REFLECT )
  81254. return this->reflect() == rhs.reflect();
  81255. # else
  81256. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( priorityCount == rhs.priorityCount ) && ( priorities == rhs.priorities );
  81257. # endif
  81258. }
  81259. bool operator!=( QueueFamilyGlobalPriorityPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81260. {
  81261. return !operator==( rhs );
  81262. }
  81263. #endif
  81264. public:
  81265. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyGlobalPriorityPropertiesKHR;
  81266. void * pNext = {};
  81267. uint32_t priorityCount = {};
  81268. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<VULKAN_HPP_NAMESPACE::QueueGlobalPriorityKHR, VK_MAX_GLOBAL_PRIORITY_SIZE_KHR> priorities = {};
  81269. };
  81270. template <>
  81271. struct CppType<StructureType, StructureType::eQueueFamilyGlobalPriorityPropertiesKHR>
  81272. {
  81273. using Type = QueueFamilyGlobalPriorityPropertiesKHR;
  81274. };
  81275. using QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityPropertiesKHR;
  81276. struct QueueFamilyProperties
  81277. {
  81278. using NativeType = VkQueueFamilyProperties;
  81279. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81280. VULKAN_HPP_CONSTEXPR QueueFamilyProperties( VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {},
  81281. uint32_t queueCount_ = {},
  81282. uint32_t timestampValidBits_ = {},
  81283. VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {} ) VULKAN_HPP_NOEXCEPT
  81284. : queueFlags( queueFlags_ )
  81285. , queueCount( queueCount_ )
  81286. , timestampValidBits( timestampValidBits_ )
  81287. , minImageTransferGranularity( minImageTransferGranularity_ )
  81288. {
  81289. }
  81290. VULKAN_HPP_CONSTEXPR QueueFamilyProperties( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81291. QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  81292. : QueueFamilyProperties( *reinterpret_cast<QueueFamilyProperties const *>( &rhs ) )
  81293. {
  81294. }
  81295. QueueFamilyProperties & operator=( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81296. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81297. QueueFamilyProperties & operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  81298. {
  81299. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties const *>( &rhs );
  81300. return *this;
  81301. }
  81302. operator VkQueueFamilyProperties const &() const VULKAN_HPP_NOEXCEPT
  81303. {
  81304. return *reinterpret_cast<const VkQueueFamilyProperties *>( this );
  81305. }
  81306. operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT
  81307. {
  81308. return *reinterpret_cast<VkQueueFamilyProperties *>( this );
  81309. }
  81310. #if defined( VULKAN_HPP_USE_REFLECT )
  81311. # if 14 <= VULKAN_HPP_CPP_VERSION
  81312. auto
  81313. # else
  81314. std::tuple<VULKAN_HPP_NAMESPACE::QueueFlags const &, uint32_t const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Extent3D const &>
  81315. # endif
  81316. reflect() const VULKAN_HPP_NOEXCEPT
  81317. {
  81318. return std::tie( queueFlags, queueCount, timestampValidBits, minImageTransferGranularity );
  81319. }
  81320. #endif
  81321. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81322. auto operator<=>( QueueFamilyProperties const & ) const = default;
  81323. #else
  81324. bool operator==( QueueFamilyProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  81325. {
  81326. # if defined( VULKAN_HPP_USE_REFLECT )
  81327. return this->reflect() == rhs.reflect();
  81328. # else
  81329. return ( queueFlags == rhs.queueFlags ) && ( queueCount == rhs.queueCount ) && ( timestampValidBits == rhs.timestampValidBits ) &&
  81330. ( minImageTransferGranularity == rhs.minImageTransferGranularity );
  81331. # endif
  81332. }
  81333. bool operator!=( QueueFamilyProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  81334. {
  81335. return !operator==( rhs );
  81336. }
  81337. #endif
  81338. public:
  81339. VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {};
  81340. uint32_t queueCount = {};
  81341. uint32_t timestampValidBits = {};
  81342. VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {};
  81343. };
  81344. struct QueueFamilyProperties2
  81345. {
  81346. using NativeType = VkQueueFamilyProperties2;
  81347. static const bool allowDuplicate = false;
  81348. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyProperties2;
  81349. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81350. VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {},
  81351. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81352. : pNext( pNext_ )
  81353. , queueFamilyProperties( queueFamilyProperties_ )
  81354. {
  81355. }
  81356. VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81357. QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  81358. : QueueFamilyProperties2( *reinterpret_cast<QueueFamilyProperties2 const *>( &rhs ) )
  81359. {
  81360. }
  81361. QueueFamilyProperties2 & operator=( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81362. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81363. QueueFamilyProperties2 & operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  81364. {
  81365. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 const *>( &rhs );
  81366. return *this;
  81367. }
  81368. operator VkQueueFamilyProperties2 const &() const VULKAN_HPP_NOEXCEPT
  81369. {
  81370. return *reinterpret_cast<const VkQueueFamilyProperties2 *>( this );
  81371. }
  81372. operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT
  81373. {
  81374. return *reinterpret_cast<VkQueueFamilyProperties2 *>( this );
  81375. }
  81376. #if defined( VULKAN_HPP_USE_REFLECT )
  81377. # if 14 <= VULKAN_HPP_CPP_VERSION
  81378. auto
  81379. # else
  81380. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::QueueFamilyProperties const &>
  81381. # endif
  81382. reflect() const VULKAN_HPP_NOEXCEPT
  81383. {
  81384. return std::tie( sType, pNext, queueFamilyProperties );
  81385. }
  81386. #endif
  81387. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81388. auto operator<=>( QueueFamilyProperties2 const & ) const = default;
  81389. #else
  81390. bool operator==( QueueFamilyProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  81391. {
  81392. # if defined( VULKAN_HPP_USE_REFLECT )
  81393. return this->reflect() == rhs.reflect();
  81394. # else
  81395. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueFamilyProperties == rhs.queueFamilyProperties );
  81396. # endif
  81397. }
  81398. bool operator!=( QueueFamilyProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  81399. {
  81400. return !operator==( rhs );
  81401. }
  81402. #endif
  81403. public:
  81404. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2;
  81405. void * pNext = {};
  81406. VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {};
  81407. };
  81408. template <>
  81409. struct CppType<StructureType, StructureType::eQueueFamilyProperties2>
  81410. {
  81411. using Type = QueueFamilyProperties2;
  81412. };
  81413. using QueueFamilyProperties2KHR = QueueFamilyProperties2;
  81414. struct QueueFamilyQueryResultStatusPropertiesKHR
  81415. {
  81416. using NativeType = VkQueueFamilyQueryResultStatusPropertiesKHR;
  81417. static const bool allowDuplicate = false;
  81418. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyQueryResultStatusPropertiesKHR;
  81419. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81420. VULKAN_HPP_CONSTEXPR QueueFamilyQueryResultStatusPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 queryResultStatusSupport_ = {},
  81421. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81422. : pNext( pNext_ )
  81423. , queryResultStatusSupport( queryResultStatusSupport_ )
  81424. {
  81425. }
  81426. VULKAN_HPP_CONSTEXPR QueueFamilyQueryResultStatusPropertiesKHR( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81427. QueueFamilyQueryResultStatusPropertiesKHR( VkQueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81428. : QueueFamilyQueryResultStatusPropertiesKHR( *reinterpret_cast<QueueFamilyQueryResultStatusPropertiesKHR const *>( &rhs ) )
  81429. {
  81430. }
  81431. QueueFamilyQueryResultStatusPropertiesKHR & operator=( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81432. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81433. QueueFamilyQueryResultStatusPropertiesKHR & operator=( VkQueueFamilyQueryResultStatusPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81434. {
  81435. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR const *>( &rhs );
  81436. return *this;
  81437. }
  81438. operator VkQueueFamilyQueryResultStatusPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  81439. {
  81440. return *reinterpret_cast<const VkQueueFamilyQueryResultStatusPropertiesKHR *>( this );
  81441. }
  81442. operator VkQueueFamilyQueryResultStatusPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  81443. {
  81444. return *reinterpret_cast<VkQueueFamilyQueryResultStatusPropertiesKHR *>( this );
  81445. }
  81446. #if defined( VULKAN_HPP_USE_REFLECT )
  81447. # if 14 <= VULKAN_HPP_CPP_VERSION
  81448. auto
  81449. # else
  81450. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  81451. # endif
  81452. reflect() const VULKAN_HPP_NOEXCEPT
  81453. {
  81454. return std::tie( sType, pNext, queryResultStatusSupport );
  81455. }
  81456. #endif
  81457. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81458. auto operator<=>( QueueFamilyQueryResultStatusPropertiesKHR const & ) const = default;
  81459. #else
  81460. bool operator==( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81461. {
  81462. # if defined( VULKAN_HPP_USE_REFLECT )
  81463. return this->reflect() == rhs.reflect();
  81464. # else
  81465. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queryResultStatusSupport == rhs.queryResultStatusSupport );
  81466. # endif
  81467. }
  81468. bool operator!=( QueueFamilyQueryResultStatusPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81469. {
  81470. return !operator==( rhs );
  81471. }
  81472. #endif
  81473. public:
  81474. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyQueryResultStatusPropertiesKHR;
  81475. void * pNext = {};
  81476. VULKAN_HPP_NAMESPACE::Bool32 queryResultStatusSupport = {};
  81477. };
  81478. template <>
  81479. struct CppType<StructureType, StructureType::eQueueFamilyQueryResultStatusPropertiesKHR>
  81480. {
  81481. using Type = QueueFamilyQueryResultStatusPropertiesKHR;
  81482. };
  81483. struct QueueFamilyVideoPropertiesKHR
  81484. {
  81485. using NativeType = VkQueueFamilyVideoPropertiesKHR;
  81486. static const bool allowDuplicate = false;
  81487. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyVideoPropertiesKHR;
  81488. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81489. VULKAN_HPP_CONSTEXPR QueueFamilyVideoPropertiesKHR( VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations_ = {},
  81490. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81491. : pNext( pNext_ )
  81492. , videoCodecOperations( videoCodecOperations_ )
  81493. {
  81494. }
  81495. VULKAN_HPP_CONSTEXPR QueueFamilyVideoPropertiesKHR( QueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81496. QueueFamilyVideoPropertiesKHR( VkQueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81497. : QueueFamilyVideoPropertiesKHR( *reinterpret_cast<QueueFamilyVideoPropertiesKHR const *>( &rhs ) )
  81498. {
  81499. }
  81500. QueueFamilyVideoPropertiesKHR & operator=( QueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81501. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81502. QueueFamilyVideoPropertiesKHR & operator=( VkQueueFamilyVideoPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81503. {
  81504. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR const *>( &rhs );
  81505. return *this;
  81506. }
  81507. operator VkQueueFamilyVideoPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  81508. {
  81509. return *reinterpret_cast<const VkQueueFamilyVideoPropertiesKHR *>( this );
  81510. }
  81511. operator VkQueueFamilyVideoPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  81512. {
  81513. return *reinterpret_cast<VkQueueFamilyVideoPropertiesKHR *>( this );
  81514. }
  81515. #if defined( VULKAN_HPP_USE_REFLECT )
  81516. # if 14 <= VULKAN_HPP_CPP_VERSION
  81517. auto
  81518. # else
  81519. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR const &>
  81520. # endif
  81521. reflect() const VULKAN_HPP_NOEXCEPT
  81522. {
  81523. return std::tie( sType, pNext, videoCodecOperations );
  81524. }
  81525. #endif
  81526. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81527. auto operator<=>( QueueFamilyVideoPropertiesKHR const & ) const = default;
  81528. #else
  81529. bool operator==( QueueFamilyVideoPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81530. {
  81531. # if defined( VULKAN_HPP_USE_REFLECT )
  81532. return this->reflect() == rhs.reflect();
  81533. # else
  81534. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoCodecOperations == rhs.videoCodecOperations );
  81535. # endif
  81536. }
  81537. bool operator!=( QueueFamilyVideoPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81538. {
  81539. return !operator==( rhs );
  81540. }
  81541. #endif
  81542. public:
  81543. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyVideoPropertiesKHR;
  81544. void * pNext = {};
  81545. VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations = {};
  81546. };
  81547. template <>
  81548. struct CppType<StructureType, StructureType::eQueueFamilyVideoPropertiesKHR>
  81549. {
  81550. using Type = QueueFamilyVideoPropertiesKHR;
  81551. };
  81552. struct RayTracingShaderGroupCreateInfoKHR
  81553. {
  81554. using NativeType = VkRayTracingShaderGroupCreateInfoKHR;
  81555. static const bool allowDuplicate = false;
  81556. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
  81557. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81558. VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR(
  81559. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral,
  81560. uint32_t generalShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR,
  81561. uint32_t closestHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR,
  81562. uint32_t anyHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR,
  81563. uint32_t intersectionShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR,
  81564. const void * pShaderGroupCaptureReplayHandle_ = {},
  81565. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81566. : pNext( pNext_ )
  81567. , type( type_ )
  81568. , generalShader( generalShader_ )
  81569. , closestHitShader( closestHitShader_ )
  81570. , anyHitShader( anyHitShader_ )
  81571. , intersectionShader( intersectionShader_ )
  81572. , pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ )
  81573. {
  81574. }
  81575. VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81576. RayTracingShaderGroupCreateInfoKHR( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81577. : RayTracingShaderGroupCreateInfoKHR( *reinterpret_cast<RayTracingShaderGroupCreateInfoKHR const *>( &rhs ) )
  81578. {
  81579. }
  81580. RayTracingShaderGroupCreateInfoKHR & operator=( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81581. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81582. RayTracingShaderGroupCreateInfoKHR & operator=( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81583. {
  81584. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR const *>( &rhs );
  81585. return *this;
  81586. }
  81587. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81588. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  81589. {
  81590. pNext = pNext_;
  81591. return *this;
  81592. }
  81593. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
  81594. {
  81595. type = type_;
  81596. return *this;
  81597. }
  81598. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
  81599. {
  81600. generalShader = generalShader_;
  81601. return *this;
  81602. }
  81603. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
  81604. {
  81605. closestHitShader = closestHitShader_;
  81606. return *this;
  81607. }
  81608. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
  81609. {
  81610. anyHitShader = anyHitShader_;
  81611. return *this;
  81612. }
  81613. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
  81614. {
  81615. intersectionShader = intersectionShader_;
  81616. return *this;
  81617. }
  81618. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR &
  81619. setPShaderGroupCaptureReplayHandle( const void * pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT
  81620. {
  81621. pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_;
  81622. return *this;
  81623. }
  81624. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81625. operator VkRayTracingShaderGroupCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  81626. {
  81627. return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoKHR *>( this );
  81628. }
  81629. operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  81630. {
  81631. return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoKHR *>( this );
  81632. }
  81633. #if defined( VULKAN_HPP_USE_REFLECT )
  81634. # if 14 <= VULKAN_HPP_CPP_VERSION
  81635. auto
  81636. # else
  81637. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  81638. const void * const &,
  81639. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR const &,
  81640. uint32_t const &,
  81641. uint32_t const &,
  81642. uint32_t const &,
  81643. uint32_t const &,
  81644. const void * const &>
  81645. # endif
  81646. reflect() const VULKAN_HPP_NOEXCEPT
  81647. {
  81648. return std::tie( sType, pNext, type, generalShader, closestHitShader, anyHitShader, intersectionShader, pShaderGroupCaptureReplayHandle );
  81649. }
  81650. #endif
  81651. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81652. auto operator<=>( RayTracingShaderGroupCreateInfoKHR const & ) const = default;
  81653. #else
  81654. bool operator==( RayTracingShaderGroupCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81655. {
  81656. # if defined( VULKAN_HPP_USE_REFLECT )
  81657. return this->reflect() == rhs.reflect();
  81658. # else
  81659. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( generalShader == rhs.generalShader ) &&
  81660. ( closestHitShader == rhs.closestHitShader ) && ( anyHitShader == rhs.anyHitShader ) && ( intersectionShader == rhs.intersectionShader ) &&
  81661. ( pShaderGroupCaptureReplayHandle == rhs.pShaderGroupCaptureReplayHandle );
  81662. # endif
  81663. }
  81664. bool operator!=( RayTracingShaderGroupCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81665. {
  81666. return !operator==( rhs );
  81667. }
  81668. #endif
  81669. public:
  81670. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR;
  81671. const void * pNext = {};
  81672. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
  81673. uint32_t generalShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
  81674. uint32_t closestHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
  81675. uint32_t anyHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
  81676. uint32_t intersectionShader = VULKAN_HPP_NAMESPACE::ShaderUnusedKHR;
  81677. const void * pShaderGroupCaptureReplayHandle = {};
  81678. };
  81679. template <>
  81680. struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoKHR>
  81681. {
  81682. using Type = RayTracingShaderGroupCreateInfoKHR;
  81683. };
  81684. struct RayTracingPipelineInterfaceCreateInfoKHR
  81685. {
  81686. using NativeType = VkRayTracingPipelineInterfaceCreateInfoKHR;
  81687. static const bool allowDuplicate = false;
  81688. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
  81689. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81690. VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( uint32_t maxPipelineRayPayloadSize_ = {},
  81691. uint32_t maxPipelineRayHitAttributeSize_ = {},
  81692. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81693. : pNext( pNext_ )
  81694. , maxPipelineRayPayloadSize( maxPipelineRayPayloadSize_ )
  81695. , maxPipelineRayHitAttributeSize( maxPipelineRayHitAttributeSize_ )
  81696. {
  81697. }
  81698. VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81699. RayTracingPipelineInterfaceCreateInfoKHR( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81700. : RayTracingPipelineInterfaceCreateInfoKHR( *reinterpret_cast<RayTracingPipelineInterfaceCreateInfoKHR const *>( &rhs ) )
  81701. {
  81702. }
  81703. RayTracingPipelineInterfaceCreateInfoKHR & operator=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81704. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81705. RayTracingPipelineInterfaceCreateInfoKHR & operator=( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81706. {
  81707. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR const *>( &rhs );
  81708. return *this;
  81709. }
  81710. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81711. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  81712. {
  81713. pNext = pNext_;
  81714. return *this;
  81715. }
  81716. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR & setMaxPipelineRayPayloadSize( uint32_t maxPipelineRayPayloadSize_ ) VULKAN_HPP_NOEXCEPT
  81717. {
  81718. maxPipelineRayPayloadSize = maxPipelineRayPayloadSize_;
  81719. return *this;
  81720. }
  81721. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR &
  81722. setMaxPipelineRayHitAttributeSize( uint32_t maxPipelineRayHitAttributeSize_ ) VULKAN_HPP_NOEXCEPT
  81723. {
  81724. maxPipelineRayHitAttributeSize = maxPipelineRayHitAttributeSize_;
  81725. return *this;
  81726. }
  81727. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81728. operator VkRayTracingPipelineInterfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  81729. {
  81730. return *reinterpret_cast<const VkRayTracingPipelineInterfaceCreateInfoKHR *>( this );
  81731. }
  81732. operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  81733. {
  81734. return *reinterpret_cast<VkRayTracingPipelineInterfaceCreateInfoKHR *>( this );
  81735. }
  81736. #if defined( VULKAN_HPP_USE_REFLECT )
  81737. # if 14 <= VULKAN_HPP_CPP_VERSION
  81738. auto
  81739. # else
  81740. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, uint32_t const &>
  81741. # endif
  81742. reflect() const VULKAN_HPP_NOEXCEPT
  81743. {
  81744. return std::tie( sType, pNext, maxPipelineRayPayloadSize, maxPipelineRayHitAttributeSize );
  81745. }
  81746. #endif
  81747. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81748. auto operator<=>( RayTracingPipelineInterfaceCreateInfoKHR const & ) const = default;
  81749. #else
  81750. bool operator==( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81751. {
  81752. # if defined( VULKAN_HPP_USE_REFLECT )
  81753. return this->reflect() == rhs.reflect();
  81754. # else
  81755. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxPipelineRayPayloadSize == rhs.maxPipelineRayPayloadSize ) &&
  81756. ( maxPipelineRayHitAttributeSize == rhs.maxPipelineRayHitAttributeSize );
  81757. # endif
  81758. }
  81759. bool operator!=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81760. {
  81761. return !operator==( rhs );
  81762. }
  81763. #endif
  81764. public:
  81765. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR;
  81766. const void * pNext = {};
  81767. uint32_t maxPipelineRayPayloadSize = {};
  81768. uint32_t maxPipelineRayHitAttributeSize = {};
  81769. };
  81770. template <>
  81771. struct CppType<StructureType, StructureType::eRayTracingPipelineInterfaceCreateInfoKHR>
  81772. {
  81773. using Type = RayTracingPipelineInterfaceCreateInfoKHR;
  81774. };
  81775. struct RayTracingPipelineCreateInfoKHR
  81776. {
  81777. using NativeType = VkRayTracingPipelineCreateInfoKHR;
  81778. static const bool allowDuplicate = false;
  81779. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoKHR;
  81780. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  81781. VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
  81782. uint32_t stageCount_ = {},
  81783. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {},
  81784. uint32_t groupCount_ = {},
  81785. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups_ = {},
  81786. uint32_t maxPipelineRayRecursionDepth_ = {},
  81787. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {},
  81788. const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ = {},
  81789. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {},
  81790. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  81791. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  81792. int32_t basePipelineIndex_ = {},
  81793. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  81794. : pNext( pNext_ )
  81795. , flags( flags_ )
  81796. , stageCount( stageCount_ )
  81797. , pStages( pStages_ )
  81798. , groupCount( groupCount_ )
  81799. , pGroups( pGroups_ )
  81800. , maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ )
  81801. , pLibraryInfo( pLibraryInfo_ )
  81802. , pLibraryInterface( pLibraryInterface_ )
  81803. , pDynamicState( pDynamicState_ )
  81804. , layout( layout_ )
  81805. , basePipelineHandle( basePipelineHandle_ )
  81806. , basePipelineIndex( basePipelineIndex_ )
  81807. {
  81808. }
  81809. VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81810. RayTracingPipelineCreateInfoKHR( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81811. : RayTracingPipelineCreateInfoKHR( *reinterpret_cast<RayTracingPipelineCreateInfoKHR const *>( &rhs ) )
  81812. {
  81813. }
  81814. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  81815. RayTracingPipelineCreateInfoKHR(
  81816. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_,
  81817. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_,
  81818. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ = {},
  81819. uint32_t maxPipelineRayRecursionDepth_ = {},
  81820. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {},
  81821. const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ = {},
  81822. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {},
  81823. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  81824. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  81825. int32_t basePipelineIndex_ = {},
  81826. const void * pNext_ = nullptr )
  81827. : pNext( pNext_ )
  81828. , flags( flags_ )
  81829. , stageCount( static_cast<uint32_t>( stages_.size() ) )
  81830. , pStages( stages_.data() )
  81831. , groupCount( static_cast<uint32_t>( groups_.size() ) )
  81832. , pGroups( groups_.data() )
  81833. , maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ )
  81834. , pLibraryInfo( pLibraryInfo_ )
  81835. , pLibraryInterface( pLibraryInterface_ )
  81836. , pDynamicState( pDynamicState_ )
  81837. , layout( layout_ )
  81838. , basePipelineHandle( basePipelineHandle_ )
  81839. , basePipelineIndex( basePipelineIndex_ )
  81840. {
  81841. }
  81842. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  81843. RayTracingPipelineCreateInfoKHR & operator=( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  81844. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  81845. RayTracingPipelineCreateInfoKHR & operator=( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  81846. {
  81847. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const *>( &rhs );
  81848. return *this;
  81849. }
  81850. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  81851. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  81852. {
  81853. pNext = pNext_;
  81854. return *this;
  81855. }
  81856. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  81857. {
  81858. flags = flags_;
  81859. return *this;
  81860. }
  81861. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
  81862. {
  81863. stageCount = stageCount_;
  81864. return *this;
  81865. }
  81866. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
  81867. setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
  81868. {
  81869. pStages = pStages_;
  81870. return *this;
  81871. }
  81872. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  81873. RayTracingPipelineCreateInfoKHR &
  81874. setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
  81875. {
  81876. stageCount = static_cast<uint32_t>( stages_.size() );
  81877. pStages = stages_.data();
  81878. return *this;
  81879. }
  81880. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  81881. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
  81882. {
  81883. groupCount = groupCount_;
  81884. return *this;
  81885. }
  81886. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
  81887. setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups_ ) VULKAN_HPP_NOEXCEPT
  81888. {
  81889. pGroups = pGroups_;
  81890. return *this;
  81891. }
  81892. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  81893. RayTracingPipelineCreateInfoKHR & setGroups(
  81894. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ ) VULKAN_HPP_NOEXCEPT
  81895. {
  81896. groupCount = static_cast<uint32_t>( groups_.size() );
  81897. pGroups = groups_.data();
  81898. return *this;
  81899. }
  81900. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  81901. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setMaxPipelineRayRecursionDepth( uint32_t maxPipelineRayRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
  81902. {
  81903. maxPipelineRayRecursionDepth = maxPipelineRayRecursionDepth_;
  81904. return *this;
  81905. }
  81906. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
  81907. setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT
  81908. {
  81909. pLibraryInfo = pLibraryInfo_;
  81910. return *this;
  81911. }
  81912. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
  81913. setPLibraryInterface( const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ ) VULKAN_HPP_NOEXCEPT
  81914. {
  81915. pLibraryInterface = pLibraryInterface_;
  81916. return *this;
  81917. }
  81918. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR &
  81919. setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT
  81920. {
  81921. pDynamicState = pDynamicState_;
  81922. return *this;
  81923. }
  81924. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
  81925. {
  81926. layout = layout_;
  81927. return *this;
  81928. }
  81929. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
  81930. {
  81931. basePipelineHandle = basePipelineHandle_;
  81932. return *this;
  81933. }
  81934. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
  81935. {
  81936. basePipelineIndex = basePipelineIndex_;
  81937. return *this;
  81938. }
  81939. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  81940. operator VkRayTracingPipelineCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  81941. {
  81942. return *reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( this );
  81943. }
  81944. operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  81945. {
  81946. return *reinterpret_cast<VkRayTracingPipelineCreateInfoKHR *>( this );
  81947. }
  81948. #if defined( VULKAN_HPP_USE_REFLECT )
  81949. # if 14 <= VULKAN_HPP_CPP_VERSION
  81950. auto
  81951. # else
  81952. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  81953. const void * const &,
  81954. VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &,
  81955. uint32_t const &,
  81956. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &,
  81957. uint32_t const &,
  81958. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * const &,
  81959. uint32_t const &,
  81960. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * const &,
  81961. const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * const &,
  81962. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * const &,
  81963. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  81964. VULKAN_HPP_NAMESPACE::Pipeline const &,
  81965. int32_t const &>
  81966. # endif
  81967. reflect() const VULKAN_HPP_NOEXCEPT
  81968. {
  81969. return std::tie( sType,
  81970. pNext,
  81971. flags,
  81972. stageCount,
  81973. pStages,
  81974. groupCount,
  81975. pGroups,
  81976. maxPipelineRayRecursionDepth,
  81977. pLibraryInfo,
  81978. pLibraryInterface,
  81979. pDynamicState,
  81980. layout,
  81981. basePipelineHandle,
  81982. basePipelineIndex );
  81983. }
  81984. #endif
  81985. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  81986. auto operator<=>( RayTracingPipelineCreateInfoKHR const & ) const = default;
  81987. #else
  81988. bool operator==( RayTracingPipelineCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  81989. {
  81990. # if defined( VULKAN_HPP_USE_REFLECT )
  81991. return this->reflect() == rhs.reflect();
  81992. # else
  81993. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) &&
  81994. ( groupCount == rhs.groupCount ) && ( pGroups == rhs.pGroups ) && ( maxPipelineRayRecursionDepth == rhs.maxPipelineRayRecursionDepth ) &&
  81995. ( pLibraryInfo == rhs.pLibraryInfo ) && ( pLibraryInterface == rhs.pLibraryInterface ) && ( pDynamicState == rhs.pDynamicState ) &&
  81996. ( layout == rhs.layout ) && ( basePipelineHandle == rhs.basePipelineHandle ) && ( basePipelineIndex == rhs.basePipelineIndex );
  81997. # endif
  81998. }
  81999. bool operator!=( RayTracingPipelineCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  82000. {
  82001. return !operator==( rhs );
  82002. }
  82003. #endif
  82004. public:
  82005. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoKHR;
  82006. const void * pNext = {};
  82007. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
  82008. uint32_t stageCount = {};
  82009. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
  82010. uint32_t groupCount = {};
  82011. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups = {};
  82012. uint32_t maxPipelineRayRecursionDepth = {};
  82013. const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo = {};
  82014. const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface = {};
  82015. const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState = {};
  82016. VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
  82017. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
  82018. int32_t basePipelineIndex = {};
  82019. };
  82020. template <>
  82021. struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoKHR>
  82022. {
  82023. using Type = RayTracingPipelineCreateInfoKHR;
  82024. };
  82025. struct RayTracingShaderGroupCreateInfoNV
  82026. {
  82027. using NativeType = VkRayTracingShaderGroupCreateInfoNV;
  82028. static const bool allowDuplicate = false;
  82029. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoNV;
  82030. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82031. VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV(
  82032. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral,
  82033. uint32_t generalShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV,
  82034. uint32_t closestHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV,
  82035. uint32_t anyHitShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV,
  82036. uint32_t intersectionShader_ = VULKAN_HPP_NAMESPACE::ShaderUnusedNV,
  82037. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  82038. : pNext( pNext_ )
  82039. , type( type_ )
  82040. , generalShader( generalShader_ )
  82041. , closestHitShader( closestHitShader_ )
  82042. , anyHitShader( anyHitShader_ )
  82043. , intersectionShader( intersectionShader_ )
  82044. {
  82045. }
  82046. VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82047. RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  82048. : RayTracingShaderGroupCreateInfoNV( *reinterpret_cast<RayTracingShaderGroupCreateInfoNV const *>( &rhs ) )
  82049. {
  82050. }
  82051. RayTracingShaderGroupCreateInfoNV & operator=( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82052. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82053. RayTracingShaderGroupCreateInfoNV & operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  82054. {
  82055. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV const *>( &rhs );
  82056. return *this;
  82057. }
  82058. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82059. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82060. {
  82061. pNext = pNext_;
  82062. return *this;
  82063. }
  82064. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT
  82065. {
  82066. type = type_;
  82067. return *this;
  82068. }
  82069. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT
  82070. {
  82071. generalShader = generalShader_;
  82072. return *this;
  82073. }
  82074. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT
  82075. {
  82076. closestHitShader = closestHitShader_;
  82077. return *this;
  82078. }
  82079. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT
  82080. {
  82081. anyHitShader = anyHitShader_;
  82082. return *this;
  82083. }
  82084. VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT
  82085. {
  82086. intersectionShader = intersectionShader_;
  82087. return *this;
  82088. }
  82089. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82090. operator VkRayTracingShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  82091. {
  82092. return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoNV *>( this );
  82093. }
  82094. operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  82095. {
  82096. return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV *>( this );
  82097. }
  82098. #if defined( VULKAN_HPP_USE_REFLECT )
  82099. # if 14 <= VULKAN_HPP_CPP_VERSION
  82100. auto
  82101. # else
  82102. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  82103. const void * const &,
  82104. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR const &,
  82105. uint32_t const &,
  82106. uint32_t const &,
  82107. uint32_t const &,
  82108. uint32_t const &>
  82109. # endif
  82110. reflect() const VULKAN_HPP_NOEXCEPT
  82111. {
  82112. return std::tie( sType, pNext, type, generalShader, closestHitShader, anyHitShader, intersectionShader );
  82113. }
  82114. #endif
  82115. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82116. auto operator<=>( RayTracingShaderGroupCreateInfoNV const & ) const = default;
  82117. #else
  82118. bool operator==( RayTracingShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  82119. {
  82120. # if defined( VULKAN_HPP_USE_REFLECT )
  82121. return this->reflect() == rhs.reflect();
  82122. # else
  82123. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( generalShader == rhs.generalShader ) &&
  82124. ( closestHitShader == rhs.closestHitShader ) && ( anyHitShader == rhs.anyHitShader ) && ( intersectionShader == rhs.intersectionShader );
  82125. # endif
  82126. }
  82127. bool operator!=( RayTracingShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  82128. {
  82129. return !operator==( rhs );
  82130. }
  82131. #endif
  82132. public:
  82133. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV;
  82134. const void * pNext = {};
  82135. VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral;
  82136. uint32_t generalShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
  82137. uint32_t closestHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
  82138. uint32_t anyHitShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
  82139. uint32_t intersectionShader = VULKAN_HPP_NAMESPACE::ShaderUnusedNV;
  82140. };
  82141. template <>
  82142. struct CppType<StructureType, StructureType::eRayTracingShaderGroupCreateInfoNV>
  82143. {
  82144. using Type = RayTracingShaderGroupCreateInfoNV;
  82145. };
  82146. struct RayTracingPipelineCreateInfoNV
  82147. {
  82148. using NativeType = VkRayTracingPipelineCreateInfoNV;
  82149. static const bool allowDuplicate = false;
  82150. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoNV;
  82151. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82152. VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {},
  82153. uint32_t stageCount_ = {},
  82154. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {},
  82155. uint32_t groupCount_ = {},
  82156. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups_ = {},
  82157. uint32_t maxRecursionDepth_ = {},
  82158. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  82159. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  82160. int32_t basePipelineIndex_ = {},
  82161. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  82162. : pNext( pNext_ )
  82163. , flags( flags_ )
  82164. , stageCount( stageCount_ )
  82165. , pStages( pStages_ )
  82166. , groupCount( groupCount_ )
  82167. , pGroups( pGroups_ )
  82168. , maxRecursionDepth( maxRecursionDepth_ )
  82169. , layout( layout_ )
  82170. , basePipelineHandle( basePipelineHandle_ )
  82171. , basePipelineIndex( basePipelineIndex_ )
  82172. {
  82173. }
  82174. VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82175. RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  82176. : RayTracingPipelineCreateInfoNV( *reinterpret_cast<RayTracingPipelineCreateInfoNV const *>( &rhs ) )
  82177. {
  82178. }
  82179. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82180. RayTracingPipelineCreateInfoNV(
  82181. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_,
  82182. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_,
  82183. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ = {},
  82184. uint32_t maxRecursionDepth_ = {},
  82185. VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {},
  82186. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {},
  82187. int32_t basePipelineIndex_ = {},
  82188. const void * pNext_ = nullptr )
  82189. : pNext( pNext_ )
  82190. , flags( flags_ )
  82191. , stageCount( static_cast<uint32_t>( stages_.size() ) )
  82192. , pStages( stages_.data() )
  82193. , groupCount( static_cast<uint32_t>( groups_.size() ) )
  82194. , pGroups( groups_.data() )
  82195. , maxRecursionDepth( maxRecursionDepth_ )
  82196. , layout( layout_ )
  82197. , basePipelineHandle( basePipelineHandle_ )
  82198. , basePipelineIndex( basePipelineIndex_ )
  82199. {
  82200. }
  82201. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82202. RayTracingPipelineCreateInfoNV & operator=( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82203. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82204. RayTracingPipelineCreateInfoNV & operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  82205. {
  82206. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const *>( &rhs );
  82207. return *this;
  82208. }
  82209. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82210. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82211. {
  82212. pNext = pNext_;
  82213. return *this;
  82214. }
  82215. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  82216. {
  82217. flags = flags_;
  82218. return *this;
  82219. }
  82220. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT
  82221. {
  82222. stageCount = stageCount_;
  82223. return *this;
  82224. }
  82225. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV &
  82226. setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT
  82227. {
  82228. pStages = pStages_;
  82229. return *this;
  82230. }
  82231. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82232. RayTracingPipelineCreateInfoNV &
  82233. setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo> const & stages_ ) VULKAN_HPP_NOEXCEPT
  82234. {
  82235. stageCount = static_cast<uint32_t>( stages_.size() );
  82236. pStages = stages_.data();
  82237. return *this;
  82238. }
  82239. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82240. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT
  82241. {
  82242. groupCount = groupCount_;
  82243. return *this;
  82244. }
  82245. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV &
  82246. setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT
  82247. {
  82248. pGroups = pGroups_;
  82249. return *this;
  82250. }
  82251. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82252. RayTracingPipelineCreateInfoNV & setGroups(
  82253. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT
  82254. {
  82255. groupCount = static_cast<uint32_t>( groups_.size() );
  82256. pGroups = groups_.data();
  82257. return *this;
  82258. }
  82259. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82260. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT
  82261. {
  82262. maxRecursionDepth = maxRecursionDepth_;
  82263. return *this;
  82264. }
  82265. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT
  82266. {
  82267. layout = layout_;
  82268. return *this;
  82269. }
  82270. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT
  82271. {
  82272. basePipelineHandle = basePipelineHandle_;
  82273. return *this;
  82274. }
  82275. VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT
  82276. {
  82277. basePipelineIndex = basePipelineIndex_;
  82278. return *this;
  82279. }
  82280. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82281. operator VkRayTracingPipelineCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  82282. {
  82283. return *reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( this );
  82284. }
  82285. operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  82286. {
  82287. return *reinterpret_cast<VkRayTracingPipelineCreateInfoNV *>( this );
  82288. }
  82289. #if defined( VULKAN_HPP_USE_REFLECT )
  82290. # if 14 <= VULKAN_HPP_CPP_VERSION
  82291. auto
  82292. # else
  82293. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  82294. const void * const &,
  82295. VULKAN_HPP_NAMESPACE::PipelineCreateFlags const &,
  82296. uint32_t const &,
  82297. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * const &,
  82298. uint32_t const &,
  82299. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * const &,
  82300. uint32_t const &,
  82301. VULKAN_HPP_NAMESPACE::PipelineLayout const &,
  82302. VULKAN_HPP_NAMESPACE::Pipeline const &,
  82303. int32_t const &>
  82304. # endif
  82305. reflect() const VULKAN_HPP_NOEXCEPT
  82306. {
  82307. return std::tie( sType, pNext, flags, stageCount, pStages, groupCount, pGroups, maxRecursionDepth, layout, basePipelineHandle, basePipelineIndex );
  82308. }
  82309. #endif
  82310. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82311. auto operator<=>( RayTracingPipelineCreateInfoNV const & ) const = default;
  82312. #else
  82313. bool operator==( RayTracingPipelineCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  82314. {
  82315. # if defined( VULKAN_HPP_USE_REFLECT )
  82316. return this->reflect() == rhs.reflect();
  82317. # else
  82318. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) &&
  82319. ( groupCount == rhs.groupCount ) && ( pGroups == rhs.pGroups ) && ( maxRecursionDepth == rhs.maxRecursionDepth ) && ( layout == rhs.layout ) &&
  82320. ( basePipelineHandle == rhs.basePipelineHandle ) && ( basePipelineIndex == rhs.basePipelineIndex );
  82321. # endif
  82322. }
  82323. bool operator!=( RayTracingPipelineCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  82324. {
  82325. return !operator==( rhs );
  82326. }
  82327. #endif
  82328. public:
  82329. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV;
  82330. const void * pNext = {};
  82331. VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {};
  82332. uint32_t stageCount = {};
  82333. const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {};
  82334. uint32_t groupCount = {};
  82335. const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups = {};
  82336. uint32_t maxRecursionDepth = {};
  82337. VULKAN_HPP_NAMESPACE::PipelineLayout layout = {};
  82338. VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {};
  82339. int32_t basePipelineIndex = {};
  82340. };
  82341. template <>
  82342. struct CppType<StructureType, StructureType::eRayTracingPipelineCreateInfoNV>
  82343. {
  82344. using Type = RayTracingPipelineCreateInfoNV;
  82345. };
  82346. struct RefreshCycleDurationGOOGLE
  82347. {
  82348. using NativeType = VkRefreshCycleDurationGOOGLE;
  82349. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82350. VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( uint64_t refreshDuration_ = {} ) VULKAN_HPP_NOEXCEPT : refreshDuration( refreshDuration_ ) {}
  82351. VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82352. RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  82353. : RefreshCycleDurationGOOGLE( *reinterpret_cast<RefreshCycleDurationGOOGLE const *>( &rhs ) )
  82354. {
  82355. }
  82356. RefreshCycleDurationGOOGLE & operator=( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82357. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82358. RefreshCycleDurationGOOGLE & operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT
  82359. {
  82360. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE const *>( &rhs );
  82361. return *this;
  82362. }
  82363. operator VkRefreshCycleDurationGOOGLE const &() const VULKAN_HPP_NOEXCEPT
  82364. {
  82365. return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE *>( this );
  82366. }
  82367. operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT
  82368. {
  82369. return *reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( this );
  82370. }
  82371. #if defined( VULKAN_HPP_USE_REFLECT )
  82372. # if 14 <= VULKAN_HPP_CPP_VERSION
  82373. auto
  82374. # else
  82375. std::tuple<uint64_t const &>
  82376. # endif
  82377. reflect() const VULKAN_HPP_NOEXCEPT
  82378. {
  82379. return std::tie( refreshDuration );
  82380. }
  82381. #endif
  82382. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82383. auto operator<=>( RefreshCycleDurationGOOGLE const & ) const = default;
  82384. #else
  82385. bool operator==( RefreshCycleDurationGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  82386. {
  82387. # if defined( VULKAN_HPP_USE_REFLECT )
  82388. return this->reflect() == rhs.reflect();
  82389. # else
  82390. return ( refreshDuration == rhs.refreshDuration );
  82391. # endif
  82392. }
  82393. bool operator!=( RefreshCycleDurationGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT
  82394. {
  82395. return !operator==( rhs );
  82396. }
  82397. #endif
  82398. public:
  82399. uint64_t refreshDuration = {};
  82400. };
  82401. struct ReleaseSwapchainImagesInfoEXT
  82402. {
  82403. using NativeType = VkReleaseSwapchainImagesInfoEXT;
  82404. static const bool allowDuplicate = false;
  82405. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eReleaseSwapchainImagesInfoEXT;
  82406. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82407. VULKAN_HPP_CONSTEXPR ReleaseSwapchainImagesInfoEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {},
  82408. uint32_t imageIndexCount_ = {},
  82409. const uint32_t * pImageIndices_ = {},
  82410. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  82411. : pNext( pNext_ )
  82412. , swapchain( swapchain_ )
  82413. , imageIndexCount( imageIndexCount_ )
  82414. , pImageIndices( pImageIndices_ )
  82415. {
  82416. }
  82417. VULKAN_HPP_CONSTEXPR ReleaseSwapchainImagesInfoEXT( ReleaseSwapchainImagesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82418. ReleaseSwapchainImagesInfoEXT( VkReleaseSwapchainImagesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  82419. : ReleaseSwapchainImagesInfoEXT( *reinterpret_cast<ReleaseSwapchainImagesInfoEXT const *>( &rhs ) )
  82420. {
  82421. }
  82422. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82423. ReleaseSwapchainImagesInfoEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_,
  82424. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_,
  82425. const void * pNext_ = nullptr )
  82426. : pNext( pNext_ ), swapchain( swapchain_ ), imageIndexCount( static_cast<uint32_t>( imageIndices_.size() ) ), pImageIndices( imageIndices_.data() )
  82427. {
  82428. }
  82429. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82430. ReleaseSwapchainImagesInfoEXT & operator=( ReleaseSwapchainImagesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82431. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82432. ReleaseSwapchainImagesInfoEXT & operator=( VkReleaseSwapchainImagesInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  82433. {
  82434. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT const *>( &rhs );
  82435. return *this;
  82436. }
  82437. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82438. VULKAN_HPP_CONSTEXPR_14 ReleaseSwapchainImagesInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82439. {
  82440. pNext = pNext_;
  82441. return *this;
  82442. }
  82443. VULKAN_HPP_CONSTEXPR_14 ReleaseSwapchainImagesInfoEXT & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT
  82444. {
  82445. swapchain = swapchain_;
  82446. return *this;
  82447. }
  82448. VULKAN_HPP_CONSTEXPR_14 ReleaseSwapchainImagesInfoEXT & setImageIndexCount( uint32_t imageIndexCount_ ) VULKAN_HPP_NOEXCEPT
  82449. {
  82450. imageIndexCount = imageIndexCount_;
  82451. return *this;
  82452. }
  82453. VULKAN_HPP_CONSTEXPR_14 ReleaseSwapchainImagesInfoEXT & setPImageIndices( const uint32_t * pImageIndices_ ) VULKAN_HPP_NOEXCEPT
  82454. {
  82455. pImageIndices = pImageIndices_;
  82456. return *this;
  82457. }
  82458. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82459. ReleaseSwapchainImagesInfoEXT & setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & imageIndices_ ) VULKAN_HPP_NOEXCEPT
  82460. {
  82461. imageIndexCount = static_cast<uint32_t>( imageIndices_.size() );
  82462. pImageIndices = imageIndices_.data();
  82463. return *this;
  82464. }
  82465. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82466. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82467. operator VkReleaseSwapchainImagesInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  82468. {
  82469. return *reinterpret_cast<const VkReleaseSwapchainImagesInfoEXT *>( this );
  82470. }
  82471. operator VkReleaseSwapchainImagesInfoEXT &() VULKAN_HPP_NOEXCEPT
  82472. {
  82473. return *reinterpret_cast<VkReleaseSwapchainImagesInfoEXT *>( this );
  82474. }
  82475. #if defined( VULKAN_HPP_USE_REFLECT )
  82476. # if 14 <= VULKAN_HPP_CPP_VERSION
  82477. auto
  82478. # else
  82479. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  82480. const void * const &,
  82481. VULKAN_HPP_NAMESPACE::SwapchainKHR const &,
  82482. uint32_t const &,
  82483. const uint32_t * const &>
  82484. # endif
  82485. reflect() const VULKAN_HPP_NOEXCEPT
  82486. {
  82487. return std::tie( sType, pNext, swapchain, imageIndexCount, pImageIndices );
  82488. }
  82489. #endif
  82490. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82491. auto operator<=>( ReleaseSwapchainImagesInfoEXT const & ) const = default;
  82492. #else
  82493. bool operator==( ReleaseSwapchainImagesInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  82494. {
  82495. # if defined( VULKAN_HPP_USE_REFLECT )
  82496. return this->reflect() == rhs.reflect();
  82497. # else
  82498. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchain == rhs.swapchain ) && ( imageIndexCount == rhs.imageIndexCount ) &&
  82499. ( pImageIndices == rhs.pImageIndices );
  82500. # endif
  82501. }
  82502. bool operator!=( ReleaseSwapchainImagesInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  82503. {
  82504. return !operator==( rhs );
  82505. }
  82506. #endif
  82507. public:
  82508. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eReleaseSwapchainImagesInfoEXT;
  82509. const void * pNext = {};
  82510. VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {};
  82511. uint32_t imageIndexCount = {};
  82512. const uint32_t * pImageIndices = {};
  82513. };
  82514. template <>
  82515. struct CppType<StructureType, StructureType::eReleaseSwapchainImagesInfoEXT>
  82516. {
  82517. using Type = ReleaseSwapchainImagesInfoEXT;
  82518. };
  82519. struct RenderPassAttachmentBeginInfo
  82520. {
  82521. using NativeType = VkRenderPassAttachmentBeginInfo;
  82522. static const bool allowDuplicate = false;
  82523. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassAttachmentBeginInfo;
  82524. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82525. VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( uint32_t attachmentCount_ = {},
  82526. const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ = {},
  82527. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  82528. : pNext( pNext_ )
  82529. , attachmentCount( attachmentCount_ )
  82530. , pAttachments( pAttachments_ )
  82531. {
  82532. }
  82533. VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82534. RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  82535. : RenderPassAttachmentBeginInfo( *reinterpret_cast<RenderPassAttachmentBeginInfo const *>( &rhs ) )
  82536. {
  82537. }
  82538. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82539. RenderPassAttachmentBeginInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_,
  82540. const void * pNext_ = nullptr )
  82541. : pNext( pNext_ ), attachmentCount( static_cast<uint32_t>( attachments_.size() ) ), pAttachments( attachments_.data() )
  82542. {
  82543. }
  82544. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82545. RenderPassAttachmentBeginInfo & operator=( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82546. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82547. RenderPassAttachmentBeginInfo & operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  82548. {
  82549. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo const *>( &rhs );
  82550. return *this;
  82551. }
  82552. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82553. VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82554. {
  82555. pNext = pNext_;
  82556. return *this;
  82557. }
  82558. VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  82559. {
  82560. attachmentCount = attachmentCount_;
  82561. return *this;
  82562. }
  82563. VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ ) VULKAN_HPP_NOEXCEPT
  82564. {
  82565. pAttachments = pAttachments_;
  82566. return *this;
  82567. }
  82568. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82569. RenderPassAttachmentBeginInfo &
  82570. setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageView> const & attachments_ ) VULKAN_HPP_NOEXCEPT
  82571. {
  82572. attachmentCount = static_cast<uint32_t>( attachments_.size() );
  82573. pAttachments = attachments_.data();
  82574. return *this;
  82575. }
  82576. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82577. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82578. operator VkRenderPassAttachmentBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  82579. {
  82580. return *reinterpret_cast<const VkRenderPassAttachmentBeginInfo *>( this );
  82581. }
  82582. operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT
  82583. {
  82584. return *reinterpret_cast<VkRenderPassAttachmentBeginInfo *>( this );
  82585. }
  82586. #if defined( VULKAN_HPP_USE_REFLECT )
  82587. # if 14 <= VULKAN_HPP_CPP_VERSION
  82588. auto
  82589. # else
  82590. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ImageView * const &>
  82591. # endif
  82592. reflect() const VULKAN_HPP_NOEXCEPT
  82593. {
  82594. return std::tie( sType, pNext, attachmentCount, pAttachments );
  82595. }
  82596. #endif
  82597. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82598. auto operator<=>( RenderPassAttachmentBeginInfo const & ) const = default;
  82599. #else
  82600. bool operator==( RenderPassAttachmentBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  82601. {
  82602. # if defined( VULKAN_HPP_USE_REFLECT )
  82603. return this->reflect() == rhs.reflect();
  82604. # else
  82605. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentCount == rhs.attachmentCount ) && ( pAttachments == rhs.pAttachments );
  82606. # endif
  82607. }
  82608. bool operator!=( RenderPassAttachmentBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  82609. {
  82610. return !operator==( rhs );
  82611. }
  82612. #endif
  82613. public:
  82614. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo;
  82615. const void * pNext = {};
  82616. uint32_t attachmentCount = {};
  82617. const VULKAN_HPP_NAMESPACE::ImageView * pAttachments = {};
  82618. };
  82619. template <>
  82620. struct CppType<StructureType, StructureType::eRenderPassAttachmentBeginInfo>
  82621. {
  82622. using Type = RenderPassAttachmentBeginInfo;
  82623. };
  82624. using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
  82625. struct RenderPassBeginInfo
  82626. {
  82627. using NativeType = VkRenderPassBeginInfo;
  82628. static const bool allowDuplicate = false;
  82629. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassBeginInfo;
  82630. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82631. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  82632. VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {},
  82633. VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {},
  82634. uint32_t clearValueCount_ = {},
  82635. const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues_ = {},
  82636. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  82637. : pNext( pNext_ )
  82638. , renderPass( renderPass_ )
  82639. , framebuffer( framebuffer_ )
  82640. , renderArea( renderArea_ )
  82641. , clearValueCount( clearValueCount_ )
  82642. , pClearValues( pClearValues_ )
  82643. {
  82644. }
  82645. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82646. RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT : RenderPassBeginInfo( *reinterpret_cast<RenderPassBeginInfo const *>( &rhs ) )
  82647. {
  82648. }
  82649. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82650. RenderPassBeginInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_,
  82651. VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_,
  82652. VULKAN_HPP_NAMESPACE::Rect2D renderArea_,
  82653. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_,
  82654. const void * pNext_ = nullptr )
  82655. : pNext( pNext_ )
  82656. , renderPass( renderPass_ )
  82657. , framebuffer( framebuffer_ )
  82658. , renderArea( renderArea_ )
  82659. , clearValueCount( static_cast<uint32_t>( clearValues_.size() ) )
  82660. , pClearValues( clearValues_.data() )
  82661. {
  82662. }
  82663. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82664. RenderPassBeginInfo & operator=( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82665. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82666. RenderPassBeginInfo & operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  82667. {
  82668. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassBeginInfo const *>( &rhs );
  82669. return *this;
  82670. }
  82671. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82672. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  82673. {
  82674. pNext = pNext_;
  82675. return *this;
  82676. }
  82677. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT
  82678. {
  82679. renderPass = renderPass_;
  82680. return *this;
  82681. }
  82682. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT
  82683. {
  82684. framebuffer = framebuffer_;
  82685. return *this;
  82686. }
  82687. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
  82688. {
  82689. renderArea = renderArea_;
  82690. return *this;
  82691. }
  82692. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT
  82693. {
  82694. clearValueCount = clearValueCount_;
  82695. return *this;
  82696. }
  82697. VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues_ ) VULKAN_HPP_NOEXCEPT
  82698. {
  82699. pClearValues = pClearValues_;
  82700. return *this;
  82701. }
  82702. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82703. RenderPassBeginInfo &
  82704. setClearValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ClearValue> const & clearValues_ ) VULKAN_HPP_NOEXCEPT
  82705. {
  82706. clearValueCount = static_cast<uint32_t>( clearValues_.size() );
  82707. pClearValues = clearValues_.data();
  82708. return *this;
  82709. }
  82710. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82711. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82712. operator VkRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  82713. {
  82714. return *reinterpret_cast<const VkRenderPassBeginInfo *>( this );
  82715. }
  82716. operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT
  82717. {
  82718. return *reinterpret_cast<VkRenderPassBeginInfo *>( this );
  82719. }
  82720. #if defined( VULKAN_HPP_USE_REFLECT )
  82721. # if 14 <= VULKAN_HPP_CPP_VERSION
  82722. auto
  82723. # else
  82724. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  82725. const void * const &,
  82726. VULKAN_HPP_NAMESPACE::RenderPass const &,
  82727. VULKAN_HPP_NAMESPACE::Framebuffer const &,
  82728. VULKAN_HPP_NAMESPACE::Rect2D const &,
  82729. uint32_t const &,
  82730. const VULKAN_HPP_NAMESPACE::ClearValue * const &>
  82731. # endif
  82732. reflect() const VULKAN_HPP_NOEXCEPT
  82733. {
  82734. return std::tie( sType, pNext, renderPass, framebuffer, renderArea, clearValueCount, pClearValues );
  82735. }
  82736. #endif
  82737. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82738. auto operator<=>( RenderPassBeginInfo const & ) const = default;
  82739. #else
  82740. bool operator==( RenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  82741. {
  82742. # if defined( VULKAN_HPP_USE_REFLECT )
  82743. return this->reflect() == rhs.reflect();
  82744. # else
  82745. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( renderPass == rhs.renderPass ) && ( framebuffer == rhs.framebuffer ) &&
  82746. ( renderArea == rhs.renderArea ) && ( clearValueCount == rhs.clearValueCount ) && ( pClearValues == rhs.pClearValues );
  82747. # endif
  82748. }
  82749. bool operator!=( RenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  82750. {
  82751. return !operator==( rhs );
  82752. }
  82753. #endif
  82754. public:
  82755. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo;
  82756. const void * pNext = {};
  82757. VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
  82758. VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {};
  82759. VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
  82760. uint32_t clearValueCount = {};
  82761. const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues = {};
  82762. };
  82763. template <>
  82764. struct CppType<StructureType, StructureType::eRenderPassBeginInfo>
  82765. {
  82766. using Type = RenderPassBeginInfo;
  82767. };
  82768. struct SubpassDescription
  82769. {
  82770. using NativeType = VkSubpassDescription;
  82771. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82772. VULKAN_HPP_CONSTEXPR SubpassDescription( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {},
  82773. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  82774. uint32_t inputAttachmentCount_ = {},
  82775. const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments_ = {},
  82776. uint32_t colorAttachmentCount_ = {},
  82777. const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments_ = {},
  82778. const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ = {},
  82779. const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ = {},
  82780. uint32_t preserveAttachmentCount_ = {},
  82781. const uint32_t * pPreserveAttachments_ = {} ) VULKAN_HPP_NOEXCEPT
  82782. : flags( flags_ )
  82783. , pipelineBindPoint( pipelineBindPoint_ )
  82784. , inputAttachmentCount( inputAttachmentCount_ )
  82785. , pInputAttachments( pInputAttachments_ )
  82786. , colorAttachmentCount( colorAttachmentCount_ )
  82787. , pColorAttachments( pColorAttachments_ )
  82788. , pResolveAttachments( pResolveAttachments_ )
  82789. , pDepthStencilAttachment( pDepthStencilAttachment_ )
  82790. , preserveAttachmentCount( preserveAttachmentCount_ )
  82791. , pPreserveAttachments( pPreserveAttachments_ )
  82792. {
  82793. }
  82794. VULKAN_HPP_CONSTEXPR SubpassDescription( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82795. SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassDescription( *reinterpret_cast<SubpassDescription const *>( &rhs ) ) {}
  82796. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82797. SubpassDescription( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_,
  82798. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_,
  82799. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & inputAttachments_,
  82800. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & colorAttachments_ = {},
  82801. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & resolveAttachments_ = {},
  82802. const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ = {},
  82803. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ = {} )
  82804. : flags( flags_ )
  82805. , pipelineBindPoint( pipelineBindPoint_ )
  82806. , inputAttachmentCount( static_cast<uint32_t>( inputAttachments_.size() ) )
  82807. , pInputAttachments( inputAttachments_.data() )
  82808. , colorAttachmentCount( static_cast<uint32_t>( colorAttachments_.size() ) )
  82809. , pColorAttachments( colorAttachments_.data() )
  82810. , pResolveAttachments( resolveAttachments_.data() )
  82811. , pDepthStencilAttachment( pDepthStencilAttachment_ )
  82812. , preserveAttachmentCount( static_cast<uint32_t>( preserveAttachments_.size() ) )
  82813. , pPreserveAttachments( preserveAttachments_.data() )
  82814. {
  82815. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  82816. VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
  82817. # else
  82818. if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
  82819. {
  82820. throw LogicError(
  82821. VULKAN_HPP_NAMESPACE_STRING
  82822. "::SubpassDescription::SubpassDescription: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
  82823. }
  82824. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  82825. }
  82826. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82827. SubpassDescription & operator=( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  82828. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  82829. SubpassDescription & operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT
  82830. {
  82831. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription const *>( &rhs );
  82832. return *this;
  82833. }
  82834. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  82835. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
  82836. {
  82837. flags = flags_;
  82838. return *this;
  82839. }
  82840. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  82841. {
  82842. pipelineBindPoint = pipelineBindPoint_;
  82843. return *this;
  82844. }
  82845. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  82846. {
  82847. inputAttachmentCount = inputAttachmentCount_;
  82848. return *this;
  82849. }
  82850. VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
  82851. setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
  82852. {
  82853. pInputAttachments = pInputAttachments_;
  82854. return *this;
  82855. }
  82856. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82857. SubpassDescription & setInputAttachments(
  82858. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
  82859. {
  82860. inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
  82861. pInputAttachments = inputAttachments_.data();
  82862. return *this;
  82863. }
  82864. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82865. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  82866. {
  82867. colorAttachmentCount = colorAttachmentCount_;
  82868. return *this;
  82869. }
  82870. VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
  82871. setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
  82872. {
  82873. pColorAttachments = pColorAttachments_;
  82874. return *this;
  82875. }
  82876. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82877. SubpassDescription & setColorAttachments(
  82878. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
  82879. {
  82880. colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
  82881. pColorAttachments = colorAttachments_.data();
  82882. return *this;
  82883. }
  82884. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82885. VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
  82886. setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
  82887. {
  82888. pResolveAttachments = pResolveAttachments_;
  82889. return *this;
  82890. }
  82891. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82892. SubpassDescription & setResolveAttachments(
  82893. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
  82894. {
  82895. colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
  82896. pResolveAttachments = resolveAttachments_.data();
  82897. return *this;
  82898. }
  82899. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82900. VULKAN_HPP_CONSTEXPR_14 SubpassDescription &
  82901. setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
  82902. {
  82903. pDepthStencilAttachment = pDepthStencilAttachment_;
  82904. return *this;
  82905. }
  82906. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  82907. {
  82908. preserveAttachmentCount = preserveAttachmentCount_;
  82909. return *this;
  82910. }
  82911. VULKAN_HPP_CONSTEXPR_14 SubpassDescription & setPPreserveAttachments( const uint32_t * pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
  82912. {
  82913. pPreserveAttachments = pPreserveAttachments_;
  82914. return *this;
  82915. }
  82916. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  82917. SubpassDescription &
  82918. setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
  82919. {
  82920. preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
  82921. pPreserveAttachments = preserveAttachments_.data();
  82922. return *this;
  82923. }
  82924. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  82925. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  82926. operator VkSubpassDescription const &() const VULKAN_HPP_NOEXCEPT
  82927. {
  82928. return *reinterpret_cast<const VkSubpassDescription *>( this );
  82929. }
  82930. operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT
  82931. {
  82932. return *reinterpret_cast<VkSubpassDescription *>( this );
  82933. }
  82934. #if defined( VULKAN_HPP_USE_REFLECT )
  82935. # if 14 <= VULKAN_HPP_CPP_VERSION
  82936. auto
  82937. # else
  82938. std::tuple<VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags const &,
  82939. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  82940. uint32_t const &,
  82941. const VULKAN_HPP_NAMESPACE::AttachmentReference * const &,
  82942. uint32_t const &,
  82943. const VULKAN_HPP_NAMESPACE::AttachmentReference * const &,
  82944. const VULKAN_HPP_NAMESPACE::AttachmentReference * const &,
  82945. const VULKAN_HPP_NAMESPACE::AttachmentReference * const &,
  82946. uint32_t const &,
  82947. const uint32_t * const &>
  82948. # endif
  82949. reflect() const VULKAN_HPP_NOEXCEPT
  82950. {
  82951. return std::tie( flags,
  82952. pipelineBindPoint,
  82953. inputAttachmentCount,
  82954. pInputAttachments,
  82955. colorAttachmentCount,
  82956. pColorAttachments,
  82957. pResolveAttachments,
  82958. pDepthStencilAttachment,
  82959. preserveAttachmentCount,
  82960. pPreserveAttachments );
  82961. }
  82962. #endif
  82963. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  82964. auto operator<=>( SubpassDescription const & ) const = default;
  82965. #else
  82966. bool operator==( SubpassDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  82967. {
  82968. # if defined( VULKAN_HPP_USE_REFLECT )
  82969. return this->reflect() == rhs.reflect();
  82970. # else
  82971. return ( flags == rhs.flags ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( inputAttachmentCount == rhs.inputAttachmentCount ) &&
  82972. ( pInputAttachments == rhs.pInputAttachments ) && ( colorAttachmentCount == rhs.colorAttachmentCount ) &&
  82973. ( pColorAttachments == rhs.pColorAttachments ) && ( pResolveAttachments == rhs.pResolveAttachments ) &&
  82974. ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) && ( preserveAttachmentCount == rhs.preserveAttachmentCount ) &&
  82975. ( pPreserveAttachments == rhs.pPreserveAttachments );
  82976. # endif
  82977. }
  82978. bool operator!=( SubpassDescription const & rhs ) const VULKAN_HPP_NOEXCEPT
  82979. {
  82980. return !operator==( rhs );
  82981. }
  82982. #endif
  82983. public:
  82984. VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
  82985. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  82986. uint32_t inputAttachmentCount = {};
  82987. const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments = {};
  82988. uint32_t colorAttachmentCount = {};
  82989. const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments = {};
  82990. const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments = {};
  82991. const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment = {};
  82992. uint32_t preserveAttachmentCount = {};
  82993. const uint32_t * pPreserveAttachments = {};
  82994. };
  82995. struct SubpassDependency
  82996. {
  82997. using NativeType = VkSubpassDependency;
  82998. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  82999. VULKAN_HPP_CONSTEXPR SubpassDependency( uint32_t srcSubpass_ = {},
  83000. uint32_t dstSubpass_ = {},
  83001. VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {},
  83002. VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {},
  83003. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
  83004. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
  83005. VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {} ) VULKAN_HPP_NOEXCEPT
  83006. : srcSubpass( srcSubpass_ )
  83007. , dstSubpass( dstSubpass_ )
  83008. , srcStageMask( srcStageMask_ )
  83009. , dstStageMask( dstStageMask_ )
  83010. , srcAccessMask( srcAccessMask_ )
  83011. , dstAccessMask( dstAccessMask_ )
  83012. , dependencyFlags( dependencyFlags_ )
  83013. {
  83014. }
  83015. VULKAN_HPP_CONSTEXPR SubpassDependency( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83016. SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassDependency( *reinterpret_cast<SubpassDependency const *>( &rhs ) ) {}
  83017. SubpassDependency & operator=( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83018. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83019. SubpassDependency & operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT
  83020. {
  83021. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency const *>( &rhs );
  83022. return *this;
  83023. }
  83024. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83025. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
  83026. {
  83027. srcSubpass = srcSubpass_;
  83028. return *this;
  83029. }
  83030. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
  83031. {
  83032. dstSubpass = dstSubpass_;
  83033. return *this;
  83034. }
  83035. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
  83036. {
  83037. srcStageMask = srcStageMask_;
  83038. return *this;
  83039. }
  83040. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
  83041. {
  83042. dstStageMask = dstStageMask_;
  83043. return *this;
  83044. }
  83045. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  83046. {
  83047. srcAccessMask = srcAccessMask_;
  83048. return *this;
  83049. }
  83050. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  83051. {
  83052. dstAccessMask = dstAccessMask_;
  83053. return *this;
  83054. }
  83055. VULKAN_HPP_CONSTEXPR_14 SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
  83056. {
  83057. dependencyFlags = dependencyFlags_;
  83058. return *this;
  83059. }
  83060. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83061. operator VkSubpassDependency const &() const VULKAN_HPP_NOEXCEPT
  83062. {
  83063. return *reinterpret_cast<const VkSubpassDependency *>( this );
  83064. }
  83065. operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT
  83066. {
  83067. return *reinterpret_cast<VkSubpassDependency *>( this );
  83068. }
  83069. #if defined( VULKAN_HPP_USE_REFLECT )
  83070. # if 14 <= VULKAN_HPP_CPP_VERSION
  83071. auto
  83072. # else
  83073. std::tuple<uint32_t const &,
  83074. uint32_t const &,
  83075. VULKAN_HPP_NAMESPACE::PipelineStageFlags const &,
  83076. VULKAN_HPP_NAMESPACE::PipelineStageFlags const &,
  83077. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  83078. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  83079. VULKAN_HPP_NAMESPACE::DependencyFlags const &>
  83080. # endif
  83081. reflect() const VULKAN_HPP_NOEXCEPT
  83082. {
  83083. return std::tie( srcSubpass, dstSubpass, srcStageMask, dstStageMask, srcAccessMask, dstAccessMask, dependencyFlags );
  83084. }
  83085. #endif
  83086. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83087. auto operator<=>( SubpassDependency const & ) const = default;
  83088. #else
  83089. bool operator==( SubpassDependency const & rhs ) const VULKAN_HPP_NOEXCEPT
  83090. {
  83091. # if defined( VULKAN_HPP_USE_REFLECT )
  83092. return this->reflect() == rhs.reflect();
  83093. # else
  83094. return ( srcSubpass == rhs.srcSubpass ) && ( dstSubpass == rhs.dstSubpass ) && ( srcStageMask == rhs.srcStageMask ) &&
  83095. ( dstStageMask == rhs.dstStageMask ) && ( srcAccessMask == rhs.srcAccessMask ) && ( dstAccessMask == rhs.dstAccessMask ) &&
  83096. ( dependencyFlags == rhs.dependencyFlags );
  83097. # endif
  83098. }
  83099. bool operator!=( SubpassDependency const & rhs ) const VULKAN_HPP_NOEXCEPT
  83100. {
  83101. return !operator==( rhs );
  83102. }
  83103. #endif
  83104. public:
  83105. uint32_t srcSubpass = {};
  83106. uint32_t dstSubpass = {};
  83107. VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
  83108. VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
  83109. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
  83110. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
  83111. VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
  83112. };
  83113. struct RenderPassCreateInfo
  83114. {
  83115. using NativeType = VkRenderPassCreateInfo;
  83116. static const bool allowDuplicate = false;
  83117. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo;
  83118. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83119. VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {},
  83120. uint32_t attachmentCount_ = {},
  83121. const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments_ = {},
  83122. uint32_t subpassCount_ = {},
  83123. const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses_ = {},
  83124. uint32_t dependencyCount_ = {},
  83125. const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies_ = {},
  83126. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83127. : pNext( pNext_ )
  83128. , flags( flags_ )
  83129. , attachmentCount( attachmentCount_ )
  83130. , pAttachments( pAttachments_ )
  83131. , subpassCount( subpassCount_ )
  83132. , pSubpasses( pSubpasses_ )
  83133. , dependencyCount( dependencyCount_ )
  83134. , pDependencies( pDependencies_ )
  83135. {
  83136. }
  83137. VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83138. RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  83139. : RenderPassCreateInfo( *reinterpret_cast<RenderPassCreateInfo const *>( &rhs ) )
  83140. {
  83141. }
  83142. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83143. RenderPassCreateInfo( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_,
  83144. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const & attachments_,
  83145. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ = {},
  83146. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const & dependencies_ = {},
  83147. const void * pNext_ = nullptr )
  83148. : pNext( pNext_ )
  83149. , flags( flags_ )
  83150. , attachmentCount( static_cast<uint32_t>( attachments_.size() ) )
  83151. , pAttachments( attachments_.data() )
  83152. , subpassCount( static_cast<uint32_t>( subpasses_.size() ) )
  83153. , pSubpasses( subpasses_.data() )
  83154. , dependencyCount( static_cast<uint32_t>( dependencies_.size() ) )
  83155. , pDependencies( dependencies_.data() )
  83156. {
  83157. }
  83158. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83159. RenderPassCreateInfo & operator=( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83160. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83161. RenderPassCreateInfo & operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  83162. {
  83163. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const *>( &rhs );
  83164. return *this;
  83165. }
  83166. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83167. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83168. {
  83169. pNext = pNext_;
  83170. return *this;
  83171. }
  83172. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  83173. {
  83174. flags = flags_;
  83175. return *this;
  83176. }
  83177. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  83178. {
  83179. attachmentCount = attachmentCount_;
  83180. return *this;
  83181. }
  83182. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments_ ) VULKAN_HPP_NOEXCEPT
  83183. {
  83184. pAttachments = pAttachments_;
  83185. return *this;
  83186. }
  83187. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83188. RenderPassCreateInfo & setAttachments(
  83189. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription> const & attachments_ ) VULKAN_HPP_NOEXCEPT
  83190. {
  83191. attachmentCount = static_cast<uint32_t>( attachments_.size() );
  83192. pAttachments = attachments_.data();
  83193. return *this;
  83194. }
  83195. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83196. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
  83197. {
  83198. subpassCount = subpassCount_;
  83199. return *this;
  83200. }
  83201. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses_ ) VULKAN_HPP_NOEXCEPT
  83202. {
  83203. pSubpasses = pSubpasses_;
  83204. return *this;
  83205. }
  83206. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83207. RenderPassCreateInfo &
  83208. setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
  83209. {
  83210. subpassCount = static_cast<uint32_t>( subpasses_.size() );
  83211. pSubpasses = subpasses_.data();
  83212. return *this;
  83213. }
  83214. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83215. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
  83216. {
  83217. dependencyCount = dependencyCount_;
  83218. return *this;
  83219. }
  83220. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies_ ) VULKAN_HPP_NOEXCEPT
  83221. {
  83222. pDependencies = pDependencies_;
  83223. return *this;
  83224. }
  83225. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83226. RenderPassCreateInfo &
  83227. setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
  83228. {
  83229. dependencyCount = static_cast<uint32_t>( dependencies_.size() );
  83230. pDependencies = dependencies_.data();
  83231. return *this;
  83232. }
  83233. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83234. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83235. operator VkRenderPassCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  83236. {
  83237. return *reinterpret_cast<const VkRenderPassCreateInfo *>( this );
  83238. }
  83239. operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT
  83240. {
  83241. return *reinterpret_cast<VkRenderPassCreateInfo *>( this );
  83242. }
  83243. #if defined( VULKAN_HPP_USE_REFLECT )
  83244. # if 14 <= VULKAN_HPP_CPP_VERSION
  83245. auto
  83246. # else
  83247. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  83248. const void * const &,
  83249. VULKAN_HPP_NAMESPACE::RenderPassCreateFlags const &,
  83250. uint32_t const &,
  83251. const VULKAN_HPP_NAMESPACE::AttachmentDescription * const &,
  83252. uint32_t const &,
  83253. const VULKAN_HPP_NAMESPACE::SubpassDescription * const &,
  83254. uint32_t const &,
  83255. const VULKAN_HPP_NAMESPACE::SubpassDependency * const &>
  83256. # endif
  83257. reflect() const VULKAN_HPP_NOEXCEPT
  83258. {
  83259. return std::tie( sType, pNext, flags, attachmentCount, pAttachments, subpassCount, pSubpasses, dependencyCount, pDependencies );
  83260. }
  83261. #endif
  83262. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83263. auto operator<=>( RenderPassCreateInfo const & ) const = default;
  83264. #else
  83265. bool operator==( RenderPassCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  83266. {
  83267. # if defined( VULKAN_HPP_USE_REFLECT )
  83268. return this->reflect() == rhs.reflect();
  83269. # else
  83270. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( attachmentCount == rhs.attachmentCount ) &&
  83271. ( pAttachments == rhs.pAttachments ) && ( subpassCount == rhs.subpassCount ) && ( pSubpasses == rhs.pSubpasses ) &&
  83272. ( dependencyCount == rhs.dependencyCount ) && ( pDependencies == rhs.pDependencies );
  83273. # endif
  83274. }
  83275. bool operator!=( RenderPassCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  83276. {
  83277. return !operator==( rhs );
  83278. }
  83279. #endif
  83280. public:
  83281. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo;
  83282. const void * pNext = {};
  83283. VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
  83284. uint32_t attachmentCount = {};
  83285. const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments = {};
  83286. uint32_t subpassCount = {};
  83287. const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses = {};
  83288. uint32_t dependencyCount = {};
  83289. const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies = {};
  83290. };
  83291. template <>
  83292. struct CppType<StructureType, StructureType::eRenderPassCreateInfo>
  83293. {
  83294. using Type = RenderPassCreateInfo;
  83295. };
  83296. struct SubpassDescription2
  83297. {
  83298. using NativeType = VkSubpassDescription2;
  83299. static const bool allowDuplicate = false;
  83300. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescription2;
  83301. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83302. VULKAN_HPP_CONSTEXPR SubpassDescription2( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {},
  83303. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics,
  83304. uint32_t viewMask_ = {},
  83305. uint32_t inputAttachmentCount_ = {},
  83306. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments_ = {},
  83307. uint32_t colorAttachmentCount_ = {},
  83308. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments_ = {},
  83309. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ = {},
  83310. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ = {},
  83311. uint32_t preserveAttachmentCount_ = {},
  83312. const uint32_t * pPreserveAttachments_ = {},
  83313. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83314. : pNext( pNext_ )
  83315. , flags( flags_ )
  83316. , pipelineBindPoint( pipelineBindPoint_ )
  83317. , viewMask( viewMask_ )
  83318. , inputAttachmentCount( inputAttachmentCount_ )
  83319. , pInputAttachments( pInputAttachments_ )
  83320. , colorAttachmentCount( colorAttachmentCount_ )
  83321. , pColorAttachments( pColorAttachments_ )
  83322. , pResolveAttachments( pResolveAttachments_ )
  83323. , pDepthStencilAttachment( pDepthStencilAttachment_ )
  83324. , preserveAttachmentCount( preserveAttachmentCount_ )
  83325. , pPreserveAttachments( pPreserveAttachments_ )
  83326. {
  83327. }
  83328. VULKAN_HPP_CONSTEXPR SubpassDescription2( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83329. SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassDescription2( *reinterpret_cast<SubpassDescription2 const *>( &rhs ) )
  83330. {
  83331. }
  83332. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83333. SubpassDescription2( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_,
  83334. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_,
  83335. uint32_t viewMask_,
  83336. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & inputAttachments_,
  83337. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & colorAttachments_ = {},
  83338. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & resolveAttachments_ = {},
  83339. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ = {},
  83340. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ = {},
  83341. const void * pNext_ = nullptr )
  83342. : pNext( pNext_ )
  83343. , flags( flags_ )
  83344. , pipelineBindPoint( pipelineBindPoint_ )
  83345. , viewMask( viewMask_ )
  83346. , inputAttachmentCount( static_cast<uint32_t>( inputAttachments_.size() ) )
  83347. , pInputAttachments( inputAttachments_.data() )
  83348. , colorAttachmentCount( static_cast<uint32_t>( colorAttachments_.size() ) )
  83349. , pColorAttachments( colorAttachments_.data() )
  83350. , pResolveAttachments( resolveAttachments_.data() )
  83351. , pDepthStencilAttachment( pDepthStencilAttachment_ )
  83352. , preserveAttachmentCount( static_cast<uint32_t>( preserveAttachments_.size() ) )
  83353. , pPreserveAttachments( preserveAttachments_.data() )
  83354. {
  83355. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  83356. VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) );
  83357. # else
  83358. if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) )
  83359. {
  83360. throw LogicError(
  83361. VULKAN_HPP_NAMESPACE_STRING
  83362. "::SubpassDescription2::SubpassDescription2: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" );
  83363. }
  83364. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  83365. }
  83366. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83367. SubpassDescription2 & operator=( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83368. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83369. SubpassDescription2 & operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT
  83370. {
  83371. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescription2 const *>( &rhs );
  83372. return *this;
  83373. }
  83374. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83375. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83376. {
  83377. pNext = pNext_;
  83378. return *this;
  83379. }
  83380. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT
  83381. {
  83382. flags = flags_;
  83383. return *this;
  83384. }
  83385. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT
  83386. {
  83387. pipelineBindPoint = pipelineBindPoint_;
  83388. return *this;
  83389. }
  83390. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
  83391. {
  83392. viewMask = viewMask_;
  83393. return *this;
  83394. }
  83395. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  83396. {
  83397. inputAttachmentCount = inputAttachmentCount_;
  83398. return *this;
  83399. }
  83400. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
  83401. setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT
  83402. {
  83403. pInputAttachments = pInputAttachments_;
  83404. return *this;
  83405. }
  83406. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83407. SubpassDescription2 & setInputAttachments(
  83408. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT
  83409. {
  83410. inputAttachmentCount = static_cast<uint32_t>( inputAttachments_.size() );
  83411. pInputAttachments = inputAttachments_.data();
  83412. return *this;
  83413. }
  83414. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83415. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  83416. {
  83417. colorAttachmentCount = colorAttachmentCount_;
  83418. return *this;
  83419. }
  83420. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
  83421. setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
  83422. {
  83423. pColorAttachments = pColorAttachments_;
  83424. return *this;
  83425. }
  83426. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83427. SubpassDescription2 & setColorAttachments(
  83428. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
  83429. {
  83430. colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
  83431. pColorAttachments = colorAttachments_.data();
  83432. return *this;
  83433. }
  83434. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83435. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
  83436. setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT
  83437. {
  83438. pResolveAttachments = pResolveAttachments_;
  83439. return *this;
  83440. }
  83441. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83442. SubpassDescription2 & setResolveAttachments(
  83443. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentReference2> const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT
  83444. {
  83445. colorAttachmentCount = static_cast<uint32_t>( resolveAttachments_.size() );
  83446. pResolveAttachments = resolveAttachments_.data();
  83447. return *this;
  83448. }
  83449. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83450. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 &
  83451. setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
  83452. {
  83453. pDepthStencilAttachment = pDepthStencilAttachment_;
  83454. return *this;
  83455. }
  83456. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  83457. {
  83458. preserveAttachmentCount = preserveAttachmentCount_;
  83459. return *this;
  83460. }
  83461. VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & setPPreserveAttachments( const uint32_t * pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT
  83462. {
  83463. pPreserveAttachments = pPreserveAttachments_;
  83464. return *this;
  83465. }
  83466. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83467. SubpassDescription2 &
  83468. setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT
  83469. {
  83470. preserveAttachmentCount = static_cast<uint32_t>( preserveAttachments_.size() );
  83471. pPreserveAttachments = preserveAttachments_.data();
  83472. return *this;
  83473. }
  83474. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83475. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83476. operator VkSubpassDescription2 const &() const VULKAN_HPP_NOEXCEPT
  83477. {
  83478. return *reinterpret_cast<const VkSubpassDescription2 *>( this );
  83479. }
  83480. operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT
  83481. {
  83482. return *reinterpret_cast<VkSubpassDescription2 *>( this );
  83483. }
  83484. #if defined( VULKAN_HPP_USE_REFLECT )
  83485. # if 14 <= VULKAN_HPP_CPP_VERSION
  83486. auto
  83487. # else
  83488. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  83489. const void * const &,
  83490. VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags const &,
  83491. VULKAN_HPP_NAMESPACE::PipelineBindPoint const &,
  83492. uint32_t const &,
  83493. uint32_t const &,
  83494. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &,
  83495. uint32_t const &,
  83496. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &,
  83497. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &,
  83498. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &,
  83499. uint32_t const &,
  83500. const uint32_t * const &>
  83501. # endif
  83502. reflect() const VULKAN_HPP_NOEXCEPT
  83503. {
  83504. return std::tie( sType,
  83505. pNext,
  83506. flags,
  83507. pipelineBindPoint,
  83508. viewMask,
  83509. inputAttachmentCount,
  83510. pInputAttachments,
  83511. colorAttachmentCount,
  83512. pColorAttachments,
  83513. pResolveAttachments,
  83514. pDepthStencilAttachment,
  83515. preserveAttachmentCount,
  83516. pPreserveAttachments );
  83517. }
  83518. #endif
  83519. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83520. auto operator<=>( SubpassDescription2 const & ) const = default;
  83521. #else
  83522. bool operator==( SubpassDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  83523. {
  83524. # if defined( VULKAN_HPP_USE_REFLECT )
  83525. return this->reflect() == rhs.reflect();
  83526. # else
  83527. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) &&
  83528. ( viewMask == rhs.viewMask ) && ( inputAttachmentCount == rhs.inputAttachmentCount ) && ( pInputAttachments == rhs.pInputAttachments ) &&
  83529. ( colorAttachmentCount == rhs.colorAttachmentCount ) && ( pColorAttachments == rhs.pColorAttachments ) &&
  83530. ( pResolveAttachments == rhs.pResolveAttachments ) && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) &&
  83531. ( preserveAttachmentCount == rhs.preserveAttachmentCount ) && ( pPreserveAttachments == rhs.pPreserveAttachments );
  83532. # endif
  83533. }
  83534. bool operator!=( SubpassDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  83535. {
  83536. return !operator==( rhs );
  83537. }
  83538. #endif
  83539. public:
  83540. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2;
  83541. const void * pNext = {};
  83542. VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {};
  83543. VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics;
  83544. uint32_t viewMask = {};
  83545. uint32_t inputAttachmentCount = {};
  83546. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments = {};
  83547. uint32_t colorAttachmentCount = {};
  83548. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments = {};
  83549. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments = {};
  83550. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment = {};
  83551. uint32_t preserveAttachmentCount = {};
  83552. const uint32_t * pPreserveAttachments = {};
  83553. };
  83554. template <>
  83555. struct CppType<StructureType, StructureType::eSubpassDescription2>
  83556. {
  83557. using Type = SubpassDescription2;
  83558. };
  83559. using SubpassDescription2KHR = SubpassDescription2;
  83560. struct SubpassDependency2
  83561. {
  83562. using NativeType = VkSubpassDependency2;
  83563. static const bool allowDuplicate = false;
  83564. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDependency2;
  83565. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83566. VULKAN_HPP_CONSTEXPR SubpassDependency2( uint32_t srcSubpass_ = {},
  83567. uint32_t dstSubpass_ = {},
  83568. VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {},
  83569. VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {},
  83570. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {},
  83571. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {},
  83572. VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {},
  83573. int32_t viewOffset_ = {},
  83574. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83575. : pNext( pNext_ )
  83576. , srcSubpass( srcSubpass_ )
  83577. , dstSubpass( dstSubpass_ )
  83578. , srcStageMask( srcStageMask_ )
  83579. , dstStageMask( dstStageMask_ )
  83580. , srcAccessMask( srcAccessMask_ )
  83581. , dstAccessMask( dstAccessMask_ )
  83582. , dependencyFlags( dependencyFlags_ )
  83583. , viewOffset( viewOffset_ )
  83584. {
  83585. }
  83586. VULKAN_HPP_CONSTEXPR SubpassDependency2( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83587. SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassDependency2( *reinterpret_cast<SubpassDependency2 const *>( &rhs ) ) {}
  83588. SubpassDependency2 & operator=( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83589. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83590. SubpassDependency2 & operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT
  83591. {
  83592. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDependency2 const *>( &rhs );
  83593. return *this;
  83594. }
  83595. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83596. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83597. {
  83598. pNext = pNext_;
  83599. return *this;
  83600. }
  83601. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT
  83602. {
  83603. srcSubpass = srcSubpass_;
  83604. return *this;
  83605. }
  83606. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT
  83607. {
  83608. dstSubpass = dstSubpass_;
  83609. return *this;
  83610. }
  83611. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT
  83612. {
  83613. srcStageMask = srcStageMask_;
  83614. return *this;
  83615. }
  83616. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT
  83617. {
  83618. dstStageMask = dstStageMask_;
  83619. return *this;
  83620. }
  83621. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT
  83622. {
  83623. srcAccessMask = srcAccessMask_;
  83624. return *this;
  83625. }
  83626. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT
  83627. {
  83628. dstAccessMask = dstAccessMask_;
  83629. return *this;
  83630. }
  83631. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT
  83632. {
  83633. dependencyFlags = dependencyFlags_;
  83634. return *this;
  83635. }
  83636. VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT
  83637. {
  83638. viewOffset = viewOffset_;
  83639. return *this;
  83640. }
  83641. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83642. operator VkSubpassDependency2 const &() const VULKAN_HPP_NOEXCEPT
  83643. {
  83644. return *reinterpret_cast<const VkSubpassDependency2 *>( this );
  83645. }
  83646. operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT
  83647. {
  83648. return *reinterpret_cast<VkSubpassDependency2 *>( this );
  83649. }
  83650. #if defined( VULKAN_HPP_USE_REFLECT )
  83651. # if 14 <= VULKAN_HPP_CPP_VERSION
  83652. auto
  83653. # else
  83654. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  83655. const void * const &,
  83656. uint32_t const &,
  83657. uint32_t const &,
  83658. VULKAN_HPP_NAMESPACE::PipelineStageFlags const &,
  83659. VULKAN_HPP_NAMESPACE::PipelineStageFlags const &,
  83660. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  83661. VULKAN_HPP_NAMESPACE::AccessFlags const &,
  83662. VULKAN_HPP_NAMESPACE::DependencyFlags const &,
  83663. int32_t const &>
  83664. # endif
  83665. reflect() const VULKAN_HPP_NOEXCEPT
  83666. {
  83667. return std::tie( sType, pNext, srcSubpass, dstSubpass, srcStageMask, dstStageMask, srcAccessMask, dstAccessMask, dependencyFlags, viewOffset );
  83668. }
  83669. #endif
  83670. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83671. auto operator<=>( SubpassDependency2 const & ) const = default;
  83672. #else
  83673. bool operator==( SubpassDependency2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  83674. {
  83675. # if defined( VULKAN_HPP_USE_REFLECT )
  83676. return this->reflect() == rhs.reflect();
  83677. # else
  83678. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubpass == rhs.srcSubpass ) && ( dstSubpass == rhs.dstSubpass ) &&
  83679. ( srcStageMask == rhs.srcStageMask ) && ( dstStageMask == rhs.dstStageMask ) && ( srcAccessMask == rhs.srcAccessMask ) &&
  83680. ( dstAccessMask == rhs.dstAccessMask ) && ( dependencyFlags == rhs.dependencyFlags ) && ( viewOffset == rhs.viewOffset );
  83681. # endif
  83682. }
  83683. bool operator!=( SubpassDependency2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  83684. {
  83685. return !operator==( rhs );
  83686. }
  83687. #endif
  83688. public:
  83689. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2;
  83690. const void * pNext = {};
  83691. uint32_t srcSubpass = {};
  83692. uint32_t dstSubpass = {};
  83693. VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {};
  83694. VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {};
  83695. VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {};
  83696. VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {};
  83697. VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {};
  83698. int32_t viewOffset = {};
  83699. };
  83700. template <>
  83701. struct CppType<StructureType, StructureType::eSubpassDependency2>
  83702. {
  83703. using Type = SubpassDependency2;
  83704. };
  83705. using SubpassDependency2KHR = SubpassDependency2;
  83706. struct RenderPassCreateInfo2
  83707. {
  83708. using NativeType = VkRenderPassCreateInfo2;
  83709. static const bool allowDuplicate = false;
  83710. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo2;
  83711. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83712. VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {},
  83713. uint32_t attachmentCount_ = {},
  83714. const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments_ = {},
  83715. uint32_t subpassCount_ = {},
  83716. const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses_ = {},
  83717. uint32_t dependencyCount_ = {},
  83718. const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies_ = {},
  83719. uint32_t correlatedViewMaskCount_ = {},
  83720. const uint32_t * pCorrelatedViewMasks_ = {},
  83721. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83722. : pNext( pNext_ )
  83723. , flags( flags_ )
  83724. , attachmentCount( attachmentCount_ )
  83725. , pAttachments( pAttachments_ )
  83726. , subpassCount( subpassCount_ )
  83727. , pSubpasses( pSubpasses_ )
  83728. , dependencyCount( dependencyCount_ )
  83729. , pDependencies( pDependencies_ )
  83730. , correlatedViewMaskCount( correlatedViewMaskCount_ )
  83731. , pCorrelatedViewMasks( pCorrelatedViewMasks_ )
  83732. {
  83733. }
  83734. VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83735. RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  83736. : RenderPassCreateInfo2( *reinterpret_cast<RenderPassCreateInfo2 const *>( &rhs ) )
  83737. {
  83738. }
  83739. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83740. RenderPassCreateInfo2( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_,
  83741. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const & attachments_,
  83742. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const & subpasses_ = {},
  83743. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const & dependencies_ = {},
  83744. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ = {},
  83745. const void * pNext_ = nullptr )
  83746. : pNext( pNext_ )
  83747. , flags( flags_ )
  83748. , attachmentCount( static_cast<uint32_t>( attachments_.size() ) )
  83749. , pAttachments( attachments_.data() )
  83750. , subpassCount( static_cast<uint32_t>( subpasses_.size() ) )
  83751. , pSubpasses( subpasses_.data() )
  83752. , dependencyCount( static_cast<uint32_t>( dependencies_.size() ) )
  83753. , pDependencies( dependencies_.data() )
  83754. , correlatedViewMaskCount( static_cast<uint32_t>( correlatedViewMasks_.size() ) )
  83755. , pCorrelatedViewMasks( correlatedViewMasks_.data() )
  83756. {
  83757. }
  83758. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83759. RenderPassCreateInfo2 & operator=( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83760. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83761. RenderPassCreateInfo2 & operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  83762. {
  83763. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const *>( &rhs );
  83764. return *this;
  83765. }
  83766. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83767. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83768. {
  83769. pNext = pNext_;
  83770. return *this;
  83771. }
  83772. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  83773. {
  83774. flags = flags_;
  83775. return *this;
  83776. }
  83777. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT
  83778. {
  83779. attachmentCount = attachmentCount_;
  83780. return *this;
  83781. }
  83782. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments_ ) VULKAN_HPP_NOEXCEPT
  83783. {
  83784. pAttachments = pAttachments_;
  83785. return *this;
  83786. }
  83787. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83788. RenderPassCreateInfo2 & setAttachments(
  83789. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentDescription2> const & attachments_ ) VULKAN_HPP_NOEXCEPT
  83790. {
  83791. attachmentCount = static_cast<uint32_t>( attachments_.size() );
  83792. pAttachments = attachments_.data();
  83793. return *this;
  83794. }
  83795. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83796. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
  83797. {
  83798. subpassCount = subpassCount_;
  83799. return *this;
  83800. }
  83801. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses_ ) VULKAN_HPP_NOEXCEPT
  83802. {
  83803. pSubpasses = pSubpasses_;
  83804. return *this;
  83805. }
  83806. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83807. RenderPassCreateInfo2 &
  83808. setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDescription2> const & subpasses_ ) VULKAN_HPP_NOEXCEPT
  83809. {
  83810. subpassCount = static_cast<uint32_t>( subpasses_.size() );
  83811. pSubpasses = subpasses_.data();
  83812. return *this;
  83813. }
  83814. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83815. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
  83816. {
  83817. dependencyCount = dependencyCount_;
  83818. return *this;
  83819. }
  83820. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies_ ) VULKAN_HPP_NOEXCEPT
  83821. {
  83822. pDependencies = pDependencies_;
  83823. return *this;
  83824. }
  83825. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83826. RenderPassCreateInfo2 &
  83827. setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassDependency2> const & dependencies_ ) VULKAN_HPP_NOEXCEPT
  83828. {
  83829. dependencyCount = static_cast<uint32_t>( dependencies_.size() );
  83830. pDependencies = dependencies_.data();
  83831. return *this;
  83832. }
  83833. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83834. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT
  83835. {
  83836. correlatedViewMaskCount = correlatedViewMaskCount_;
  83837. return *this;
  83838. }
  83839. VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t * pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
  83840. {
  83841. pCorrelatedViewMasks = pCorrelatedViewMasks_;
  83842. return *this;
  83843. }
  83844. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  83845. RenderPassCreateInfo2 &
  83846. setCorrelatedViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlatedViewMasks_ ) VULKAN_HPP_NOEXCEPT
  83847. {
  83848. correlatedViewMaskCount = static_cast<uint32_t>( correlatedViewMasks_.size() );
  83849. pCorrelatedViewMasks = correlatedViewMasks_.data();
  83850. return *this;
  83851. }
  83852. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  83853. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83854. operator VkRenderPassCreateInfo2 const &() const VULKAN_HPP_NOEXCEPT
  83855. {
  83856. return *reinterpret_cast<const VkRenderPassCreateInfo2 *>( this );
  83857. }
  83858. operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT
  83859. {
  83860. return *reinterpret_cast<VkRenderPassCreateInfo2 *>( this );
  83861. }
  83862. #if defined( VULKAN_HPP_USE_REFLECT )
  83863. # if 14 <= VULKAN_HPP_CPP_VERSION
  83864. auto
  83865. # else
  83866. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  83867. const void * const &,
  83868. VULKAN_HPP_NAMESPACE::RenderPassCreateFlags const &,
  83869. uint32_t const &,
  83870. const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * const &,
  83871. uint32_t const &,
  83872. const VULKAN_HPP_NAMESPACE::SubpassDescription2 * const &,
  83873. uint32_t const &,
  83874. const VULKAN_HPP_NAMESPACE::SubpassDependency2 * const &,
  83875. uint32_t const &,
  83876. const uint32_t * const &>
  83877. # endif
  83878. reflect() const VULKAN_HPP_NOEXCEPT
  83879. {
  83880. return std::tie( sType,
  83881. pNext,
  83882. flags,
  83883. attachmentCount,
  83884. pAttachments,
  83885. subpassCount,
  83886. pSubpasses,
  83887. dependencyCount,
  83888. pDependencies,
  83889. correlatedViewMaskCount,
  83890. pCorrelatedViewMasks );
  83891. }
  83892. #endif
  83893. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83894. auto operator<=>( RenderPassCreateInfo2 const & ) const = default;
  83895. #else
  83896. bool operator==( RenderPassCreateInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  83897. {
  83898. # if defined( VULKAN_HPP_USE_REFLECT )
  83899. return this->reflect() == rhs.reflect();
  83900. # else
  83901. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( attachmentCount == rhs.attachmentCount ) &&
  83902. ( pAttachments == rhs.pAttachments ) && ( subpassCount == rhs.subpassCount ) && ( pSubpasses == rhs.pSubpasses ) &&
  83903. ( dependencyCount == rhs.dependencyCount ) && ( pDependencies == rhs.pDependencies ) &&
  83904. ( correlatedViewMaskCount == rhs.correlatedViewMaskCount ) && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks );
  83905. # endif
  83906. }
  83907. bool operator!=( RenderPassCreateInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  83908. {
  83909. return !operator==( rhs );
  83910. }
  83911. #endif
  83912. public:
  83913. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2;
  83914. const void * pNext = {};
  83915. VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {};
  83916. uint32_t attachmentCount = {};
  83917. const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments = {};
  83918. uint32_t subpassCount = {};
  83919. const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses = {};
  83920. uint32_t dependencyCount = {};
  83921. const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies = {};
  83922. uint32_t correlatedViewMaskCount = {};
  83923. const uint32_t * pCorrelatedViewMasks = {};
  83924. };
  83925. template <>
  83926. struct CppType<StructureType, StructureType::eRenderPassCreateInfo2>
  83927. {
  83928. using Type = RenderPassCreateInfo2;
  83929. };
  83930. using RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
  83931. struct RenderPassCreationControlEXT
  83932. {
  83933. using NativeType = VkRenderPassCreationControlEXT;
  83934. static const bool allowDuplicate = false;
  83935. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreationControlEXT;
  83936. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  83937. VULKAN_HPP_CONSTEXPR RenderPassCreationControlEXT( VULKAN_HPP_NAMESPACE::Bool32 disallowMerging_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  83938. : pNext( pNext_ )
  83939. , disallowMerging( disallowMerging_ )
  83940. {
  83941. }
  83942. VULKAN_HPP_CONSTEXPR RenderPassCreationControlEXT( RenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83943. RenderPassCreationControlEXT( VkRenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  83944. : RenderPassCreationControlEXT( *reinterpret_cast<RenderPassCreationControlEXT const *>( &rhs ) )
  83945. {
  83946. }
  83947. RenderPassCreationControlEXT & operator=( RenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  83948. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  83949. RenderPassCreationControlEXT & operator=( VkRenderPassCreationControlEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  83950. {
  83951. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT const *>( &rhs );
  83952. return *this;
  83953. }
  83954. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  83955. VULKAN_HPP_CONSTEXPR_14 RenderPassCreationControlEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  83956. {
  83957. pNext = pNext_;
  83958. return *this;
  83959. }
  83960. VULKAN_HPP_CONSTEXPR_14 RenderPassCreationControlEXT & setDisallowMerging( VULKAN_HPP_NAMESPACE::Bool32 disallowMerging_ ) VULKAN_HPP_NOEXCEPT
  83961. {
  83962. disallowMerging = disallowMerging_;
  83963. return *this;
  83964. }
  83965. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  83966. operator VkRenderPassCreationControlEXT const &() const VULKAN_HPP_NOEXCEPT
  83967. {
  83968. return *reinterpret_cast<const VkRenderPassCreationControlEXT *>( this );
  83969. }
  83970. operator VkRenderPassCreationControlEXT &() VULKAN_HPP_NOEXCEPT
  83971. {
  83972. return *reinterpret_cast<VkRenderPassCreationControlEXT *>( this );
  83973. }
  83974. #if defined( VULKAN_HPP_USE_REFLECT )
  83975. # if 14 <= VULKAN_HPP_CPP_VERSION
  83976. auto
  83977. # else
  83978. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  83979. # endif
  83980. reflect() const VULKAN_HPP_NOEXCEPT
  83981. {
  83982. return std::tie( sType, pNext, disallowMerging );
  83983. }
  83984. #endif
  83985. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  83986. auto operator<=>( RenderPassCreationControlEXT const & ) const = default;
  83987. #else
  83988. bool operator==( RenderPassCreationControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  83989. {
  83990. # if defined( VULKAN_HPP_USE_REFLECT )
  83991. return this->reflect() == rhs.reflect();
  83992. # else
  83993. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( disallowMerging == rhs.disallowMerging );
  83994. # endif
  83995. }
  83996. bool operator!=( RenderPassCreationControlEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  83997. {
  83998. return !operator==( rhs );
  83999. }
  84000. #endif
  84001. public:
  84002. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreationControlEXT;
  84003. const void * pNext = {};
  84004. VULKAN_HPP_NAMESPACE::Bool32 disallowMerging = {};
  84005. };
  84006. template <>
  84007. struct CppType<StructureType, StructureType::eRenderPassCreationControlEXT>
  84008. {
  84009. using Type = RenderPassCreationControlEXT;
  84010. };
  84011. struct RenderPassCreationFeedbackInfoEXT
  84012. {
  84013. using NativeType = VkRenderPassCreationFeedbackInfoEXT;
  84014. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84015. VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackInfoEXT( uint32_t postMergeSubpassCount_ = {} ) VULKAN_HPP_NOEXCEPT
  84016. : postMergeSubpassCount( postMergeSubpassCount_ )
  84017. {
  84018. }
  84019. VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackInfoEXT( RenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84020. RenderPassCreationFeedbackInfoEXT( VkRenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84021. : RenderPassCreationFeedbackInfoEXT( *reinterpret_cast<RenderPassCreationFeedbackInfoEXT const *>( &rhs ) )
  84022. {
  84023. }
  84024. RenderPassCreationFeedbackInfoEXT & operator=( RenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84025. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84026. RenderPassCreationFeedbackInfoEXT & operator=( VkRenderPassCreationFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84027. {
  84028. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT const *>( &rhs );
  84029. return *this;
  84030. }
  84031. operator VkRenderPassCreationFeedbackInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  84032. {
  84033. return *reinterpret_cast<const VkRenderPassCreationFeedbackInfoEXT *>( this );
  84034. }
  84035. operator VkRenderPassCreationFeedbackInfoEXT &() VULKAN_HPP_NOEXCEPT
  84036. {
  84037. return *reinterpret_cast<VkRenderPassCreationFeedbackInfoEXT *>( this );
  84038. }
  84039. #if defined( VULKAN_HPP_USE_REFLECT )
  84040. # if 14 <= VULKAN_HPP_CPP_VERSION
  84041. auto
  84042. # else
  84043. std::tuple<uint32_t const &>
  84044. # endif
  84045. reflect() const VULKAN_HPP_NOEXCEPT
  84046. {
  84047. return std::tie( postMergeSubpassCount );
  84048. }
  84049. #endif
  84050. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84051. auto operator<=>( RenderPassCreationFeedbackInfoEXT const & ) const = default;
  84052. #else
  84053. bool operator==( RenderPassCreationFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84054. {
  84055. # if defined( VULKAN_HPP_USE_REFLECT )
  84056. return this->reflect() == rhs.reflect();
  84057. # else
  84058. return ( postMergeSubpassCount == rhs.postMergeSubpassCount );
  84059. # endif
  84060. }
  84061. bool operator!=( RenderPassCreationFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84062. {
  84063. return !operator==( rhs );
  84064. }
  84065. #endif
  84066. public:
  84067. uint32_t postMergeSubpassCount = {};
  84068. };
  84069. struct RenderPassCreationFeedbackCreateInfoEXT
  84070. {
  84071. using NativeType = VkRenderPassCreationFeedbackCreateInfoEXT;
  84072. static const bool allowDuplicate = false;
  84073. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreationFeedbackCreateInfoEXT;
  84074. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84075. VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback_ = {},
  84076. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84077. : pNext( pNext_ )
  84078. , pRenderPassFeedback( pRenderPassFeedback_ )
  84079. {
  84080. }
  84081. VULKAN_HPP_CONSTEXPR RenderPassCreationFeedbackCreateInfoEXT( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84082. RenderPassCreationFeedbackCreateInfoEXT( VkRenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84083. : RenderPassCreationFeedbackCreateInfoEXT( *reinterpret_cast<RenderPassCreationFeedbackCreateInfoEXT const *>( &rhs ) )
  84084. {
  84085. }
  84086. RenderPassCreationFeedbackCreateInfoEXT & operator=( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84087. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84088. RenderPassCreationFeedbackCreateInfoEXT & operator=( VkRenderPassCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84089. {
  84090. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT const *>( &rhs );
  84091. return *this;
  84092. }
  84093. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84094. VULKAN_HPP_CONSTEXPR_14 RenderPassCreationFeedbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84095. {
  84096. pNext = pNext_;
  84097. return *this;
  84098. }
  84099. VULKAN_HPP_CONSTEXPR_14 RenderPassCreationFeedbackCreateInfoEXT &
  84100. setPRenderPassFeedback( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback_ ) VULKAN_HPP_NOEXCEPT
  84101. {
  84102. pRenderPassFeedback = pRenderPassFeedback_;
  84103. return *this;
  84104. }
  84105. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84106. operator VkRenderPassCreationFeedbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  84107. {
  84108. return *reinterpret_cast<const VkRenderPassCreationFeedbackCreateInfoEXT *>( this );
  84109. }
  84110. operator VkRenderPassCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  84111. {
  84112. return *reinterpret_cast<VkRenderPassCreationFeedbackCreateInfoEXT *>( this );
  84113. }
  84114. #if defined( VULKAN_HPP_USE_REFLECT )
  84115. # if 14 <= VULKAN_HPP_CPP_VERSION
  84116. auto
  84117. # else
  84118. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * const &>
  84119. # endif
  84120. reflect() const VULKAN_HPP_NOEXCEPT
  84121. {
  84122. return std::tie( sType, pNext, pRenderPassFeedback );
  84123. }
  84124. #endif
  84125. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84126. auto operator<=>( RenderPassCreationFeedbackCreateInfoEXT const & ) const = default;
  84127. #else
  84128. bool operator==( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84129. {
  84130. # if defined( VULKAN_HPP_USE_REFLECT )
  84131. return this->reflect() == rhs.reflect();
  84132. # else
  84133. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pRenderPassFeedback == rhs.pRenderPassFeedback );
  84134. # endif
  84135. }
  84136. bool operator!=( RenderPassCreationFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84137. {
  84138. return !operator==( rhs );
  84139. }
  84140. #endif
  84141. public:
  84142. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreationFeedbackCreateInfoEXT;
  84143. const void * pNext = {};
  84144. VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT * pRenderPassFeedback = {};
  84145. };
  84146. template <>
  84147. struct CppType<StructureType, StructureType::eRenderPassCreationFeedbackCreateInfoEXT>
  84148. {
  84149. using Type = RenderPassCreationFeedbackCreateInfoEXT;
  84150. };
  84151. struct RenderPassFragmentDensityMapCreateInfoEXT
  84152. {
  84153. using NativeType = VkRenderPassFragmentDensityMapCreateInfoEXT;
  84154. static const bool allowDuplicate = false;
  84155. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
  84156. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84157. VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {},
  84158. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84159. : pNext( pNext_ )
  84160. , fragmentDensityMapAttachment( fragmentDensityMapAttachment_ )
  84161. {
  84162. }
  84163. VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84164. RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84165. : RenderPassFragmentDensityMapCreateInfoEXT( *reinterpret_cast<RenderPassFragmentDensityMapCreateInfoEXT const *>( &rhs ) )
  84166. {
  84167. }
  84168. RenderPassFragmentDensityMapCreateInfoEXT & operator=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84169. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84170. RenderPassFragmentDensityMapCreateInfoEXT & operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84171. {
  84172. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT const *>( &rhs );
  84173. return *this;
  84174. }
  84175. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84176. VULKAN_HPP_CONSTEXPR_14 RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84177. {
  84178. pNext = pNext_;
  84179. return *this;
  84180. }
  84181. VULKAN_HPP_CONSTEXPR_14 RenderPassFragmentDensityMapCreateInfoEXT &
  84182. setFragmentDensityMapAttachment( VULKAN_HPP_NAMESPACE::AttachmentReference const & fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT
  84183. {
  84184. fragmentDensityMapAttachment = fragmentDensityMapAttachment_;
  84185. return *this;
  84186. }
  84187. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84188. operator VkRenderPassFragmentDensityMapCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  84189. {
  84190. return *reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT *>( this );
  84191. }
  84192. operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  84193. {
  84194. return *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT *>( this );
  84195. }
  84196. #if defined( VULKAN_HPP_USE_REFLECT )
  84197. # if 14 <= VULKAN_HPP_CPP_VERSION
  84198. auto
  84199. # else
  84200. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::AttachmentReference const &>
  84201. # endif
  84202. reflect() const VULKAN_HPP_NOEXCEPT
  84203. {
  84204. return std::tie( sType, pNext, fragmentDensityMapAttachment );
  84205. }
  84206. #endif
  84207. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84208. auto operator<=>( RenderPassFragmentDensityMapCreateInfoEXT const & ) const = default;
  84209. #else
  84210. bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84211. {
  84212. # if defined( VULKAN_HPP_USE_REFLECT )
  84213. return this->reflect() == rhs.reflect();
  84214. # else
  84215. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment );
  84216. # endif
  84217. }
  84218. bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84219. {
  84220. return !operator==( rhs );
  84221. }
  84222. #endif
  84223. public:
  84224. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
  84225. const void * pNext = {};
  84226. VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {};
  84227. };
  84228. template <>
  84229. struct CppType<StructureType, StructureType::eRenderPassFragmentDensityMapCreateInfoEXT>
  84230. {
  84231. using Type = RenderPassFragmentDensityMapCreateInfoEXT;
  84232. };
  84233. struct RenderPassInputAttachmentAspectCreateInfo
  84234. {
  84235. using NativeType = VkRenderPassInputAttachmentAspectCreateInfo;
  84236. static const bool allowDuplicate = false;
  84237. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
  84238. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84239. VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( uint32_t aspectReferenceCount_ = {},
  84240. const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences_ = {},
  84241. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84242. : pNext( pNext_ )
  84243. , aspectReferenceCount( aspectReferenceCount_ )
  84244. , pAspectReferences( pAspectReferences_ )
  84245. {
  84246. }
  84247. VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84248. RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  84249. : RenderPassInputAttachmentAspectCreateInfo( *reinterpret_cast<RenderPassInputAttachmentAspectCreateInfo const *>( &rhs ) )
  84250. {
  84251. }
  84252. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84253. RenderPassInputAttachmentAspectCreateInfo(
  84254. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_,
  84255. const void * pNext_ = nullptr )
  84256. : pNext( pNext_ ), aspectReferenceCount( static_cast<uint32_t>( aspectReferences_.size() ) ), pAspectReferences( aspectReferences_.data() )
  84257. {
  84258. }
  84259. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84260. RenderPassInputAttachmentAspectCreateInfo & operator=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84261. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84262. RenderPassInputAttachmentAspectCreateInfo & operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  84263. {
  84264. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo const *>( &rhs );
  84265. return *this;
  84266. }
  84267. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84268. VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84269. {
  84270. pNext = pNext_;
  84271. return *this;
  84272. }
  84273. VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT
  84274. {
  84275. aspectReferenceCount = aspectReferenceCount_;
  84276. return *this;
  84277. }
  84278. VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo &
  84279. setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences_ ) VULKAN_HPP_NOEXCEPT
  84280. {
  84281. pAspectReferences = pAspectReferences_;
  84282. return *this;
  84283. }
  84284. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84285. RenderPassInputAttachmentAspectCreateInfo & setAspectReferences(
  84286. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference> const & aspectReferences_ ) VULKAN_HPP_NOEXCEPT
  84287. {
  84288. aspectReferenceCount = static_cast<uint32_t>( aspectReferences_.size() );
  84289. pAspectReferences = aspectReferences_.data();
  84290. return *this;
  84291. }
  84292. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84293. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84294. operator VkRenderPassInputAttachmentAspectCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  84295. {
  84296. return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo *>( this );
  84297. }
  84298. operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT
  84299. {
  84300. return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo *>( this );
  84301. }
  84302. #if defined( VULKAN_HPP_USE_REFLECT )
  84303. # if 14 <= VULKAN_HPP_CPP_VERSION
  84304. auto
  84305. # else
  84306. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  84307. const void * const &,
  84308. uint32_t const &,
  84309. const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * const &>
  84310. # endif
  84311. reflect() const VULKAN_HPP_NOEXCEPT
  84312. {
  84313. return std::tie( sType, pNext, aspectReferenceCount, pAspectReferences );
  84314. }
  84315. #endif
  84316. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84317. auto operator<=>( RenderPassInputAttachmentAspectCreateInfo const & ) const = default;
  84318. #else
  84319. bool operator==( RenderPassInputAttachmentAspectCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  84320. {
  84321. # if defined( VULKAN_HPP_USE_REFLECT )
  84322. return this->reflect() == rhs.reflect();
  84323. # else
  84324. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( aspectReferenceCount == rhs.aspectReferenceCount ) &&
  84325. ( pAspectReferences == rhs.pAspectReferences );
  84326. # endif
  84327. }
  84328. bool operator!=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  84329. {
  84330. return !operator==( rhs );
  84331. }
  84332. #endif
  84333. public:
  84334. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
  84335. const void * pNext = {};
  84336. uint32_t aspectReferenceCount = {};
  84337. const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences = {};
  84338. };
  84339. template <>
  84340. struct CppType<StructureType, StructureType::eRenderPassInputAttachmentAspectCreateInfo>
  84341. {
  84342. using Type = RenderPassInputAttachmentAspectCreateInfo;
  84343. };
  84344. using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
  84345. struct RenderPassMultiviewCreateInfo
  84346. {
  84347. using NativeType = VkRenderPassMultiviewCreateInfo;
  84348. static const bool allowDuplicate = false;
  84349. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassMultiviewCreateInfo;
  84350. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84351. VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( uint32_t subpassCount_ = {},
  84352. const uint32_t * pViewMasks_ = {},
  84353. uint32_t dependencyCount_ = {},
  84354. const int32_t * pViewOffsets_ = {},
  84355. uint32_t correlationMaskCount_ = {},
  84356. const uint32_t * pCorrelationMasks_ = {},
  84357. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84358. : pNext( pNext_ )
  84359. , subpassCount( subpassCount_ )
  84360. , pViewMasks( pViewMasks_ )
  84361. , dependencyCount( dependencyCount_ )
  84362. , pViewOffsets( pViewOffsets_ )
  84363. , correlationMaskCount( correlationMaskCount_ )
  84364. , pCorrelationMasks( pCorrelationMasks_ )
  84365. {
  84366. }
  84367. VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84368. RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  84369. : RenderPassMultiviewCreateInfo( *reinterpret_cast<RenderPassMultiviewCreateInfo const *>( &rhs ) )
  84370. {
  84371. }
  84372. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84373. RenderPassMultiviewCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_,
  84374. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ = {},
  84375. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ = {},
  84376. const void * pNext_ = nullptr )
  84377. : pNext( pNext_ )
  84378. , subpassCount( static_cast<uint32_t>( viewMasks_.size() ) )
  84379. , pViewMasks( viewMasks_.data() )
  84380. , dependencyCount( static_cast<uint32_t>( viewOffsets_.size() ) )
  84381. , pViewOffsets( viewOffsets_.data() )
  84382. , correlationMaskCount( static_cast<uint32_t>( correlationMasks_.size() ) )
  84383. , pCorrelationMasks( correlationMasks_.data() )
  84384. {
  84385. }
  84386. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84387. RenderPassMultiviewCreateInfo & operator=( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84388. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84389. RenderPassMultiviewCreateInfo & operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  84390. {
  84391. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo const *>( &rhs );
  84392. return *this;
  84393. }
  84394. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84395. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84396. {
  84397. pNext = pNext_;
  84398. return *this;
  84399. }
  84400. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT
  84401. {
  84402. subpassCount = subpassCount_;
  84403. return *this;
  84404. }
  84405. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t * pViewMasks_ ) VULKAN_HPP_NOEXCEPT
  84406. {
  84407. pViewMasks = pViewMasks_;
  84408. return *this;
  84409. }
  84410. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84411. RenderPassMultiviewCreateInfo & setViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & viewMasks_ ) VULKAN_HPP_NOEXCEPT
  84412. {
  84413. subpassCount = static_cast<uint32_t>( viewMasks_.size() );
  84414. pViewMasks = viewMasks_.data();
  84415. return *this;
  84416. }
  84417. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84418. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT
  84419. {
  84420. dependencyCount = dependencyCount_;
  84421. return *this;
  84422. }
  84423. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t * pViewOffsets_ ) VULKAN_HPP_NOEXCEPT
  84424. {
  84425. pViewOffsets = pViewOffsets_;
  84426. return *this;
  84427. }
  84428. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84429. RenderPassMultiviewCreateInfo & setViewOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const int32_t> const & viewOffsets_ ) VULKAN_HPP_NOEXCEPT
  84430. {
  84431. dependencyCount = static_cast<uint32_t>( viewOffsets_.size() );
  84432. pViewOffsets = viewOffsets_.data();
  84433. return *this;
  84434. }
  84435. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84436. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT
  84437. {
  84438. correlationMaskCount = correlationMaskCount_;
  84439. return *this;
  84440. }
  84441. VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t * pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT
  84442. {
  84443. pCorrelationMasks = pCorrelationMasks_;
  84444. return *this;
  84445. }
  84446. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84447. RenderPassMultiviewCreateInfo &
  84448. setCorrelationMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & correlationMasks_ ) VULKAN_HPP_NOEXCEPT
  84449. {
  84450. correlationMaskCount = static_cast<uint32_t>( correlationMasks_.size() );
  84451. pCorrelationMasks = correlationMasks_.data();
  84452. return *this;
  84453. }
  84454. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84455. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84456. operator VkRenderPassMultiviewCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  84457. {
  84458. return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo *>( this );
  84459. }
  84460. operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT
  84461. {
  84462. return *reinterpret_cast<VkRenderPassMultiviewCreateInfo *>( this );
  84463. }
  84464. #if defined( VULKAN_HPP_USE_REFLECT )
  84465. # if 14 <= VULKAN_HPP_CPP_VERSION
  84466. auto
  84467. # else
  84468. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  84469. const void * const &,
  84470. uint32_t const &,
  84471. const uint32_t * const &,
  84472. uint32_t const &,
  84473. const int32_t * const &,
  84474. uint32_t const &,
  84475. const uint32_t * const &>
  84476. # endif
  84477. reflect() const VULKAN_HPP_NOEXCEPT
  84478. {
  84479. return std::tie( sType, pNext, subpassCount, pViewMasks, dependencyCount, pViewOffsets, correlationMaskCount, pCorrelationMasks );
  84480. }
  84481. #endif
  84482. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84483. auto operator<=>( RenderPassMultiviewCreateInfo const & ) const = default;
  84484. #else
  84485. bool operator==( RenderPassMultiviewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  84486. {
  84487. # if defined( VULKAN_HPP_USE_REFLECT )
  84488. return this->reflect() == rhs.reflect();
  84489. # else
  84490. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subpassCount == rhs.subpassCount ) && ( pViewMasks == rhs.pViewMasks ) &&
  84491. ( dependencyCount == rhs.dependencyCount ) && ( pViewOffsets == rhs.pViewOffsets ) && ( correlationMaskCount == rhs.correlationMaskCount ) &&
  84492. ( pCorrelationMasks == rhs.pCorrelationMasks );
  84493. # endif
  84494. }
  84495. bool operator!=( RenderPassMultiviewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  84496. {
  84497. return !operator==( rhs );
  84498. }
  84499. #endif
  84500. public:
  84501. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo;
  84502. const void * pNext = {};
  84503. uint32_t subpassCount = {};
  84504. const uint32_t * pViewMasks = {};
  84505. uint32_t dependencyCount = {};
  84506. const int32_t * pViewOffsets = {};
  84507. uint32_t correlationMaskCount = {};
  84508. const uint32_t * pCorrelationMasks = {};
  84509. };
  84510. template <>
  84511. struct CppType<StructureType, StructureType::eRenderPassMultiviewCreateInfo>
  84512. {
  84513. using Type = RenderPassMultiviewCreateInfo;
  84514. };
  84515. using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
  84516. struct SubpassSampleLocationsEXT
  84517. {
  84518. using NativeType = VkSubpassSampleLocationsEXT;
  84519. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84520. VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( uint32_t subpassIndex_ = {},
  84521. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT
  84522. : subpassIndex( subpassIndex_ )
  84523. , sampleLocationsInfo( sampleLocationsInfo_ )
  84524. {
  84525. }
  84526. VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84527. SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84528. : SubpassSampleLocationsEXT( *reinterpret_cast<SubpassSampleLocationsEXT const *>( &rhs ) )
  84529. {
  84530. }
  84531. SubpassSampleLocationsEXT & operator=( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84532. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84533. SubpassSampleLocationsEXT & operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84534. {
  84535. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT const *>( &rhs );
  84536. return *this;
  84537. }
  84538. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84539. VULKAN_HPP_CONSTEXPR_14 SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT
  84540. {
  84541. subpassIndex = subpassIndex_;
  84542. return *this;
  84543. }
  84544. VULKAN_HPP_CONSTEXPR_14 SubpassSampleLocationsEXT &
  84545. setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT
  84546. {
  84547. sampleLocationsInfo = sampleLocationsInfo_;
  84548. return *this;
  84549. }
  84550. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84551. operator VkSubpassSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT
  84552. {
  84553. return *reinterpret_cast<const VkSubpassSampleLocationsEXT *>( this );
  84554. }
  84555. operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT
  84556. {
  84557. return *reinterpret_cast<VkSubpassSampleLocationsEXT *>( this );
  84558. }
  84559. #if defined( VULKAN_HPP_USE_REFLECT )
  84560. # if 14 <= VULKAN_HPP_CPP_VERSION
  84561. auto
  84562. # else
  84563. std::tuple<uint32_t const &, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const &>
  84564. # endif
  84565. reflect() const VULKAN_HPP_NOEXCEPT
  84566. {
  84567. return std::tie( subpassIndex, sampleLocationsInfo );
  84568. }
  84569. #endif
  84570. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84571. auto operator<=>( SubpassSampleLocationsEXT const & ) const = default;
  84572. #else
  84573. bool operator==( SubpassSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84574. {
  84575. # if defined( VULKAN_HPP_USE_REFLECT )
  84576. return this->reflect() == rhs.reflect();
  84577. # else
  84578. return ( subpassIndex == rhs.subpassIndex ) && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
  84579. # endif
  84580. }
  84581. bool operator!=( SubpassSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84582. {
  84583. return !operator==( rhs );
  84584. }
  84585. #endif
  84586. public:
  84587. uint32_t subpassIndex = {};
  84588. VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {};
  84589. };
  84590. struct RenderPassSampleLocationsBeginInfoEXT
  84591. {
  84592. using NativeType = VkRenderPassSampleLocationsBeginInfoEXT;
  84593. static const bool allowDuplicate = false;
  84594. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
  84595. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84596. VULKAN_HPP_CONSTEXPR
  84597. RenderPassSampleLocationsBeginInfoEXT( uint32_t attachmentInitialSampleLocationsCount_ = {},
  84598. const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations_ = {},
  84599. uint32_t postSubpassSampleLocationsCount_ = {},
  84600. const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations_ = {},
  84601. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84602. : pNext( pNext_ )
  84603. , attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ )
  84604. , pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ )
  84605. , postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ )
  84606. , pPostSubpassSampleLocations( pPostSubpassSampleLocations_ )
  84607. {
  84608. }
  84609. VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84610. RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84611. : RenderPassSampleLocationsBeginInfoEXT( *reinterpret_cast<RenderPassSampleLocationsBeginInfoEXT const *>( &rhs ) )
  84612. {
  84613. }
  84614. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84615. RenderPassSampleLocationsBeginInfoEXT(
  84616. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_,
  84617. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ = {},
  84618. const void * pNext_ = nullptr )
  84619. : pNext( pNext_ )
  84620. , attachmentInitialSampleLocationsCount( static_cast<uint32_t>( attachmentInitialSampleLocations_.size() ) )
  84621. , pAttachmentInitialSampleLocations( attachmentInitialSampleLocations_.data() )
  84622. , postSubpassSampleLocationsCount( static_cast<uint32_t>( postSubpassSampleLocations_.size() ) )
  84623. , pPostSubpassSampleLocations( postSubpassSampleLocations_.data() )
  84624. {
  84625. }
  84626. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84627. RenderPassSampleLocationsBeginInfoEXT & operator=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84628. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84629. RenderPassSampleLocationsBeginInfoEXT & operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84630. {
  84631. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT const *>( &rhs );
  84632. return *this;
  84633. }
  84634. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84635. VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84636. {
  84637. pNext = pNext_;
  84638. return *this;
  84639. }
  84640. VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT &
  84641. setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
  84642. {
  84643. attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_;
  84644. return *this;
  84645. }
  84646. VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT &
  84647. setPAttachmentInitialSampleLocations( const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT
  84648. {
  84649. pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_;
  84650. return *this;
  84651. }
  84652. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84653. RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations(
  84654. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT> const & attachmentInitialSampleLocations_ )
  84655. VULKAN_HPP_NOEXCEPT
  84656. {
  84657. attachmentInitialSampleLocationsCount = static_cast<uint32_t>( attachmentInitialSampleLocations_.size() );
  84658. pAttachmentInitialSampleLocations = attachmentInitialSampleLocations_.data();
  84659. return *this;
  84660. }
  84661. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84662. VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT &
  84663. setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT
  84664. {
  84665. postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_;
  84666. return *this;
  84667. }
  84668. VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT &
  84669. setPPostSubpassSampleLocations( const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT
  84670. {
  84671. pPostSubpassSampleLocations = pPostSubpassSampleLocations_;
  84672. return *this;
  84673. }
  84674. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84675. RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations(
  84676. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT> const & postSubpassSampleLocations_ )
  84677. VULKAN_HPP_NOEXCEPT
  84678. {
  84679. postSubpassSampleLocationsCount = static_cast<uint32_t>( postSubpassSampleLocations_.size() );
  84680. pPostSubpassSampleLocations = postSubpassSampleLocations_.data();
  84681. return *this;
  84682. }
  84683. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  84684. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84685. operator VkRenderPassSampleLocationsBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  84686. {
  84687. return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT *>( this );
  84688. }
  84689. operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT
  84690. {
  84691. return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT *>( this );
  84692. }
  84693. #if defined( VULKAN_HPP_USE_REFLECT )
  84694. # if 14 <= VULKAN_HPP_CPP_VERSION
  84695. auto
  84696. # else
  84697. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  84698. const void * const &,
  84699. uint32_t const &,
  84700. const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * const &,
  84701. uint32_t const &,
  84702. const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * const &>
  84703. # endif
  84704. reflect() const VULKAN_HPP_NOEXCEPT
  84705. {
  84706. return std::tie(
  84707. sType, pNext, attachmentInitialSampleLocationsCount, pAttachmentInitialSampleLocations, postSubpassSampleLocationsCount, pPostSubpassSampleLocations );
  84708. }
  84709. #endif
  84710. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84711. auto operator<=>( RenderPassSampleLocationsBeginInfoEXT const & ) const = default;
  84712. #else
  84713. bool operator==( RenderPassSampleLocationsBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84714. {
  84715. # if defined( VULKAN_HPP_USE_REFLECT )
  84716. return this->reflect() == rhs.reflect();
  84717. # else
  84718. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount ) &&
  84719. ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations ) &&
  84720. ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount ) && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations );
  84721. # endif
  84722. }
  84723. bool operator!=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84724. {
  84725. return !operator==( rhs );
  84726. }
  84727. #endif
  84728. public:
  84729. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
  84730. const void * pNext = {};
  84731. uint32_t attachmentInitialSampleLocationsCount = {};
  84732. const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations = {};
  84733. uint32_t postSubpassSampleLocationsCount = {};
  84734. const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations = {};
  84735. };
  84736. template <>
  84737. struct CppType<StructureType, StructureType::eRenderPassSampleLocationsBeginInfoEXT>
  84738. {
  84739. using Type = RenderPassSampleLocationsBeginInfoEXT;
  84740. };
  84741. struct RenderPassSubpassFeedbackInfoEXT
  84742. {
  84743. using NativeType = VkRenderPassSubpassFeedbackInfoEXT;
  84744. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84745. VULKAN_HPP_CONSTEXPR_14
  84746. RenderPassSubpassFeedbackInfoEXT( VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT subpassMergeStatus_ = VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT::eMerged,
  84747. std::array<char, VK_MAX_DESCRIPTION_SIZE> const & description_ = {},
  84748. uint32_t postMergeIndex_ = {} ) VULKAN_HPP_NOEXCEPT
  84749. : subpassMergeStatus( subpassMergeStatus_ )
  84750. , description( description_ )
  84751. , postMergeIndex( postMergeIndex_ )
  84752. {
  84753. }
  84754. VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackInfoEXT( RenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84755. RenderPassSubpassFeedbackInfoEXT( VkRenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84756. : RenderPassSubpassFeedbackInfoEXT( *reinterpret_cast<RenderPassSubpassFeedbackInfoEXT const *>( &rhs ) )
  84757. {
  84758. }
  84759. RenderPassSubpassFeedbackInfoEXT & operator=( RenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84760. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84761. RenderPassSubpassFeedbackInfoEXT & operator=( VkRenderPassSubpassFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84762. {
  84763. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT const *>( &rhs );
  84764. return *this;
  84765. }
  84766. operator VkRenderPassSubpassFeedbackInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  84767. {
  84768. return *reinterpret_cast<const VkRenderPassSubpassFeedbackInfoEXT *>( this );
  84769. }
  84770. operator VkRenderPassSubpassFeedbackInfoEXT &() VULKAN_HPP_NOEXCEPT
  84771. {
  84772. return *reinterpret_cast<VkRenderPassSubpassFeedbackInfoEXT *>( this );
  84773. }
  84774. #if defined( VULKAN_HPP_USE_REFLECT )
  84775. # if 14 <= VULKAN_HPP_CPP_VERSION
  84776. auto
  84777. # else
  84778. std::
  84779. tuple<VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT const &, VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> const &, uint32_t const &>
  84780. # endif
  84781. reflect() const VULKAN_HPP_NOEXCEPT
  84782. {
  84783. return std::tie( subpassMergeStatus, description, postMergeIndex );
  84784. }
  84785. #endif
  84786. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84787. auto operator<=>( RenderPassSubpassFeedbackInfoEXT const & ) const = default;
  84788. #else
  84789. bool operator==( RenderPassSubpassFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84790. {
  84791. # if defined( VULKAN_HPP_USE_REFLECT )
  84792. return this->reflect() == rhs.reflect();
  84793. # else
  84794. return ( subpassMergeStatus == rhs.subpassMergeStatus ) && ( description == rhs.description ) && ( postMergeIndex == rhs.postMergeIndex );
  84795. # endif
  84796. }
  84797. bool operator!=( RenderPassSubpassFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84798. {
  84799. return !operator==( rhs );
  84800. }
  84801. #endif
  84802. public:
  84803. VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT subpassMergeStatus = VULKAN_HPP_NAMESPACE::SubpassMergeStatusEXT::eMerged;
  84804. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<char, VK_MAX_DESCRIPTION_SIZE> description = {};
  84805. uint32_t postMergeIndex = {};
  84806. };
  84807. struct RenderPassSubpassFeedbackCreateInfoEXT
  84808. {
  84809. using NativeType = VkRenderPassSubpassFeedbackCreateInfoEXT;
  84810. static const bool allowDuplicate = false;
  84811. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSubpassFeedbackCreateInfoEXT;
  84812. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84813. VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback_ = {},
  84814. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84815. : pNext( pNext_ )
  84816. , pSubpassFeedback( pSubpassFeedback_ )
  84817. {
  84818. }
  84819. VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84820. RenderPassSubpassFeedbackCreateInfoEXT( VkRenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84821. : RenderPassSubpassFeedbackCreateInfoEXT( *reinterpret_cast<RenderPassSubpassFeedbackCreateInfoEXT const *>( &rhs ) )
  84822. {
  84823. }
  84824. RenderPassSubpassFeedbackCreateInfoEXT & operator=( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84825. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84826. RenderPassSubpassFeedbackCreateInfoEXT & operator=( VkRenderPassSubpassFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  84827. {
  84828. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT const *>( &rhs );
  84829. return *this;
  84830. }
  84831. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84832. VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84833. {
  84834. pNext = pNext_;
  84835. return *this;
  84836. }
  84837. VULKAN_HPP_CONSTEXPR_14 RenderPassSubpassFeedbackCreateInfoEXT &
  84838. setPSubpassFeedback( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback_ ) VULKAN_HPP_NOEXCEPT
  84839. {
  84840. pSubpassFeedback = pSubpassFeedback_;
  84841. return *this;
  84842. }
  84843. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84844. operator VkRenderPassSubpassFeedbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  84845. {
  84846. return *reinterpret_cast<const VkRenderPassSubpassFeedbackCreateInfoEXT *>( this );
  84847. }
  84848. operator VkRenderPassSubpassFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  84849. {
  84850. return *reinterpret_cast<VkRenderPassSubpassFeedbackCreateInfoEXT *>( this );
  84851. }
  84852. #if defined( VULKAN_HPP_USE_REFLECT )
  84853. # if 14 <= VULKAN_HPP_CPP_VERSION
  84854. auto
  84855. # else
  84856. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * const &>
  84857. # endif
  84858. reflect() const VULKAN_HPP_NOEXCEPT
  84859. {
  84860. return std::tie( sType, pNext, pSubpassFeedback );
  84861. }
  84862. #endif
  84863. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84864. auto operator<=>( RenderPassSubpassFeedbackCreateInfoEXT const & ) const = default;
  84865. #else
  84866. bool operator==( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84867. {
  84868. # if defined( VULKAN_HPP_USE_REFLECT )
  84869. return this->reflect() == rhs.reflect();
  84870. # else
  84871. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pSubpassFeedback == rhs.pSubpassFeedback );
  84872. # endif
  84873. }
  84874. bool operator!=( RenderPassSubpassFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  84875. {
  84876. return !operator==( rhs );
  84877. }
  84878. #endif
  84879. public:
  84880. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSubpassFeedbackCreateInfoEXT;
  84881. const void * pNext = {};
  84882. VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT * pSubpassFeedback = {};
  84883. };
  84884. template <>
  84885. struct CppType<StructureType, StructureType::eRenderPassSubpassFeedbackCreateInfoEXT>
  84886. {
  84887. using Type = RenderPassSubpassFeedbackCreateInfoEXT;
  84888. };
  84889. struct RenderPassTransformBeginInfoQCOM
  84890. {
  84891. using NativeType = VkRenderPassTransformBeginInfoQCOM;
  84892. static const bool allowDuplicate = false;
  84893. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassTransformBeginInfoQCOM;
  84894. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84895. VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM(
  84896. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  84897. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84898. : pNext( pNext_ )
  84899. , transform( transform_ )
  84900. {
  84901. }
  84902. VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84903. RenderPassTransformBeginInfoQCOM( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  84904. : RenderPassTransformBeginInfoQCOM( *reinterpret_cast<RenderPassTransformBeginInfoQCOM const *>( &rhs ) )
  84905. {
  84906. }
  84907. RenderPassTransformBeginInfoQCOM & operator=( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84908. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  84909. RenderPassTransformBeginInfoQCOM & operator=( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  84910. {
  84911. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM const *>( &rhs );
  84912. return *this;
  84913. }
  84914. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  84915. VULKAN_HPP_CONSTEXPR_14 RenderPassTransformBeginInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  84916. {
  84917. pNext = pNext_;
  84918. return *this;
  84919. }
  84920. VULKAN_HPP_CONSTEXPR_14 RenderPassTransformBeginInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT
  84921. {
  84922. transform = transform_;
  84923. return *this;
  84924. }
  84925. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  84926. operator VkRenderPassTransformBeginInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  84927. {
  84928. return *reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM *>( this );
  84929. }
  84930. operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT
  84931. {
  84932. return *reinterpret_cast<VkRenderPassTransformBeginInfoQCOM *>( this );
  84933. }
  84934. #if defined( VULKAN_HPP_USE_REFLECT )
  84935. # if 14 <= VULKAN_HPP_CPP_VERSION
  84936. auto
  84937. # else
  84938. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &>
  84939. # endif
  84940. reflect() const VULKAN_HPP_NOEXCEPT
  84941. {
  84942. return std::tie( sType, pNext, transform );
  84943. }
  84944. #endif
  84945. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  84946. auto operator<=>( RenderPassTransformBeginInfoQCOM const & ) const = default;
  84947. #else
  84948. bool operator==( RenderPassTransformBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  84949. {
  84950. # if defined( VULKAN_HPP_USE_REFLECT )
  84951. return this->reflect() == rhs.reflect();
  84952. # else
  84953. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transform == rhs.transform );
  84954. # endif
  84955. }
  84956. bool operator!=( RenderPassTransformBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  84957. {
  84958. return !operator==( rhs );
  84959. }
  84960. #endif
  84961. public:
  84962. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassTransformBeginInfoQCOM;
  84963. void * pNext = {};
  84964. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  84965. };
  84966. template <>
  84967. struct CppType<StructureType, StructureType::eRenderPassTransformBeginInfoQCOM>
  84968. {
  84969. using Type = RenderPassTransformBeginInfoQCOM;
  84970. };
  84971. struct RenderingAreaInfoKHR
  84972. {
  84973. using NativeType = VkRenderingAreaInfoKHR;
  84974. static const bool allowDuplicate = false;
  84975. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingAreaInfoKHR;
  84976. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  84977. VULKAN_HPP_CONSTEXPR RenderingAreaInfoKHR( uint32_t viewMask_ = {},
  84978. uint32_t colorAttachmentCount_ = {},
  84979. const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ = {},
  84980. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  84981. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  84982. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  84983. : pNext( pNext_ )
  84984. , viewMask( viewMask_ )
  84985. , colorAttachmentCount( colorAttachmentCount_ )
  84986. , pColorAttachmentFormats( pColorAttachmentFormats_ )
  84987. , depthAttachmentFormat( depthAttachmentFormat_ )
  84988. , stencilAttachmentFormat( stencilAttachmentFormat_ )
  84989. {
  84990. }
  84991. VULKAN_HPP_CONSTEXPR RenderingAreaInfoKHR( RenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  84992. RenderingAreaInfoKHR( VkRenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  84993. : RenderingAreaInfoKHR( *reinterpret_cast<RenderingAreaInfoKHR const *>( &rhs ) )
  84994. {
  84995. }
  84996. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  84997. RenderingAreaInfoKHR( uint32_t viewMask_,
  84998. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_,
  84999. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  85000. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  85001. const void * pNext_ = nullptr )
  85002. : pNext( pNext_ )
  85003. , viewMask( viewMask_ )
  85004. , colorAttachmentCount( static_cast<uint32_t>( colorAttachmentFormats_.size() ) )
  85005. , pColorAttachmentFormats( colorAttachmentFormats_.data() )
  85006. , depthAttachmentFormat( depthAttachmentFormat_ )
  85007. , stencilAttachmentFormat( stencilAttachmentFormat_ )
  85008. {
  85009. }
  85010. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  85011. RenderingAreaInfoKHR & operator=( RenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85012. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85013. RenderingAreaInfoKHR & operator=( VkRenderingAreaInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  85014. {
  85015. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR const *>( &rhs );
  85016. return *this;
  85017. }
  85018. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85019. VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85020. {
  85021. pNext = pNext_;
  85022. return *this;
  85023. }
  85024. VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
  85025. {
  85026. viewMask = viewMask_;
  85027. return *this;
  85028. }
  85029. VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  85030. {
  85031. colorAttachmentCount = colorAttachmentCount_;
  85032. return *this;
  85033. }
  85034. VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR &
  85035. setPColorAttachmentFormats( const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
  85036. {
  85037. pColorAttachmentFormats = pColorAttachmentFormats_;
  85038. return *this;
  85039. }
  85040. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  85041. RenderingAreaInfoKHR & setColorAttachmentFormats(
  85042. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Format> const & colorAttachmentFormats_ ) VULKAN_HPP_NOEXCEPT
  85043. {
  85044. colorAttachmentCount = static_cast<uint32_t>( colorAttachmentFormats_.size() );
  85045. pColorAttachmentFormats = colorAttachmentFormats_.data();
  85046. return *this;
  85047. }
  85048. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  85049. VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setDepthAttachmentFormat( VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
  85050. {
  85051. depthAttachmentFormat = depthAttachmentFormat_;
  85052. return *this;
  85053. }
  85054. VULKAN_HPP_CONSTEXPR_14 RenderingAreaInfoKHR & setStencilAttachmentFormat( VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat_ ) VULKAN_HPP_NOEXCEPT
  85055. {
  85056. stencilAttachmentFormat = stencilAttachmentFormat_;
  85057. return *this;
  85058. }
  85059. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85060. operator VkRenderingAreaInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  85061. {
  85062. return *reinterpret_cast<const VkRenderingAreaInfoKHR *>( this );
  85063. }
  85064. operator VkRenderingAreaInfoKHR &() VULKAN_HPP_NOEXCEPT
  85065. {
  85066. return *reinterpret_cast<VkRenderingAreaInfoKHR *>( this );
  85067. }
  85068. #if defined( VULKAN_HPP_USE_REFLECT )
  85069. # if 14 <= VULKAN_HPP_CPP_VERSION
  85070. auto
  85071. # else
  85072. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  85073. const void * const &,
  85074. uint32_t const &,
  85075. uint32_t const &,
  85076. const VULKAN_HPP_NAMESPACE::Format * const &,
  85077. VULKAN_HPP_NAMESPACE::Format const &,
  85078. VULKAN_HPP_NAMESPACE::Format const &>
  85079. # endif
  85080. reflect() const VULKAN_HPP_NOEXCEPT
  85081. {
  85082. return std::tie( sType, pNext, viewMask, colorAttachmentCount, pColorAttachmentFormats, depthAttachmentFormat, stencilAttachmentFormat );
  85083. }
  85084. #endif
  85085. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  85086. auto operator<=>( RenderingAreaInfoKHR const & ) const = default;
  85087. #else
  85088. bool operator==( RenderingAreaInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  85089. {
  85090. # if defined( VULKAN_HPP_USE_REFLECT )
  85091. return this->reflect() == rhs.reflect();
  85092. # else
  85093. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewMask == rhs.viewMask ) && ( colorAttachmentCount == rhs.colorAttachmentCount ) &&
  85094. ( pColorAttachmentFormats == rhs.pColorAttachmentFormats ) && ( depthAttachmentFormat == rhs.depthAttachmentFormat ) &&
  85095. ( stencilAttachmentFormat == rhs.stencilAttachmentFormat );
  85096. # endif
  85097. }
  85098. bool operator!=( RenderingAreaInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  85099. {
  85100. return !operator==( rhs );
  85101. }
  85102. #endif
  85103. public:
  85104. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingAreaInfoKHR;
  85105. const void * pNext = {};
  85106. uint32_t viewMask = {};
  85107. uint32_t colorAttachmentCount = {};
  85108. const VULKAN_HPP_NAMESPACE::Format * pColorAttachmentFormats = {};
  85109. VULKAN_HPP_NAMESPACE::Format depthAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  85110. VULKAN_HPP_NAMESPACE::Format stencilAttachmentFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  85111. };
  85112. template <>
  85113. struct CppType<StructureType, StructureType::eRenderingAreaInfoKHR>
  85114. {
  85115. using Type = RenderingAreaInfoKHR;
  85116. };
  85117. struct RenderingAttachmentInfo
  85118. {
  85119. using NativeType = VkRenderingAttachmentInfo;
  85120. static const bool allowDuplicate = false;
  85121. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingAttachmentInfo;
  85122. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  85123. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  85124. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  85125. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits resolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone,
  85126. VULKAN_HPP_NAMESPACE::ImageView resolveImageView_ = {},
  85127. VULKAN_HPP_NAMESPACE::ImageLayout resolveImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  85128. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad,
  85129. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore,
  85130. VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {},
  85131. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  85132. : pNext( pNext_ )
  85133. , imageView( imageView_ )
  85134. , imageLayout( imageLayout_ )
  85135. , resolveMode( resolveMode_ )
  85136. , resolveImageView( resolveImageView_ )
  85137. , resolveImageLayout( resolveImageLayout_ )
  85138. , loadOp( loadOp_ )
  85139. , storeOp( storeOp_ )
  85140. , clearValue( clearValue_ )
  85141. {
  85142. }
  85143. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo( RenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85144. RenderingAttachmentInfo( VkRenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  85145. : RenderingAttachmentInfo( *reinterpret_cast<RenderingAttachmentInfo const *>( &rhs ) )
  85146. {
  85147. }
  85148. RenderingAttachmentInfo & operator=( RenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85149. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85150. RenderingAttachmentInfo & operator=( VkRenderingAttachmentInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  85151. {
  85152. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo const *>( &rhs );
  85153. return *this;
  85154. }
  85155. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85156. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85157. {
  85158. pNext = pNext_;
  85159. return *this;
  85160. }
  85161. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  85162. {
  85163. imageView = imageView_;
  85164. return *this;
  85165. }
  85166. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
  85167. {
  85168. imageLayout = imageLayout_;
  85169. return *this;
  85170. }
  85171. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits resolveMode_ ) VULKAN_HPP_NOEXCEPT
  85172. {
  85173. resolveMode = resolveMode_;
  85174. return *this;
  85175. }
  85176. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setResolveImageView( VULKAN_HPP_NAMESPACE::ImageView resolveImageView_ ) VULKAN_HPP_NOEXCEPT
  85177. {
  85178. resolveImageView = resolveImageView_;
  85179. return *this;
  85180. }
  85181. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setResolveImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout resolveImageLayout_ ) VULKAN_HPP_NOEXCEPT
  85182. {
  85183. resolveImageLayout = resolveImageLayout_;
  85184. return *this;
  85185. }
  85186. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT
  85187. {
  85188. loadOp = loadOp_;
  85189. return *this;
  85190. }
  85191. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT
  85192. {
  85193. storeOp = storeOp_;
  85194. return *this;
  85195. }
  85196. VULKAN_HPP_CONSTEXPR_14 RenderingAttachmentInfo & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT
  85197. {
  85198. clearValue = clearValue_;
  85199. return *this;
  85200. }
  85201. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85202. operator VkRenderingAttachmentInfo const &() const VULKAN_HPP_NOEXCEPT
  85203. {
  85204. return *reinterpret_cast<const VkRenderingAttachmentInfo *>( this );
  85205. }
  85206. operator VkRenderingAttachmentInfo &() VULKAN_HPP_NOEXCEPT
  85207. {
  85208. return *reinterpret_cast<VkRenderingAttachmentInfo *>( this );
  85209. }
  85210. #if defined( VULKAN_HPP_USE_REFLECT )
  85211. # if 14 <= VULKAN_HPP_CPP_VERSION
  85212. auto
  85213. # else
  85214. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  85215. const void * const &,
  85216. VULKAN_HPP_NAMESPACE::ImageView const &,
  85217. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  85218. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits const &,
  85219. VULKAN_HPP_NAMESPACE::ImageView const &,
  85220. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  85221. VULKAN_HPP_NAMESPACE::AttachmentLoadOp const &,
  85222. VULKAN_HPP_NAMESPACE::AttachmentStoreOp const &,
  85223. VULKAN_HPP_NAMESPACE::ClearValue const &>
  85224. # endif
  85225. reflect() const VULKAN_HPP_NOEXCEPT
  85226. {
  85227. return std::tie( sType, pNext, imageView, imageLayout, resolveMode, resolveImageView, resolveImageLayout, loadOp, storeOp, clearValue );
  85228. }
  85229. #endif
  85230. public:
  85231. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingAttachmentInfo;
  85232. const void * pNext = {};
  85233. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  85234. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  85235. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits resolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
  85236. VULKAN_HPP_NAMESPACE::ImageView resolveImageView = {};
  85237. VULKAN_HPP_NAMESPACE::ImageLayout resolveImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  85238. VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad;
  85239. VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore;
  85240. VULKAN_HPP_NAMESPACE::ClearValue clearValue = {};
  85241. };
  85242. template <>
  85243. struct CppType<StructureType, StructureType::eRenderingAttachmentInfo>
  85244. {
  85245. using Type = RenderingAttachmentInfo;
  85246. };
  85247. using RenderingAttachmentInfoKHR = RenderingAttachmentInfo;
  85248. struct RenderingFragmentDensityMapAttachmentInfoEXT
  85249. {
  85250. using NativeType = VkRenderingFragmentDensityMapAttachmentInfoEXT;
  85251. static const bool allowDuplicate = false;
  85252. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT;
  85253. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  85254. VULKAN_HPP_CONSTEXPR
  85255. RenderingFragmentDensityMapAttachmentInfoEXT( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  85256. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  85257. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  85258. : pNext( pNext_ )
  85259. , imageView( imageView_ )
  85260. , imageLayout( imageLayout_ )
  85261. {
  85262. }
  85263. VULKAN_HPP_CONSTEXPR RenderingFragmentDensityMapAttachmentInfoEXT( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85264. RenderingFragmentDensityMapAttachmentInfoEXT( VkRenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  85265. : RenderingFragmentDensityMapAttachmentInfoEXT( *reinterpret_cast<RenderingFragmentDensityMapAttachmentInfoEXT const *>( &rhs ) )
  85266. {
  85267. }
  85268. RenderingFragmentDensityMapAttachmentInfoEXT & operator=( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85269. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85270. RenderingFragmentDensityMapAttachmentInfoEXT & operator=( VkRenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  85271. {
  85272. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT const *>( &rhs );
  85273. return *this;
  85274. }
  85275. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85276. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentDensityMapAttachmentInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85277. {
  85278. pNext = pNext_;
  85279. return *this;
  85280. }
  85281. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentDensityMapAttachmentInfoEXT & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  85282. {
  85283. imageView = imageView_;
  85284. return *this;
  85285. }
  85286. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentDensityMapAttachmentInfoEXT & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
  85287. {
  85288. imageLayout = imageLayout_;
  85289. return *this;
  85290. }
  85291. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85292. operator VkRenderingFragmentDensityMapAttachmentInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  85293. {
  85294. return *reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT *>( this );
  85295. }
  85296. operator VkRenderingFragmentDensityMapAttachmentInfoEXT &() VULKAN_HPP_NOEXCEPT
  85297. {
  85298. return *reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT *>( this );
  85299. }
  85300. #if defined( VULKAN_HPP_USE_REFLECT )
  85301. # if 14 <= VULKAN_HPP_CPP_VERSION
  85302. auto
  85303. # else
  85304. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  85305. const void * const &,
  85306. VULKAN_HPP_NAMESPACE::ImageView const &,
  85307. VULKAN_HPP_NAMESPACE::ImageLayout const &>
  85308. # endif
  85309. reflect() const VULKAN_HPP_NOEXCEPT
  85310. {
  85311. return std::tie( sType, pNext, imageView, imageLayout );
  85312. }
  85313. #endif
  85314. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  85315. auto operator<=>( RenderingFragmentDensityMapAttachmentInfoEXT const & ) const = default;
  85316. #else
  85317. bool operator==( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  85318. {
  85319. # if defined( VULKAN_HPP_USE_REFLECT )
  85320. return this->reflect() == rhs.reflect();
  85321. # else
  85322. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageView == rhs.imageView ) && ( imageLayout == rhs.imageLayout );
  85323. # endif
  85324. }
  85325. bool operator!=( RenderingFragmentDensityMapAttachmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  85326. {
  85327. return !operator==( rhs );
  85328. }
  85329. #endif
  85330. public:
  85331. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT;
  85332. const void * pNext = {};
  85333. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  85334. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  85335. };
  85336. template <>
  85337. struct CppType<StructureType, StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT>
  85338. {
  85339. using Type = RenderingFragmentDensityMapAttachmentInfoEXT;
  85340. };
  85341. struct RenderingFragmentShadingRateAttachmentInfoKHR
  85342. {
  85343. using NativeType = VkRenderingFragmentShadingRateAttachmentInfoKHR;
  85344. static const bool allowDuplicate = false;
  85345. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR;
  85346. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  85347. VULKAN_HPP_CONSTEXPR
  85348. RenderingFragmentShadingRateAttachmentInfoKHR( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {},
  85349. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  85350. VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {},
  85351. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  85352. : pNext( pNext_ )
  85353. , imageView( imageView_ )
  85354. , imageLayout( imageLayout_ )
  85355. , shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ )
  85356. {
  85357. }
  85358. VULKAN_HPP_CONSTEXPR
  85359. RenderingFragmentShadingRateAttachmentInfoKHR( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85360. RenderingFragmentShadingRateAttachmentInfoKHR( VkRenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  85361. : RenderingFragmentShadingRateAttachmentInfoKHR( *reinterpret_cast<RenderingFragmentShadingRateAttachmentInfoKHR const *>( &rhs ) )
  85362. {
  85363. }
  85364. RenderingFragmentShadingRateAttachmentInfoKHR & operator=( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85365. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85366. RenderingFragmentShadingRateAttachmentInfoKHR & operator=( VkRenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  85367. {
  85368. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR const *>( &rhs );
  85369. return *this;
  85370. }
  85371. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85372. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85373. {
  85374. pNext = pNext_;
  85375. return *this;
  85376. }
  85377. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT
  85378. {
  85379. imageView = imageView_;
  85380. return *this;
  85381. }
  85382. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT
  85383. {
  85384. imageLayout = imageLayout_;
  85385. return *this;
  85386. }
  85387. VULKAN_HPP_CONSTEXPR_14 RenderingFragmentShadingRateAttachmentInfoKHR &
  85388. setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT
  85389. {
  85390. shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_;
  85391. return *this;
  85392. }
  85393. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85394. operator VkRenderingFragmentShadingRateAttachmentInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  85395. {
  85396. return *reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR *>( this );
  85397. }
  85398. operator VkRenderingFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT
  85399. {
  85400. return *reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR *>( this );
  85401. }
  85402. #if defined( VULKAN_HPP_USE_REFLECT )
  85403. # if 14 <= VULKAN_HPP_CPP_VERSION
  85404. auto
  85405. # else
  85406. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  85407. const void * const &,
  85408. VULKAN_HPP_NAMESPACE::ImageView const &,
  85409. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  85410. VULKAN_HPP_NAMESPACE::Extent2D const &>
  85411. # endif
  85412. reflect() const VULKAN_HPP_NOEXCEPT
  85413. {
  85414. return std::tie( sType, pNext, imageView, imageLayout, shadingRateAttachmentTexelSize );
  85415. }
  85416. #endif
  85417. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  85418. auto operator<=>( RenderingFragmentShadingRateAttachmentInfoKHR const & ) const = default;
  85419. #else
  85420. bool operator==( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  85421. {
  85422. # if defined( VULKAN_HPP_USE_REFLECT )
  85423. return this->reflect() == rhs.reflect();
  85424. # else
  85425. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageView == rhs.imageView ) && ( imageLayout == rhs.imageLayout ) &&
  85426. ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize );
  85427. # endif
  85428. }
  85429. bool operator!=( RenderingFragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  85430. {
  85431. return !operator==( rhs );
  85432. }
  85433. #endif
  85434. public:
  85435. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR;
  85436. const void * pNext = {};
  85437. VULKAN_HPP_NAMESPACE::ImageView imageView = {};
  85438. VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  85439. VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {};
  85440. };
  85441. template <>
  85442. struct CppType<StructureType, StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR>
  85443. {
  85444. using Type = RenderingFragmentShadingRateAttachmentInfoKHR;
  85445. };
  85446. struct RenderingInfo
  85447. {
  85448. using NativeType = VkRenderingInfo;
  85449. static const bool allowDuplicate = false;
  85450. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderingInfo;
  85451. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  85452. VULKAN_HPP_CONSTEXPR_14 RenderingInfo( VULKAN_HPP_NAMESPACE::RenderingFlags flags_ = {},
  85453. VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {},
  85454. uint32_t layerCount_ = {},
  85455. uint32_t viewMask_ = {},
  85456. uint32_t colorAttachmentCount_ = {},
  85457. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pColorAttachments_ = {},
  85458. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment_ = {},
  85459. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ = {},
  85460. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  85461. : pNext( pNext_ )
  85462. , flags( flags_ )
  85463. , renderArea( renderArea_ )
  85464. , layerCount( layerCount_ )
  85465. , viewMask( viewMask_ )
  85466. , colorAttachmentCount( colorAttachmentCount_ )
  85467. , pColorAttachments( pColorAttachments_ )
  85468. , pDepthAttachment( pDepthAttachment_ )
  85469. , pStencilAttachment( pStencilAttachment_ )
  85470. {
  85471. }
  85472. VULKAN_HPP_CONSTEXPR_14 RenderingInfo( RenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85473. RenderingInfo( VkRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT : RenderingInfo( *reinterpret_cast<RenderingInfo const *>( &rhs ) ) {}
  85474. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  85475. RenderingInfo( VULKAN_HPP_NAMESPACE::RenderingFlags flags_,
  85476. VULKAN_HPP_NAMESPACE::Rect2D renderArea_,
  85477. uint32_t layerCount_,
  85478. uint32_t viewMask_,
  85479. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo> const & colorAttachments_,
  85480. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment_ = {},
  85481. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ = {},
  85482. const void * pNext_ = nullptr )
  85483. : pNext( pNext_ )
  85484. , flags( flags_ )
  85485. , renderArea( renderArea_ )
  85486. , layerCount( layerCount_ )
  85487. , viewMask( viewMask_ )
  85488. , colorAttachmentCount( static_cast<uint32_t>( colorAttachments_.size() ) )
  85489. , pColorAttachments( colorAttachments_.data() )
  85490. , pDepthAttachment( pDepthAttachment_ )
  85491. , pStencilAttachment( pStencilAttachment_ )
  85492. {
  85493. }
  85494. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  85495. RenderingInfo & operator=( RenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85496. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85497. RenderingInfo & operator=( VkRenderingInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  85498. {
  85499. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::RenderingInfo const *>( &rhs );
  85500. return *this;
  85501. }
  85502. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85503. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85504. {
  85505. pNext = pNext_;
  85506. return *this;
  85507. }
  85508. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderingFlags flags_ ) VULKAN_HPP_NOEXCEPT
  85509. {
  85510. flags = flags_;
  85511. return *this;
  85512. }
  85513. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT
  85514. {
  85515. renderArea = renderArea_;
  85516. return *this;
  85517. }
  85518. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  85519. {
  85520. layerCount = layerCount_;
  85521. return *this;
  85522. }
  85523. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT
  85524. {
  85525. viewMask = viewMask_;
  85526. return *this;
  85527. }
  85528. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT
  85529. {
  85530. colorAttachmentCount = colorAttachmentCount_;
  85531. return *this;
  85532. }
  85533. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setPColorAttachments( const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT
  85534. {
  85535. pColorAttachments = pColorAttachments_;
  85536. return *this;
  85537. }
  85538. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  85539. RenderingInfo & setColorAttachments(
  85540. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo> const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT
  85541. {
  85542. colorAttachmentCount = static_cast<uint32_t>( colorAttachments_.size() );
  85543. pColorAttachments = colorAttachments_.data();
  85544. return *this;
  85545. }
  85546. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  85547. VULKAN_HPP_CONSTEXPR_14 RenderingInfo & setPDepthAttachment( const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment_ ) VULKAN_HPP_NOEXCEPT
  85548. {
  85549. pDepthAttachment = pDepthAttachment_;
  85550. return *this;
  85551. }
  85552. VULKAN_HPP_CONSTEXPR_14 RenderingInfo &
  85553. setPStencilAttachment( const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment_ ) VULKAN_HPP_NOEXCEPT
  85554. {
  85555. pStencilAttachment = pStencilAttachment_;
  85556. return *this;
  85557. }
  85558. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85559. operator VkRenderingInfo const &() const VULKAN_HPP_NOEXCEPT
  85560. {
  85561. return *reinterpret_cast<const VkRenderingInfo *>( this );
  85562. }
  85563. operator VkRenderingInfo &() VULKAN_HPP_NOEXCEPT
  85564. {
  85565. return *reinterpret_cast<VkRenderingInfo *>( this );
  85566. }
  85567. #if defined( VULKAN_HPP_USE_REFLECT )
  85568. # if 14 <= VULKAN_HPP_CPP_VERSION
  85569. auto
  85570. # else
  85571. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  85572. const void * const &,
  85573. VULKAN_HPP_NAMESPACE::RenderingFlags const &,
  85574. VULKAN_HPP_NAMESPACE::Rect2D const &,
  85575. uint32_t const &,
  85576. uint32_t const &,
  85577. uint32_t const &,
  85578. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * const &,
  85579. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * const &,
  85580. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * const &>
  85581. # endif
  85582. reflect() const VULKAN_HPP_NOEXCEPT
  85583. {
  85584. return std::tie( sType, pNext, flags, renderArea, layerCount, viewMask, colorAttachmentCount, pColorAttachments, pDepthAttachment, pStencilAttachment );
  85585. }
  85586. #endif
  85587. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  85588. auto operator<=>( RenderingInfo const & ) const = default;
  85589. #else
  85590. bool operator==( RenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  85591. {
  85592. # if defined( VULKAN_HPP_USE_REFLECT )
  85593. return this->reflect() == rhs.reflect();
  85594. # else
  85595. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( renderArea == rhs.renderArea ) &&
  85596. ( layerCount == rhs.layerCount ) && ( viewMask == rhs.viewMask ) && ( colorAttachmentCount == rhs.colorAttachmentCount ) &&
  85597. ( pColorAttachments == rhs.pColorAttachments ) && ( pDepthAttachment == rhs.pDepthAttachment ) && ( pStencilAttachment == rhs.pStencilAttachment );
  85598. # endif
  85599. }
  85600. bool operator!=( RenderingInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  85601. {
  85602. return !operator==( rhs );
  85603. }
  85604. #endif
  85605. public:
  85606. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderingInfo;
  85607. const void * pNext = {};
  85608. VULKAN_HPP_NAMESPACE::RenderingFlags flags = {};
  85609. VULKAN_HPP_NAMESPACE::Rect2D renderArea = {};
  85610. uint32_t layerCount = {};
  85611. uint32_t viewMask = {};
  85612. uint32_t colorAttachmentCount = {};
  85613. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pColorAttachments = {};
  85614. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pDepthAttachment = {};
  85615. const VULKAN_HPP_NAMESPACE::RenderingAttachmentInfo * pStencilAttachment = {};
  85616. };
  85617. template <>
  85618. struct CppType<StructureType, StructureType::eRenderingInfo>
  85619. {
  85620. using Type = RenderingInfo;
  85621. };
  85622. using RenderingInfoKHR = RenderingInfo;
  85623. struct ResolveImageInfo2
  85624. {
  85625. using NativeType = VkResolveImageInfo2;
  85626. static const bool allowDuplicate = false;
  85627. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eResolveImageInfo2;
  85628. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  85629. VULKAN_HPP_CONSTEXPR ResolveImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_ = {},
  85630. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  85631. VULKAN_HPP_NAMESPACE::Image dstImage_ = {},
  85632. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined,
  85633. uint32_t regionCount_ = {},
  85634. const VULKAN_HPP_NAMESPACE::ImageResolve2 * pRegions_ = {},
  85635. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  85636. : pNext( pNext_ )
  85637. , srcImage( srcImage_ )
  85638. , srcImageLayout( srcImageLayout_ )
  85639. , dstImage( dstImage_ )
  85640. , dstImageLayout( dstImageLayout_ )
  85641. , regionCount( regionCount_ )
  85642. , pRegions( pRegions_ )
  85643. {
  85644. }
  85645. VULKAN_HPP_CONSTEXPR ResolveImageInfo2( ResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85646. ResolveImageInfo2( VkResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : ResolveImageInfo2( *reinterpret_cast<ResolveImageInfo2 const *>( &rhs ) ) {}
  85647. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  85648. ResolveImageInfo2( VULKAN_HPP_NAMESPACE::Image srcImage_,
  85649. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_,
  85650. VULKAN_HPP_NAMESPACE::Image dstImage_,
  85651. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_,
  85652. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2> const & regions_,
  85653. const void * pNext_ = nullptr )
  85654. : pNext( pNext_ )
  85655. , srcImage( srcImage_ )
  85656. , srcImageLayout( srcImageLayout_ )
  85657. , dstImage( dstImage_ )
  85658. , dstImageLayout( dstImageLayout_ )
  85659. , regionCount( static_cast<uint32_t>( regions_.size() ) )
  85660. , pRegions( regions_.data() )
  85661. {
  85662. }
  85663. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  85664. ResolveImageInfo2 & operator=( ResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85665. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85666. ResolveImageInfo2 & operator=( VkResolveImageInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  85667. {
  85668. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ResolveImageInfo2 const *>( &rhs );
  85669. return *this;
  85670. }
  85671. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85672. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85673. {
  85674. pNext = pNext_;
  85675. return *this;
  85676. }
  85677. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT
  85678. {
  85679. srcImage = srcImage_;
  85680. return *this;
  85681. }
  85682. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT
  85683. {
  85684. srcImageLayout = srcImageLayout_;
  85685. return *this;
  85686. }
  85687. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT
  85688. {
  85689. dstImage = dstImage_;
  85690. return *this;
  85691. }
  85692. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT
  85693. {
  85694. dstImageLayout = dstImageLayout_;
  85695. return *this;
  85696. }
  85697. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT
  85698. {
  85699. regionCount = regionCount_;
  85700. return *this;
  85701. }
  85702. VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2 & setPRegions( const VULKAN_HPP_NAMESPACE::ImageResolve2 * pRegions_ ) VULKAN_HPP_NOEXCEPT
  85703. {
  85704. pRegions = pRegions_;
  85705. return *this;
  85706. }
  85707. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  85708. ResolveImageInfo2 &
  85709. setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ImageResolve2> const & regions_ ) VULKAN_HPP_NOEXCEPT
  85710. {
  85711. regionCount = static_cast<uint32_t>( regions_.size() );
  85712. pRegions = regions_.data();
  85713. return *this;
  85714. }
  85715. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  85716. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85717. operator VkResolveImageInfo2 const &() const VULKAN_HPP_NOEXCEPT
  85718. {
  85719. return *reinterpret_cast<const VkResolveImageInfo2 *>( this );
  85720. }
  85721. operator VkResolveImageInfo2 &() VULKAN_HPP_NOEXCEPT
  85722. {
  85723. return *reinterpret_cast<VkResolveImageInfo2 *>( this );
  85724. }
  85725. #if defined( VULKAN_HPP_USE_REFLECT )
  85726. # if 14 <= VULKAN_HPP_CPP_VERSION
  85727. auto
  85728. # else
  85729. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  85730. const void * const &,
  85731. VULKAN_HPP_NAMESPACE::Image const &,
  85732. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  85733. VULKAN_HPP_NAMESPACE::Image const &,
  85734. VULKAN_HPP_NAMESPACE::ImageLayout const &,
  85735. uint32_t const &,
  85736. const VULKAN_HPP_NAMESPACE::ImageResolve2 * const &>
  85737. # endif
  85738. reflect() const VULKAN_HPP_NOEXCEPT
  85739. {
  85740. return std::tie( sType, pNext, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
  85741. }
  85742. #endif
  85743. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  85744. auto operator<=>( ResolveImageInfo2 const & ) const = default;
  85745. #else
  85746. bool operator==( ResolveImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  85747. {
  85748. # if defined( VULKAN_HPP_USE_REFLECT )
  85749. return this->reflect() == rhs.reflect();
  85750. # else
  85751. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && ( srcImageLayout == rhs.srcImageLayout ) &&
  85752. ( dstImage == rhs.dstImage ) && ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions );
  85753. # endif
  85754. }
  85755. bool operator!=( ResolveImageInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  85756. {
  85757. return !operator==( rhs );
  85758. }
  85759. #endif
  85760. public:
  85761. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eResolveImageInfo2;
  85762. const void * pNext = {};
  85763. VULKAN_HPP_NAMESPACE::Image srcImage = {};
  85764. VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  85765. VULKAN_HPP_NAMESPACE::Image dstImage = {};
  85766. VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined;
  85767. uint32_t regionCount = {};
  85768. const VULKAN_HPP_NAMESPACE::ImageResolve2 * pRegions = {};
  85769. };
  85770. template <>
  85771. struct CppType<StructureType, StructureType::eResolveImageInfo2>
  85772. {
  85773. using Type = ResolveImageInfo2;
  85774. };
  85775. using ResolveImageInfo2KHR = ResolveImageInfo2;
  85776. struct SamplerBlockMatchWindowCreateInfoQCOM
  85777. {
  85778. using NativeType = VkSamplerBlockMatchWindowCreateInfoQCOM;
  85779. static const bool allowDuplicate = false;
  85780. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerBlockMatchWindowCreateInfoQCOM;
  85781. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  85782. VULKAN_HPP_CONSTEXPR SamplerBlockMatchWindowCreateInfoQCOM(
  85783. VULKAN_HPP_NAMESPACE::Extent2D windowExtent_ = {},
  85784. VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode_ = VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM::eMin,
  85785. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  85786. : pNext( pNext_ )
  85787. , windowExtent( windowExtent_ )
  85788. , windowCompareMode( windowCompareMode_ )
  85789. {
  85790. }
  85791. VULKAN_HPP_CONSTEXPR SamplerBlockMatchWindowCreateInfoQCOM( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85792. SamplerBlockMatchWindowCreateInfoQCOM( VkSamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  85793. : SamplerBlockMatchWindowCreateInfoQCOM( *reinterpret_cast<SamplerBlockMatchWindowCreateInfoQCOM const *>( &rhs ) )
  85794. {
  85795. }
  85796. SamplerBlockMatchWindowCreateInfoQCOM & operator=( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85797. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85798. SamplerBlockMatchWindowCreateInfoQCOM & operator=( VkSamplerBlockMatchWindowCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  85799. {
  85800. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM const *>( &rhs );
  85801. return *this;
  85802. }
  85803. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85804. VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85805. {
  85806. pNext = pNext_;
  85807. return *this;
  85808. }
  85809. VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM & setWindowExtent( VULKAN_HPP_NAMESPACE::Extent2D const & windowExtent_ ) VULKAN_HPP_NOEXCEPT
  85810. {
  85811. windowExtent = windowExtent_;
  85812. return *this;
  85813. }
  85814. VULKAN_HPP_CONSTEXPR_14 SamplerBlockMatchWindowCreateInfoQCOM &
  85815. setWindowCompareMode( VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode_ ) VULKAN_HPP_NOEXCEPT
  85816. {
  85817. windowCompareMode = windowCompareMode_;
  85818. return *this;
  85819. }
  85820. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85821. operator VkSamplerBlockMatchWindowCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  85822. {
  85823. return *reinterpret_cast<const VkSamplerBlockMatchWindowCreateInfoQCOM *>( this );
  85824. }
  85825. operator VkSamplerBlockMatchWindowCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
  85826. {
  85827. return *reinterpret_cast<VkSamplerBlockMatchWindowCreateInfoQCOM *>( this );
  85828. }
  85829. #if defined( VULKAN_HPP_USE_REFLECT )
  85830. # if 14 <= VULKAN_HPP_CPP_VERSION
  85831. auto
  85832. # else
  85833. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  85834. const void * const &,
  85835. VULKAN_HPP_NAMESPACE::Extent2D const &,
  85836. VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM const &>
  85837. # endif
  85838. reflect() const VULKAN_HPP_NOEXCEPT
  85839. {
  85840. return std::tie( sType, pNext, windowExtent, windowCompareMode );
  85841. }
  85842. #endif
  85843. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  85844. auto operator<=>( SamplerBlockMatchWindowCreateInfoQCOM const & ) const = default;
  85845. #else
  85846. bool operator==( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  85847. {
  85848. # if defined( VULKAN_HPP_USE_REFLECT )
  85849. return this->reflect() == rhs.reflect();
  85850. # else
  85851. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( windowExtent == rhs.windowExtent ) && ( windowCompareMode == rhs.windowCompareMode );
  85852. # endif
  85853. }
  85854. bool operator!=( SamplerBlockMatchWindowCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  85855. {
  85856. return !operator==( rhs );
  85857. }
  85858. #endif
  85859. public:
  85860. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerBlockMatchWindowCreateInfoQCOM;
  85861. const void * pNext = {};
  85862. VULKAN_HPP_NAMESPACE::Extent2D windowExtent = {};
  85863. VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM windowCompareMode = VULKAN_HPP_NAMESPACE::BlockMatchWindowCompareModeQCOM::eMin;
  85864. };
  85865. template <>
  85866. struct CppType<StructureType, StructureType::eSamplerBlockMatchWindowCreateInfoQCOM>
  85867. {
  85868. using Type = SamplerBlockMatchWindowCreateInfoQCOM;
  85869. };
  85870. struct SamplerBorderColorComponentMappingCreateInfoEXT
  85871. {
  85872. using NativeType = VkSamplerBorderColorComponentMappingCreateInfoEXT;
  85873. static const bool allowDuplicate = false;
  85874. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT;
  85875. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  85876. VULKAN_HPP_CONSTEXPR SamplerBorderColorComponentMappingCreateInfoEXT( VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {},
  85877. VULKAN_HPP_NAMESPACE::Bool32 srgb_ = {},
  85878. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  85879. : pNext( pNext_ )
  85880. , components( components_ )
  85881. , srgb( srgb_ )
  85882. {
  85883. }
  85884. VULKAN_HPP_CONSTEXPR
  85885. SamplerBorderColorComponentMappingCreateInfoEXT( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85886. SamplerBorderColorComponentMappingCreateInfoEXT( VkSamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  85887. : SamplerBorderColorComponentMappingCreateInfoEXT( *reinterpret_cast<SamplerBorderColorComponentMappingCreateInfoEXT const *>( &rhs ) )
  85888. {
  85889. }
  85890. SamplerBorderColorComponentMappingCreateInfoEXT & operator=( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85891. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85892. SamplerBorderColorComponentMappingCreateInfoEXT & operator=( VkSamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  85893. {
  85894. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT const *>( &rhs );
  85895. return *this;
  85896. }
  85897. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85898. VULKAN_HPP_CONSTEXPR_14 SamplerBorderColorComponentMappingCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85899. {
  85900. pNext = pNext_;
  85901. return *this;
  85902. }
  85903. VULKAN_HPP_CONSTEXPR_14 SamplerBorderColorComponentMappingCreateInfoEXT &
  85904. setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
  85905. {
  85906. components = components_;
  85907. return *this;
  85908. }
  85909. VULKAN_HPP_CONSTEXPR_14 SamplerBorderColorComponentMappingCreateInfoEXT & setSrgb( VULKAN_HPP_NAMESPACE::Bool32 srgb_ ) VULKAN_HPP_NOEXCEPT
  85910. {
  85911. srgb = srgb_;
  85912. return *this;
  85913. }
  85914. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85915. operator VkSamplerBorderColorComponentMappingCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  85916. {
  85917. return *reinterpret_cast<const VkSamplerBorderColorComponentMappingCreateInfoEXT *>( this );
  85918. }
  85919. operator VkSamplerBorderColorComponentMappingCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  85920. {
  85921. return *reinterpret_cast<VkSamplerBorderColorComponentMappingCreateInfoEXT *>( this );
  85922. }
  85923. #if defined( VULKAN_HPP_USE_REFLECT )
  85924. # if 14 <= VULKAN_HPP_CPP_VERSION
  85925. auto
  85926. # else
  85927. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  85928. const void * const &,
  85929. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  85930. VULKAN_HPP_NAMESPACE::Bool32 const &>
  85931. # endif
  85932. reflect() const VULKAN_HPP_NOEXCEPT
  85933. {
  85934. return std::tie( sType, pNext, components, srgb );
  85935. }
  85936. #endif
  85937. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  85938. auto operator<=>( SamplerBorderColorComponentMappingCreateInfoEXT const & ) const = default;
  85939. #else
  85940. bool operator==( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  85941. {
  85942. # if defined( VULKAN_HPP_USE_REFLECT )
  85943. return this->reflect() == rhs.reflect();
  85944. # else
  85945. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( components == rhs.components ) && ( srgb == rhs.srgb );
  85946. # endif
  85947. }
  85948. bool operator!=( SamplerBorderColorComponentMappingCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  85949. {
  85950. return !operator==( rhs );
  85951. }
  85952. #endif
  85953. public:
  85954. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT;
  85955. const void * pNext = {};
  85956. VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
  85957. VULKAN_HPP_NAMESPACE::Bool32 srgb = {};
  85958. };
  85959. template <>
  85960. struct CppType<StructureType, StructureType::eSamplerBorderColorComponentMappingCreateInfoEXT>
  85961. {
  85962. using Type = SamplerBorderColorComponentMappingCreateInfoEXT;
  85963. };
  85964. struct SamplerCaptureDescriptorDataInfoEXT
  85965. {
  85966. using NativeType = VkSamplerCaptureDescriptorDataInfoEXT;
  85967. static const bool allowDuplicate = false;
  85968. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCaptureDescriptorDataInfoEXT;
  85969. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  85970. VULKAN_HPP_CONSTEXPR SamplerCaptureDescriptorDataInfoEXT( VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  85971. : pNext( pNext_ )
  85972. , sampler( sampler_ )
  85973. {
  85974. }
  85975. VULKAN_HPP_CONSTEXPR SamplerCaptureDescriptorDataInfoEXT( SamplerCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85976. SamplerCaptureDescriptorDataInfoEXT( VkSamplerCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  85977. : SamplerCaptureDescriptorDataInfoEXT( *reinterpret_cast<SamplerCaptureDescriptorDataInfoEXT const *>( &rhs ) )
  85978. {
  85979. }
  85980. SamplerCaptureDescriptorDataInfoEXT & operator=( SamplerCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  85981. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  85982. SamplerCaptureDescriptorDataInfoEXT & operator=( VkSamplerCaptureDescriptorDataInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  85983. {
  85984. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT const *>( &rhs );
  85985. return *this;
  85986. }
  85987. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  85988. VULKAN_HPP_CONSTEXPR_14 SamplerCaptureDescriptorDataInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  85989. {
  85990. pNext = pNext_;
  85991. return *this;
  85992. }
  85993. VULKAN_HPP_CONSTEXPR_14 SamplerCaptureDescriptorDataInfoEXT & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT
  85994. {
  85995. sampler = sampler_;
  85996. return *this;
  85997. }
  85998. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  85999. operator VkSamplerCaptureDescriptorDataInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  86000. {
  86001. return *reinterpret_cast<const VkSamplerCaptureDescriptorDataInfoEXT *>( this );
  86002. }
  86003. operator VkSamplerCaptureDescriptorDataInfoEXT &() VULKAN_HPP_NOEXCEPT
  86004. {
  86005. return *reinterpret_cast<VkSamplerCaptureDescriptorDataInfoEXT *>( this );
  86006. }
  86007. #if defined( VULKAN_HPP_USE_REFLECT )
  86008. # if 14 <= VULKAN_HPP_CPP_VERSION
  86009. auto
  86010. # else
  86011. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Sampler const &>
  86012. # endif
  86013. reflect() const VULKAN_HPP_NOEXCEPT
  86014. {
  86015. return std::tie( sType, pNext, sampler );
  86016. }
  86017. #endif
  86018. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  86019. auto operator<=>( SamplerCaptureDescriptorDataInfoEXT const & ) const = default;
  86020. #else
  86021. bool operator==( SamplerCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  86022. {
  86023. # if defined( VULKAN_HPP_USE_REFLECT )
  86024. return this->reflect() == rhs.reflect();
  86025. # else
  86026. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampler == rhs.sampler );
  86027. # endif
  86028. }
  86029. bool operator!=( SamplerCaptureDescriptorDataInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  86030. {
  86031. return !operator==( rhs );
  86032. }
  86033. #endif
  86034. public:
  86035. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCaptureDescriptorDataInfoEXT;
  86036. const void * pNext = {};
  86037. VULKAN_HPP_NAMESPACE::Sampler sampler = {};
  86038. };
  86039. template <>
  86040. struct CppType<StructureType, StructureType::eSamplerCaptureDescriptorDataInfoEXT>
  86041. {
  86042. using Type = SamplerCaptureDescriptorDataInfoEXT;
  86043. };
  86044. struct SamplerCreateInfo
  86045. {
  86046. using NativeType = VkSamplerCreateInfo;
  86047. static const bool allowDuplicate = false;
  86048. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCreateInfo;
  86049. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  86050. VULKAN_HPP_CONSTEXPR SamplerCreateInfo( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ = {},
  86051. VULKAN_HPP_NAMESPACE::Filter magFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
  86052. VULKAN_HPP_NAMESPACE::Filter minFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
  86053. VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest,
  86054. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat,
  86055. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat,
  86056. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat,
  86057. float mipLodBias_ = {},
  86058. VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ = {},
  86059. float maxAnisotropy_ = {},
  86060. VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ = {},
  86061. VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever,
  86062. float minLod_ = {},
  86063. float maxLod_ = {},
  86064. VULKAN_HPP_NAMESPACE::BorderColor borderColor_ = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack,
  86065. VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ = {},
  86066. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  86067. : pNext( pNext_ )
  86068. , flags( flags_ )
  86069. , magFilter( magFilter_ )
  86070. , minFilter( minFilter_ )
  86071. , mipmapMode( mipmapMode_ )
  86072. , addressModeU( addressModeU_ )
  86073. , addressModeV( addressModeV_ )
  86074. , addressModeW( addressModeW_ )
  86075. , mipLodBias( mipLodBias_ )
  86076. , anisotropyEnable( anisotropyEnable_ )
  86077. , maxAnisotropy( maxAnisotropy_ )
  86078. , compareEnable( compareEnable_ )
  86079. , compareOp( compareOp_ )
  86080. , minLod( minLod_ )
  86081. , maxLod( maxLod_ )
  86082. , borderColor( borderColor_ )
  86083. , unnormalizedCoordinates( unnormalizedCoordinates_ )
  86084. {
  86085. }
  86086. VULKAN_HPP_CONSTEXPR SamplerCreateInfo( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86087. SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SamplerCreateInfo( *reinterpret_cast<SamplerCreateInfo const *>( &rhs ) ) {}
  86088. SamplerCreateInfo & operator=( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86089. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  86090. SamplerCreateInfo & operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  86091. {
  86092. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCreateInfo const *>( &rhs );
  86093. return *this;
  86094. }
  86095. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  86096. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  86097. {
  86098. pNext = pNext_;
  86099. return *this;
  86100. }
  86101. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  86102. {
  86103. flags = flags_;
  86104. return *this;
  86105. }
  86106. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT
  86107. {
  86108. magFilter = magFilter_;
  86109. return *this;
  86110. }
  86111. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT
  86112. {
  86113. minFilter = minFilter_;
  86114. return *this;
  86115. }
  86116. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT
  86117. {
  86118. mipmapMode = mipmapMode_;
  86119. return *this;
  86120. }
  86121. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT
  86122. {
  86123. addressModeU = addressModeU_;
  86124. return *this;
  86125. }
  86126. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT
  86127. {
  86128. addressModeV = addressModeV_;
  86129. return *this;
  86130. }
  86131. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT
  86132. {
  86133. addressModeW = addressModeW_;
  86134. return *this;
  86135. }
  86136. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT
  86137. {
  86138. mipLodBias = mipLodBias_;
  86139. return *this;
  86140. }
  86141. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT
  86142. {
  86143. anisotropyEnable = anisotropyEnable_;
  86144. return *this;
  86145. }
  86146. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT
  86147. {
  86148. maxAnisotropy = maxAnisotropy_;
  86149. return *this;
  86150. }
  86151. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT
  86152. {
  86153. compareEnable = compareEnable_;
  86154. return *this;
  86155. }
  86156. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT
  86157. {
  86158. compareOp = compareOp_;
  86159. return *this;
  86160. }
  86161. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT
  86162. {
  86163. minLod = minLod_;
  86164. return *this;
  86165. }
  86166. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT
  86167. {
  86168. maxLod = maxLod_;
  86169. return *this;
  86170. }
  86171. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT
  86172. {
  86173. borderColor = borderColor_;
  86174. return *this;
  86175. }
  86176. VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT
  86177. {
  86178. unnormalizedCoordinates = unnormalizedCoordinates_;
  86179. return *this;
  86180. }
  86181. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  86182. operator VkSamplerCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  86183. {
  86184. return *reinterpret_cast<const VkSamplerCreateInfo *>( this );
  86185. }
  86186. operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT
  86187. {
  86188. return *reinterpret_cast<VkSamplerCreateInfo *>( this );
  86189. }
  86190. #if defined( VULKAN_HPP_USE_REFLECT )
  86191. # if 14 <= VULKAN_HPP_CPP_VERSION
  86192. auto
  86193. # else
  86194. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  86195. const void * const &,
  86196. VULKAN_HPP_NAMESPACE::SamplerCreateFlags const &,
  86197. VULKAN_HPP_NAMESPACE::Filter const &,
  86198. VULKAN_HPP_NAMESPACE::Filter const &,
  86199. VULKAN_HPP_NAMESPACE::SamplerMipmapMode const &,
  86200. VULKAN_HPP_NAMESPACE::SamplerAddressMode const &,
  86201. VULKAN_HPP_NAMESPACE::SamplerAddressMode const &,
  86202. VULKAN_HPP_NAMESPACE::SamplerAddressMode const &,
  86203. float const &,
  86204. VULKAN_HPP_NAMESPACE::Bool32 const &,
  86205. float const &,
  86206. VULKAN_HPP_NAMESPACE::Bool32 const &,
  86207. VULKAN_HPP_NAMESPACE::CompareOp const &,
  86208. float const &,
  86209. float const &,
  86210. VULKAN_HPP_NAMESPACE::BorderColor const &,
  86211. VULKAN_HPP_NAMESPACE::Bool32 const &>
  86212. # endif
  86213. reflect() const VULKAN_HPP_NOEXCEPT
  86214. {
  86215. return std::tie( sType,
  86216. pNext,
  86217. flags,
  86218. magFilter,
  86219. minFilter,
  86220. mipmapMode,
  86221. addressModeU,
  86222. addressModeV,
  86223. addressModeW,
  86224. mipLodBias,
  86225. anisotropyEnable,
  86226. maxAnisotropy,
  86227. compareEnable,
  86228. compareOp,
  86229. minLod,
  86230. maxLod,
  86231. borderColor,
  86232. unnormalizedCoordinates );
  86233. }
  86234. #endif
  86235. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  86236. auto operator<=>( SamplerCreateInfo const & ) const = default;
  86237. #else
  86238. bool operator==( SamplerCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  86239. {
  86240. # if defined( VULKAN_HPP_USE_REFLECT )
  86241. return this->reflect() == rhs.reflect();
  86242. # else
  86243. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( magFilter == rhs.magFilter ) && ( minFilter == rhs.minFilter ) &&
  86244. ( mipmapMode == rhs.mipmapMode ) && ( addressModeU == rhs.addressModeU ) && ( addressModeV == rhs.addressModeV ) &&
  86245. ( addressModeW == rhs.addressModeW ) && ( mipLodBias == rhs.mipLodBias ) && ( anisotropyEnable == rhs.anisotropyEnable ) &&
  86246. ( maxAnisotropy == rhs.maxAnisotropy ) && ( compareEnable == rhs.compareEnable ) && ( compareOp == rhs.compareOp ) && ( minLod == rhs.minLod ) &&
  86247. ( maxLod == rhs.maxLod ) && ( borderColor == rhs.borderColor ) && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates );
  86248. # endif
  86249. }
  86250. bool operator!=( SamplerCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  86251. {
  86252. return !operator==( rhs );
  86253. }
  86254. #endif
  86255. public:
  86256. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo;
  86257. const void * pNext = {};
  86258. VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {};
  86259. VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
  86260. VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
  86261. VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest;
  86262. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
  86263. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
  86264. VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat;
  86265. float mipLodBias = {};
  86266. VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {};
  86267. float maxAnisotropy = {};
  86268. VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {};
  86269. VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever;
  86270. float minLod = {};
  86271. float maxLod = {};
  86272. VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack;
  86273. VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {};
  86274. };
  86275. template <>
  86276. struct CppType<StructureType, StructureType::eSamplerCreateInfo>
  86277. {
  86278. using Type = SamplerCreateInfo;
  86279. };
  86280. struct SamplerCubicWeightsCreateInfoQCOM
  86281. {
  86282. using NativeType = VkSamplerCubicWeightsCreateInfoQCOM;
  86283. static const bool allowDuplicate = false;
  86284. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCubicWeightsCreateInfoQCOM;
  86285. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  86286. VULKAN_HPP_CONSTEXPR
  86287. SamplerCubicWeightsCreateInfoQCOM( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom,
  86288. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  86289. : pNext( pNext_ )
  86290. , cubicWeights( cubicWeights_ )
  86291. {
  86292. }
  86293. VULKAN_HPP_CONSTEXPR SamplerCubicWeightsCreateInfoQCOM( SamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86294. SamplerCubicWeightsCreateInfoQCOM( VkSamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  86295. : SamplerCubicWeightsCreateInfoQCOM( *reinterpret_cast<SamplerCubicWeightsCreateInfoQCOM const *>( &rhs ) )
  86296. {
  86297. }
  86298. SamplerCubicWeightsCreateInfoQCOM & operator=( SamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86299. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  86300. SamplerCubicWeightsCreateInfoQCOM & operator=( VkSamplerCubicWeightsCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  86301. {
  86302. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM const *>( &rhs );
  86303. return *this;
  86304. }
  86305. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  86306. VULKAN_HPP_CONSTEXPR_14 SamplerCubicWeightsCreateInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  86307. {
  86308. pNext = pNext_;
  86309. return *this;
  86310. }
  86311. VULKAN_HPP_CONSTEXPR_14 SamplerCubicWeightsCreateInfoQCOM &
  86312. setCubicWeights( VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights_ ) VULKAN_HPP_NOEXCEPT
  86313. {
  86314. cubicWeights = cubicWeights_;
  86315. return *this;
  86316. }
  86317. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  86318. operator VkSamplerCubicWeightsCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  86319. {
  86320. return *reinterpret_cast<const VkSamplerCubicWeightsCreateInfoQCOM *>( this );
  86321. }
  86322. operator VkSamplerCubicWeightsCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
  86323. {
  86324. return *reinterpret_cast<VkSamplerCubicWeightsCreateInfoQCOM *>( this );
  86325. }
  86326. #if defined( VULKAN_HPP_USE_REFLECT )
  86327. # if 14 <= VULKAN_HPP_CPP_VERSION
  86328. auto
  86329. # else
  86330. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM const &>
  86331. # endif
  86332. reflect() const VULKAN_HPP_NOEXCEPT
  86333. {
  86334. return std::tie( sType, pNext, cubicWeights );
  86335. }
  86336. #endif
  86337. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  86338. auto operator<=>( SamplerCubicWeightsCreateInfoQCOM const & ) const = default;
  86339. #else
  86340. bool operator==( SamplerCubicWeightsCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  86341. {
  86342. # if defined( VULKAN_HPP_USE_REFLECT )
  86343. return this->reflect() == rhs.reflect();
  86344. # else
  86345. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cubicWeights == rhs.cubicWeights );
  86346. # endif
  86347. }
  86348. bool operator!=( SamplerCubicWeightsCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  86349. {
  86350. return !operator==( rhs );
  86351. }
  86352. #endif
  86353. public:
  86354. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCubicWeightsCreateInfoQCOM;
  86355. const void * pNext = {};
  86356. VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM cubicWeights = VULKAN_HPP_NAMESPACE::CubicFilterWeightsQCOM::eCatmullRom;
  86357. };
  86358. template <>
  86359. struct CppType<StructureType, StructureType::eSamplerCubicWeightsCreateInfoQCOM>
  86360. {
  86361. using Type = SamplerCubicWeightsCreateInfoQCOM;
  86362. };
  86363. struct SamplerCustomBorderColorCreateInfoEXT
  86364. {
  86365. using NativeType = VkSamplerCustomBorderColorCreateInfoEXT;
  86366. static const bool allowDuplicate = false;
  86367. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
  86368. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  86369. VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT( VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {},
  86370. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  86371. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  86372. : pNext( pNext_ )
  86373. , customBorderColor( customBorderColor_ )
  86374. , format( format_ )
  86375. {
  86376. }
  86377. VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86378. SamplerCustomBorderColorCreateInfoEXT( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  86379. : SamplerCustomBorderColorCreateInfoEXT( *reinterpret_cast<SamplerCustomBorderColorCreateInfoEXT const *>( &rhs ) )
  86380. {
  86381. }
  86382. SamplerCustomBorderColorCreateInfoEXT & operator=( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86383. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  86384. SamplerCustomBorderColorCreateInfoEXT & operator=( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  86385. {
  86386. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerCustomBorderColorCreateInfoEXT const *>( &rhs );
  86387. return *this;
  86388. }
  86389. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  86390. VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  86391. {
  86392. pNext = pNext_;
  86393. return *this;
  86394. }
  86395. VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT &
  86396. setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT
  86397. {
  86398. customBorderColor = customBorderColor_;
  86399. return *this;
  86400. }
  86401. VULKAN_HPP_CONSTEXPR_14 SamplerCustomBorderColorCreateInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  86402. {
  86403. format = format_;
  86404. return *this;
  86405. }
  86406. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  86407. operator VkSamplerCustomBorderColorCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  86408. {
  86409. return *reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT *>( this );
  86410. }
  86411. operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  86412. {
  86413. return *reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT *>( this );
  86414. }
  86415. #if defined( VULKAN_HPP_USE_REFLECT )
  86416. # if 14 <= VULKAN_HPP_CPP_VERSION
  86417. auto
  86418. # else
  86419. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  86420. const void * const &,
  86421. VULKAN_HPP_NAMESPACE::ClearColorValue const &,
  86422. VULKAN_HPP_NAMESPACE::Format const &>
  86423. # endif
  86424. reflect() const VULKAN_HPP_NOEXCEPT
  86425. {
  86426. return std::tie( sType, pNext, customBorderColor, format );
  86427. }
  86428. #endif
  86429. public:
  86430. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCustomBorderColorCreateInfoEXT;
  86431. const void * pNext = {};
  86432. VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor = {};
  86433. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  86434. };
  86435. template <>
  86436. struct CppType<StructureType, StructureType::eSamplerCustomBorderColorCreateInfoEXT>
  86437. {
  86438. using Type = SamplerCustomBorderColorCreateInfoEXT;
  86439. };
  86440. struct SamplerReductionModeCreateInfo
  86441. {
  86442. using NativeType = VkSamplerReductionModeCreateInfo;
  86443. static const bool allowDuplicate = false;
  86444. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerReductionModeCreateInfo;
  86445. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  86446. VULKAN_HPP_CONSTEXPR
  86447. SamplerReductionModeCreateInfo( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage,
  86448. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  86449. : pNext( pNext_ )
  86450. , reductionMode( reductionMode_ )
  86451. {
  86452. }
  86453. VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86454. SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  86455. : SamplerReductionModeCreateInfo( *reinterpret_cast<SamplerReductionModeCreateInfo const *>( &rhs ) )
  86456. {
  86457. }
  86458. SamplerReductionModeCreateInfo & operator=( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86459. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  86460. SamplerReductionModeCreateInfo & operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  86461. {
  86462. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const *>( &rhs );
  86463. return *this;
  86464. }
  86465. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  86466. VULKAN_HPP_CONSTEXPR_14 SamplerReductionModeCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  86467. {
  86468. pNext = pNext_;
  86469. return *this;
  86470. }
  86471. VULKAN_HPP_CONSTEXPR_14 SamplerReductionModeCreateInfo & setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT
  86472. {
  86473. reductionMode = reductionMode_;
  86474. return *this;
  86475. }
  86476. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  86477. operator VkSamplerReductionModeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  86478. {
  86479. return *reinterpret_cast<const VkSamplerReductionModeCreateInfo *>( this );
  86480. }
  86481. operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT
  86482. {
  86483. return *reinterpret_cast<VkSamplerReductionModeCreateInfo *>( this );
  86484. }
  86485. #if defined( VULKAN_HPP_USE_REFLECT )
  86486. # if 14 <= VULKAN_HPP_CPP_VERSION
  86487. auto
  86488. # else
  86489. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SamplerReductionMode const &>
  86490. # endif
  86491. reflect() const VULKAN_HPP_NOEXCEPT
  86492. {
  86493. return std::tie( sType, pNext, reductionMode );
  86494. }
  86495. #endif
  86496. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  86497. auto operator<=>( SamplerReductionModeCreateInfo const & ) const = default;
  86498. #else
  86499. bool operator==( SamplerReductionModeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  86500. {
  86501. # if defined( VULKAN_HPP_USE_REFLECT )
  86502. return this->reflect() == rhs.reflect();
  86503. # else
  86504. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( reductionMode == rhs.reductionMode );
  86505. # endif
  86506. }
  86507. bool operator!=( SamplerReductionModeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  86508. {
  86509. return !operator==( rhs );
  86510. }
  86511. #endif
  86512. public:
  86513. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo;
  86514. const void * pNext = {};
  86515. VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage;
  86516. };
  86517. template <>
  86518. struct CppType<StructureType, StructureType::eSamplerReductionModeCreateInfo>
  86519. {
  86520. using Type = SamplerReductionModeCreateInfo;
  86521. };
  86522. using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
  86523. struct SamplerYcbcrConversionCreateInfo
  86524. {
  86525. using NativeType = VkSamplerYcbcrConversionCreateInfo;
  86526. static const bool allowDuplicate = false;
  86527. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionCreateInfo;
  86528. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  86529. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo(
  86530. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  86531. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
  86532. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
  86533. VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {},
  86534. VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  86535. VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  86536. VULKAN_HPP_NAMESPACE::Filter chromaFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest,
  86537. VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ = {},
  86538. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  86539. : pNext( pNext_ )
  86540. , format( format_ )
  86541. , ycbcrModel( ycbcrModel_ )
  86542. , ycbcrRange( ycbcrRange_ )
  86543. , components( components_ )
  86544. , xChromaOffset( xChromaOffset_ )
  86545. , yChromaOffset( yChromaOffset_ )
  86546. , chromaFilter( chromaFilter_ )
  86547. , forceExplicitReconstruction( forceExplicitReconstruction_ )
  86548. {
  86549. }
  86550. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86551. SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  86552. : SamplerYcbcrConversionCreateInfo( *reinterpret_cast<SamplerYcbcrConversionCreateInfo const *>( &rhs ) )
  86553. {
  86554. }
  86555. SamplerYcbcrConversionCreateInfo & operator=( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86556. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  86557. SamplerYcbcrConversionCreateInfo & operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  86558. {
  86559. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const *>( &rhs );
  86560. return *this;
  86561. }
  86562. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  86563. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  86564. {
  86565. pNext = pNext_;
  86566. return *this;
  86567. }
  86568. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  86569. {
  86570. format = format_;
  86571. return *this;
  86572. }
  86573. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo &
  86574. setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT
  86575. {
  86576. ycbcrModel = ycbcrModel_;
  86577. return *this;
  86578. }
  86579. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT
  86580. {
  86581. ycbcrRange = ycbcrRange_;
  86582. return *this;
  86583. }
  86584. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT
  86585. {
  86586. components = components_;
  86587. return *this;
  86588. }
  86589. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT
  86590. {
  86591. xChromaOffset = xChromaOffset_;
  86592. return *this;
  86593. }
  86594. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT
  86595. {
  86596. yChromaOffset = yChromaOffset_;
  86597. return *this;
  86598. }
  86599. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT
  86600. {
  86601. chromaFilter = chromaFilter_;
  86602. return *this;
  86603. }
  86604. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo &
  86605. setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT
  86606. {
  86607. forceExplicitReconstruction = forceExplicitReconstruction_;
  86608. return *this;
  86609. }
  86610. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  86611. operator VkSamplerYcbcrConversionCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  86612. {
  86613. return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( this );
  86614. }
  86615. operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT
  86616. {
  86617. return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo *>( this );
  86618. }
  86619. #if defined( VULKAN_HPP_USE_REFLECT )
  86620. # if 14 <= VULKAN_HPP_CPP_VERSION
  86621. auto
  86622. # else
  86623. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  86624. const void * const &,
  86625. VULKAN_HPP_NAMESPACE::Format const &,
  86626. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &,
  86627. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &,
  86628. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  86629. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  86630. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  86631. VULKAN_HPP_NAMESPACE::Filter const &,
  86632. VULKAN_HPP_NAMESPACE::Bool32 const &>
  86633. # endif
  86634. reflect() const VULKAN_HPP_NOEXCEPT
  86635. {
  86636. return std::tie( sType, pNext, format, ycbcrModel, ycbcrRange, components, xChromaOffset, yChromaOffset, chromaFilter, forceExplicitReconstruction );
  86637. }
  86638. #endif
  86639. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  86640. auto operator<=>( SamplerYcbcrConversionCreateInfo const & ) const = default;
  86641. #else
  86642. bool operator==( SamplerYcbcrConversionCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  86643. {
  86644. # if defined( VULKAN_HPP_USE_REFLECT )
  86645. return this->reflect() == rhs.reflect();
  86646. # else
  86647. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( ycbcrModel == rhs.ycbcrModel ) &&
  86648. ( ycbcrRange == rhs.ycbcrRange ) && ( components == rhs.components ) && ( xChromaOffset == rhs.xChromaOffset ) &&
  86649. ( yChromaOffset == rhs.yChromaOffset ) && ( chromaFilter == rhs.chromaFilter ) &&
  86650. ( forceExplicitReconstruction == rhs.forceExplicitReconstruction );
  86651. # endif
  86652. }
  86653. bool operator!=( SamplerYcbcrConversionCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  86654. {
  86655. return !operator==( rhs );
  86656. }
  86657. #endif
  86658. public:
  86659. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo;
  86660. const void * pNext = {};
  86661. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  86662. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
  86663. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
  86664. VULKAN_HPP_NAMESPACE::ComponentMapping components = {};
  86665. VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  86666. VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  86667. VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest;
  86668. VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {};
  86669. };
  86670. template <>
  86671. struct CppType<StructureType, StructureType::eSamplerYcbcrConversionCreateInfo>
  86672. {
  86673. using Type = SamplerYcbcrConversionCreateInfo;
  86674. };
  86675. using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
  86676. struct SamplerYcbcrConversionImageFormatProperties
  86677. {
  86678. using NativeType = VkSamplerYcbcrConversionImageFormatProperties;
  86679. static const bool allowDuplicate = false;
  86680. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
  86681. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  86682. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( uint32_t combinedImageSamplerDescriptorCount_ = {},
  86683. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  86684. : pNext( pNext_ )
  86685. , combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ )
  86686. {
  86687. }
  86688. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86689. SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  86690. : SamplerYcbcrConversionImageFormatProperties( *reinterpret_cast<SamplerYcbcrConversionImageFormatProperties const *>( &rhs ) )
  86691. {
  86692. }
  86693. SamplerYcbcrConversionImageFormatProperties & operator=( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86694. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  86695. SamplerYcbcrConversionImageFormatProperties & operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  86696. {
  86697. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties const *>( &rhs );
  86698. return *this;
  86699. }
  86700. operator VkSamplerYcbcrConversionImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
  86701. {
  86702. return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties *>( this );
  86703. }
  86704. operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT
  86705. {
  86706. return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties *>( this );
  86707. }
  86708. #if defined( VULKAN_HPP_USE_REFLECT )
  86709. # if 14 <= VULKAN_HPP_CPP_VERSION
  86710. auto
  86711. # else
  86712. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &>
  86713. # endif
  86714. reflect() const VULKAN_HPP_NOEXCEPT
  86715. {
  86716. return std::tie( sType, pNext, combinedImageSamplerDescriptorCount );
  86717. }
  86718. #endif
  86719. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  86720. auto operator<=>( SamplerYcbcrConversionImageFormatProperties const & ) const = default;
  86721. #else
  86722. bool operator==( SamplerYcbcrConversionImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  86723. {
  86724. # if defined( VULKAN_HPP_USE_REFLECT )
  86725. return this->reflect() == rhs.reflect();
  86726. # else
  86727. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount );
  86728. # endif
  86729. }
  86730. bool operator!=( SamplerYcbcrConversionImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  86731. {
  86732. return !operator==( rhs );
  86733. }
  86734. #endif
  86735. public:
  86736. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
  86737. void * pNext = {};
  86738. uint32_t combinedImageSamplerDescriptorCount = {};
  86739. };
  86740. template <>
  86741. struct CppType<StructureType, StructureType::eSamplerYcbcrConversionImageFormatProperties>
  86742. {
  86743. using Type = SamplerYcbcrConversionImageFormatProperties;
  86744. };
  86745. using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
  86746. struct SamplerYcbcrConversionInfo
  86747. {
  86748. using NativeType = VkSamplerYcbcrConversionInfo;
  86749. static const bool allowDuplicate = false;
  86750. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionInfo;
  86751. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  86752. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {},
  86753. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  86754. : pNext( pNext_ )
  86755. , conversion( conversion_ )
  86756. {
  86757. }
  86758. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86759. SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  86760. : SamplerYcbcrConversionInfo( *reinterpret_cast<SamplerYcbcrConversionInfo const *>( &rhs ) )
  86761. {
  86762. }
  86763. SamplerYcbcrConversionInfo & operator=( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86764. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  86765. SamplerYcbcrConversionInfo & operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  86766. {
  86767. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo const *>( &rhs );
  86768. return *this;
  86769. }
  86770. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  86771. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  86772. {
  86773. pNext = pNext_;
  86774. return *this;
  86775. }
  86776. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionInfo & setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT
  86777. {
  86778. conversion = conversion_;
  86779. return *this;
  86780. }
  86781. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  86782. operator VkSamplerYcbcrConversionInfo const &() const VULKAN_HPP_NOEXCEPT
  86783. {
  86784. return *reinterpret_cast<const VkSamplerYcbcrConversionInfo *>( this );
  86785. }
  86786. operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT
  86787. {
  86788. return *reinterpret_cast<VkSamplerYcbcrConversionInfo *>( this );
  86789. }
  86790. #if defined( VULKAN_HPP_USE_REFLECT )
  86791. # if 14 <= VULKAN_HPP_CPP_VERSION
  86792. auto
  86793. # else
  86794. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const &>
  86795. # endif
  86796. reflect() const VULKAN_HPP_NOEXCEPT
  86797. {
  86798. return std::tie( sType, pNext, conversion );
  86799. }
  86800. #endif
  86801. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  86802. auto operator<=>( SamplerYcbcrConversionInfo const & ) const = default;
  86803. #else
  86804. bool operator==( SamplerYcbcrConversionInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  86805. {
  86806. # if defined( VULKAN_HPP_USE_REFLECT )
  86807. return this->reflect() == rhs.reflect();
  86808. # else
  86809. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( conversion == rhs.conversion );
  86810. # endif
  86811. }
  86812. bool operator!=( SamplerYcbcrConversionInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  86813. {
  86814. return !operator==( rhs );
  86815. }
  86816. #endif
  86817. public:
  86818. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo;
  86819. const void * pNext = {};
  86820. VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {};
  86821. };
  86822. template <>
  86823. struct CppType<StructureType, StructureType::eSamplerYcbcrConversionInfo>
  86824. {
  86825. using Type = SamplerYcbcrConversionInfo;
  86826. };
  86827. using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
  86828. struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM
  86829. {
  86830. using NativeType = VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
  86831. static const bool allowDuplicate = false;
  86832. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
  86833. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  86834. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma_ = {},
  86835. VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma_ = {},
  86836. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  86837. : pNext( pNext_ )
  86838. , enableYDegamma( enableYDegamma_ )
  86839. , enableCbCrDegamma( enableCbCrDegamma_ )
  86840. {
  86841. }
  86842. VULKAN_HPP_CONSTEXPR
  86843. SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86844. SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  86845. : SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM( *reinterpret_cast<SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const *>( &rhs ) )
  86846. {
  86847. }
  86848. SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & operator=( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86849. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  86850. SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & operator=( VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  86851. {
  86852. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const *>( &rhs );
  86853. return *this;
  86854. }
  86855. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  86856. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  86857. {
  86858. pNext = pNext_;
  86859. return *this;
  86860. }
  86861. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM &
  86862. setEnableYDegamma( VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma_ ) VULKAN_HPP_NOEXCEPT
  86863. {
  86864. enableYDegamma = enableYDegamma_;
  86865. return *this;
  86866. }
  86867. VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM &
  86868. setEnableCbCrDegamma( VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma_ ) VULKAN_HPP_NOEXCEPT
  86869. {
  86870. enableCbCrDegamma = enableCbCrDegamma_;
  86871. return *this;
  86872. }
  86873. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  86874. operator VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  86875. {
  86876. return *reinterpret_cast<const VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM *>( this );
  86877. }
  86878. operator VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM &() VULKAN_HPP_NOEXCEPT
  86879. {
  86880. return *reinterpret_cast<VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM *>( this );
  86881. }
  86882. #if defined( VULKAN_HPP_USE_REFLECT )
  86883. # if 14 <= VULKAN_HPP_CPP_VERSION
  86884. auto
  86885. # else
  86886. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  86887. # endif
  86888. reflect() const VULKAN_HPP_NOEXCEPT
  86889. {
  86890. return std::tie( sType, pNext, enableYDegamma, enableCbCrDegamma );
  86891. }
  86892. #endif
  86893. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  86894. auto operator<=>( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & ) const = default;
  86895. #else
  86896. bool operator==( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  86897. {
  86898. # if defined( VULKAN_HPP_USE_REFLECT )
  86899. return this->reflect() == rhs.reflect();
  86900. # else
  86901. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( enableYDegamma == rhs.enableYDegamma ) && ( enableCbCrDegamma == rhs.enableCbCrDegamma );
  86902. # endif
  86903. }
  86904. bool operator!=( SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  86905. {
  86906. return !operator==( rhs );
  86907. }
  86908. #endif
  86909. public:
  86910. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
  86911. void * pNext = {};
  86912. VULKAN_HPP_NAMESPACE::Bool32 enableYDegamma = {};
  86913. VULKAN_HPP_NAMESPACE::Bool32 enableCbCrDegamma = {};
  86914. };
  86915. template <>
  86916. struct CppType<StructureType, StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM>
  86917. {
  86918. using Type = SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
  86919. };
  86920. #if defined( VK_USE_PLATFORM_SCREEN_QNX )
  86921. struct ScreenBufferFormatPropertiesQNX
  86922. {
  86923. using NativeType = VkScreenBufferFormatPropertiesQNX;
  86924. static const bool allowDuplicate = false;
  86925. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eScreenBufferFormatPropertiesQNX;
  86926. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  86927. VULKAN_HPP_CONSTEXPR ScreenBufferFormatPropertiesQNX(
  86928. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  86929. uint64_t externalFormat_ = {},
  86930. uint64_t screenUsage_ = {},
  86931. VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {},
  86932. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {},
  86933. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity,
  86934. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull,
  86935. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  86936. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven,
  86937. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  86938. : pNext( pNext_ )
  86939. , format( format_ )
  86940. , externalFormat( externalFormat_ )
  86941. , screenUsage( screenUsage_ )
  86942. , formatFeatures( formatFeatures_ )
  86943. , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ )
  86944. , suggestedYcbcrModel( suggestedYcbcrModel_ )
  86945. , suggestedYcbcrRange( suggestedYcbcrRange_ )
  86946. , suggestedXChromaOffset( suggestedXChromaOffset_ )
  86947. , suggestedYChromaOffset( suggestedYChromaOffset_ )
  86948. {
  86949. }
  86950. VULKAN_HPP_CONSTEXPR ScreenBufferFormatPropertiesQNX( ScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86951. ScreenBufferFormatPropertiesQNX( VkScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  86952. : ScreenBufferFormatPropertiesQNX( *reinterpret_cast<ScreenBufferFormatPropertiesQNX const *>( &rhs ) )
  86953. {
  86954. }
  86955. ScreenBufferFormatPropertiesQNX & operator=( ScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  86956. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  86957. ScreenBufferFormatPropertiesQNX & operator=( VkScreenBufferFormatPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  86958. {
  86959. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX const *>( &rhs );
  86960. return *this;
  86961. }
  86962. operator VkScreenBufferFormatPropertiesQNX const &() const VULKAN_HPP_NOEXCEPT
  86963. {
  86964. return *reinterpret_cast<const VkScreenBufferFormatPropertiesQNX *>( this );
  86965. }
  86966. operator VkScreenBufferFormatPropertiesQNX &() VULKAN_HPP_NOEXCEPT
  86967. {
  86968. return *reinterpret_cast<VkScreenBufferFormatPropertiesQNX *>( this );
  86969. }
  86970. # if defined( VULKAN_HPP_USE_REFLECT )
  86971. # if 14 <= VULKAN_HPP_CPP_VERSION
  86972. auto
  86973. # else
  86974. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  86975. void * const &,
  86976. VULKAN_HPP_NAMESPACE::Format const &,
  86977. uint64_t const &,
  86978. uint64_t const &,
  86979. VULKAN_HPP_NAMESPACE::FormatFeatureFlags const &,
  86980. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  86981. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion const &,
  86982. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange const &,
  86983. VULKAN_HPP_NAMESPACE::ChromaLocation const &,
  86984. VULKAN_HPP_NAMESPACE::ChromaLocation const &>
  86985. # endif
  86986. reflect() const VULKAN_HPP_NOEXCEPT
  86987. {
  86988. return std::tie( sType,
  86989. pNext,
  86990. format,
  86991. externalFormat,
  86992. screenUsage,
  86993. formatFeatures,
  86994. samplerYcbcrConversionComponents,
  86995. suggestedYcbcrModel,
  86996. suggestedYcbcrRange,
  86997. suggestedXChromaOffset,
  86998. suggestedYChromaOffset );
  86999. }
  87000. # endif
  87001. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  87002. auto operator<=>( ScreenBufferFormatPropertiesQNX const & ) const = default;
  87003. # else
  87004. bool operator==( ScreenBufferFormatPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  87005. {
  87006. # if defined( VULKAN_HPP_USE_REFLECT )
  87007. return this->reflect() == rhs.reflect();
  87008. # else
  87009. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( externalFormat == rhs.externalFormat ) &&
  87010. ( screenUsage == rhs.screenUsage ) && ( formatFeatures == rhs.formatFeatures ) &&
  87011. ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) &&
  87012. ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) &&
  87013. ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
  87014. # endif
  87015. }
  87016. bool operator!=( ScreenBufferFormatPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  87017. {
  87018. return !operator==( rhs );
  87019. }
  87020. # endif
  87021. public:
  87022. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eScreenBufferFormatPropertiesQNX;
  87023. void * pNext = {};
  87024. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  87025. uint64_t externalFormat = {};
  87026. uint64_t screenUsage = {};
  87027. VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {};
  87028. VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {};
  87029. VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity;
  87030. VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull;
  87031. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  87032. VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven;
  87033. };
  87034. template <>
  87035. struct CppType<StructureType, StructureType::eScreenBufferFormatPropertiesQNX>
  87036. {
  87037. using Type = ScreenBufferFormatPropertiesQNX;
  87038. };
  87039. #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
  87040. #if defined( VK_USE_PLATFORM_SCREEN_QNX )
  87041. struct ScreenBufferPropertiesQNX
  87042. {
  87043. using NativeType = VkScreenBufferPropertiesQNX;
  87044. static const bool allowDuplicate = false;
  87045. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eScreenBufferPropertiesQNX;
  87046. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  87047. VULKAN_HPP_CONSTEXPR ScreenBufferPropertiesQNX( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {},
  87048. uint32_t memoryTypeBits_ = {},
  87049. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  87050. : pNext( pNext_ )
  87051. , allocationSize( allocationSize_ )
  87052. , memoryTypeBits( memoryTypeBits_ )
  87053. {
  87054. }
  87055. VULKAN_HPP_CONSTEXPR ScreenBufferPropertiesQNX( ScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87056. ScreenBufferPropertiesQNX( VkScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  87057. : ScreenBufferPropertiesQNX( *reinterpret_cast<ScreenBufferPropertiesQNX const *>( &rhs ) )
  87058. {
  87059. }
  87060. ScreenBufferPropertiesQNX & operator=( ScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87061. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  87062. ScreenBufferPropertiesQNX & operator=( VkScreenBufferPropertiesQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  87063. {
  87064. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX const *>( &rhs );
  87065. return *this;
  87066. }
  87067. operator VkScreenBufferPropertiesQNX const &() const VULKAN_HPP_NOEXCEPT
  87068. {
  87069. return *reinterpret_cast<const VkScreenBufferPropertiesQNX *>( this );
  87070. }
  87071. operator VkScreenBufferPropertiesQNX &() VULKAN_HPP_NOEXCEPT
  87072. {
  87073. return *reinterpret_cast<VkScreenBufferPropertiesQNX *>( this );
  87074. }
  87075. # if defined( VULKAN_HPP_USE_REFLECT )
  87076. # if 14 <= VULKAN_HPP_CPP_VERSION
  87077. auto
  87078. # else
  87079. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, uint32_t const &>
  87080. # endif
  87081. reflect() const VULKAN_HPP_NOEXCEPT
  87082. {
  87083. return std::tie( sType, pNext, allocationSize, memoryTypeBits );
  87084. }
  87085. # endif
  87086. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  87087. auto operator<=>( ScreenBufferPropertiesQNX const & ) const = default;
  87088. # else
  87089. bool operator==( ScreenBufferPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  87090. {
  87091. # if defined( VULKAN_HPP_USE_REFLECT )
  87092. return this->reflect() == rhs.reflect();
  87093. # else
  87094. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( allocationSize == rhs.allocationSize ) && ( memoryTypeBits == rhs.memoryTypeBits );
  87095. # endif
  87096. }
  87097. bool operator!=( ScreenBufferPropertiesQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  87098. {
  87099. return !operator==( rhs );
  87100. }
  87101. # endif
  87102. public:
  87103. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eScreenBufferPropertiesQNX;
  87104. void * pNext = {};
  87105. VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {};
  87106. uint32_t memoryTypeBits = {};
  87107. };
  87108. template <>
  87109. struct CppType<StructureType, StructureType::eScreenBufferPropertiesQNX>
  87110. {
  87111. using Type = ScreenBufferPropertiesQNX;
  87112. };
  87113. #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
  87114. #if defined( VK_USE_PLATFORM_SCREEN_QNX )
  87115. struct ScreenSurfaceCreateInfoQNX
  87116. {
  87117. using NativeType = VkScreenSurfaceCreateInfoQNX;
  87118. static const bool allowDuplicate = false;
  87119. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eScreenSurfaceCreateInfoQNX;
  87120. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  87121. VULKAN_HPP_CONSTEXPR ScreenSurfaceCreateInfoQNX( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ = {},
  87122. struct _screen_context * context_ = {},
  87123. struct _screen_window * window_ = {},
  87124. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  87125. : pNext( pNext_ )
  87126. , flags( flags_ )
  87127. , context( context_ )
  87128. , window( window_ )
  87129. {
  87130. }
  87131. VULKAN_HPP_CONSTEXPR ScreenSurfaceCreateInfoQNX( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87132. ScreenSurfaceCreateInfoQNX( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  87133. : ScreenSurfaceCreateInfoQNX( *reinterpret_cast<ScreenSurfaceCreateInfoQNX const *>( &rhs ) )
  87134. {
  87135. }
  87136. ScreenSurfaceCreateInfoQNX & operator=( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87137. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  87138. ScreenSurfaceCreateInfoQNX & operator=( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT
  87139. {
  87140. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const *>( &rhs );
  87141. return *this;
  87142. }
  87143. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  87144. VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  87145. {
  87146. pNext = pNext_;
  87147. return *this;
  87148. }
  87149. VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setFlags( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ ) VULKAN_HPP_NOEXCEPT
  87150. {
  87151. flags = flags_;
  87152. return *this;
  87153. }
  87154. VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setContext( struct _screen_context * context_ ) VULKAN_HPP_NOEXCEPT
  87155. {
  87156. context = context_;
  87157. return *this;
  87158. }
  87159. VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & setWindow( struct _screen_window * window_ ) VULKAN_HPP_NOEXCEPT
  87160. {
  87161. window = window_;
  87162. return *this;
  87163. }
  87164. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  87165. operator VkScreenSurfaceCreateInfoQNX const &() const VULKAN_HPP_NOEXCEPT
  87166. {
  87167. return *reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( this );
  87168. }
  87169. operator VkScreenSurfaceCreateInfoQNX &() VULKAN_HPP_NOEXCEPT
  87170. {
  87171. return *reinterpret_cast<VkScreenSurfaceCreateInfoQNX *>( this );
  87172. }
  87173. # if defined( VULKAN_HPP_USE_REFLECT )
  87174. # if 14 <= VULKAN_HPP_CPP_VERSION
  87175. auto
  87176. # else
  87177. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  87178. const void * const &,
  87179. VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX const &,
  87180. struct _screen_context * const &,
  87181. struct _screen_window * const &>
  87182. # endif
  87183. reflect() const VULKAN_HPP_NOEXCEPT
  87184. {
  87185. return std::tie( sType, pNext, flags, context, window );
  87186. }
  87187. # endif
  87188. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  87189. auto operator<=>( ScreenSurfaceCreateInfoQNX const & ) const = default;
  87190. # else
  87191. bool operator==( ScreenSurfaceCreateInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  87192. {
  87193. # if defined( VULKAN_HPP_USE_REFLECT )
  87194. return this->reflect() == rhs.reflect();
  87195. # else
  87196. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( context == rhs.context ) && ( window == rhs.window );
  87197. # endif
  87198. }
  87199. bool operator!=( ScreenSurfaceCreateInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT
  87200. {
  87201. return !operator==( rhs );
  87202. }
  87203. # endif
  87204. public:
  87205. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eScreenSurfaceCreateInfoQNX;
  87206. const void * pNext = {};
  87207. VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags = {};
  87208. struct _screen_context * context = {};
  87209. struct _screen_window * window = {};
  87210. };
  87211. template <>
  87212. struct CppType<StructureType, StructureType::eScreenSurfaceCreateInfoQNX>
  87213. {
  87214. using Type = ScreenSurfaceCreateInfoQNX;
  87215. };
  87216. #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
  87217. struct SemaphoreCreateInfo
  87218. {
  87219. using NativeType = VkSemaphoreCreateInfo;
  87220. static const bool allowDuplicate = false;
  87221. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreCreateInfo;
  87222. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  87223. VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  87224. : pNext( pNext_ )
  87225. , flags( flags_ )
  87226. {
  87227. }
  87228. VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87229. SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SemaphoreCreateInfo( *reinterpret_cast<SemaphoreCreateInfo const *>( &rhs ) )
  87230. {
  87231. }
  87232. SemaphoreCreateInfo & operator=( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87233. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  87234. SemaphoreCreateInfo & operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  87235. {
  87236. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const *>( &rhs );
  87237. return *this;
  87238. }
  87239. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  87240. VULKAN_HPP_CONSTEXPR_14 SemaphoreCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  87241. {
  87242. pNext = pNext_;
  87243. return *this;
  87244. }
  87245. VULKAN_HPP_CONSTEXPR_14 SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  87246. {
  87247. flags = flags_;
  87248. return *this;
  87249. }
  87250. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  87251. operator VkSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  87252. {
  87253. return *reinterpret_cast<const VkSemaphoreCreateInfo *>( this );
  87254. }
  87255. operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT
  87256. {
  87257. return *reinterpret_cast<VkSemaphoreCreateInfo *>( this );
  87258. }
  87259. #if defined( VULKAN_HPP_USE_REFLECT )
  87260. # if 14 <= VULKAN_HPP_CPP_VERSION
  87261. auto
  87262. # else
  87263. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags const &>
  87264. # endif
  87265. reflect() const VULKAN_HPP_NOEXCEPT
  87266. {
  87267. return std::tie( sType, pNext, flags );
  87268. }
  87269. #endif
  87270. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  87271. auto operator<=>( SemaphoreCreateInfo const & ) const = default;
  87272. #else
  87273. bool operator==( SemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  87274. {
  87275. # if defined( VULKAN_HPP_USE_REFLECT )
  87276. return this->reflect() == rhs.reflect();
  87277. # else
  87278. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  87279. # endif
  87280. }
  87281. bool operator!=( SemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  87282. {
  87283. return !operator==( rhs );
  87284. }
  87285. #endif
  87286. public:
  87287. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo;
  87288. const void * pNext = {};
  87289. VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {};
  87290. };
  87291. template <>
  87292. struct CppType<StructureType, StructureType::eSemaphoreCreateInfo>
  87293. {
  87294. using Type = SemaphoreCreateInfo;
  87295. };
  87296. struct SemaphoreGetFdInfoKHR
  87297. {
  87298. using NativeType = VkSemaphoreGetFdInfoKHR;
  87299. static const bool allowDuplicate = false;
  87300. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetFdInfoKHR;
  87301. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  87302. VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR(
  87303. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  87304. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  87305. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  87306. : pNext( pNext_ )
  87307. , semaphore( semaphore_ )
  87308. , handleType( handleType_ )
  87309. {
  87310. }
  87311. VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87312. SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  87313. : SemaphoreGetFdInfoKHR( *reinterpret_cast<SemaphoreGetFdInfoKHR const *>( &rhs ) )
  87314. {
  87315. }
  87316. SemaphoreGetFdInfoKHR & operator=( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87317. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  87318. SemaphoreGetFdInfoKHR & operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  87319. {
  87320. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR const *>( &rhs );
  87321. return *this;
  87322. }
  87323. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  87324. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  87325. {
  87326. pNext = pNext_;
  87327. return *this;
  87328. }
  87329. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  87330. {
  87331. semaphore = semaphore_;
  87332. return *this;
  87333. }
  87334. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  87335. {
  87336. handleType = handleType_;
  87337. return *this;
  87338. }
  87339. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  87340. operator VkSemaphoreGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  87341. {
  87342. return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( this );
  87343. }
  87344. operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT
  87345. {
  87346. return *reinterpret_cast<VkSemaphoreGetFdInfoKHR *>( this );
  87347. }
  87348. #if defined( VULKAN_HPP_USE_REFLECT )
  87349. # if 14 <= VULKAN_HPP_CPP_VERSION
  87350. auto
  87351. # else
  87352. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  87353. const void * const &,
  87354. VULKAN_HPP_NAMESPACE::Semaphore const &,
  87355. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
  87356. # endif
  87357. reflect() const VULKAN_HPP_NOEXCEPT
  87358. {
  87359. return std::tie( sType, pNext, semaphore, handleType );
  87360. }
  87361. #endif
  87362. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  87363. auto operator<=>( SemaphoreGetFdInfoKHR const & ) const = default;
  87364. #else
  87365. bool operator==( SemaphoreGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  87366. {
  87367. # if defined( VULKAN_HPP_USE_REFLECT )
  87368. return this->reflect() == rhs.reflect();
  87369. # else
  87370. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( handleType == rhs.handleType );
  87371. # endif
  87372. }
  87373. bool operator!=( SemaphoreGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  87374. {
  87375. return !operator==( rhs );
  87376. }
  87377. #endif
  87378. public:
  87379. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR;
  87380. const void * pNext = {};
  87381. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  87382. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  87383. };
  87384. template <>
  87385. struct CppType<StructureType, StructureType::eSemaphoreGetFdInfoKHR>
  87386. {
  87387. using Type = SemaphoreGetFdInfoKHR;
  87388. };
  87389. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  87390. struct SemaphoreGetWin32HandleInfoKHR
  87391. {
  87392. using NativeType = VkSemaphoreGetWin32HandleInfoKHR;
  87393. static const bool allowDuplicate = false;
  87394. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
  87395. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  87396. VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR(
  87397. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  87398. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  87399. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  87400. : pNext( pNext_ )
  87401. , semaphore( semaphore_ )
  87402. , handleType( handleType_ )
  87403. {
  87404. }
  87405. VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87406. SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  87407. : SemaphoreGetWin32HandleInfoKHR( *reinterpret_cast<SemaphoreGetWin32HandleInfoKHR const *>( &rhs ) )
  87408. {
  87409. }
  87410. SemaphoreGetWin32HandleInfoKHR & operator=( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87411. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  87412. SemaphoreGetWin32HandleInfoKHR & operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  87413. {
  87414. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR const *>( &rhs );
  87415. return *this;
  87416. }
  87417. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  87418. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  87419. {
  87420. pNext = pNext_;
  87421. return *this;
  87422. }
  87423. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  87424. {
  87425. semaphore = semaphore_;
  87426. return *this;
  87427. }
  87428. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR &
  87429. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  87430. {
  87431. handleType = handleType_;
  87432. return *this;
  87433. }
  87434. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  87435. operator VkSemaphoreGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  87436. {
  87437. return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( this );
  87438. }
  87439. operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT
  87440. {
  87441. return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR *>( this );
  87442. }
  87443. # if defined( VULKAN_HPP_USE_REFLECT )
  87444. # if 14 <= VULKAN_HPP_CPP_VERSION
  87445. auto
  87446. # else
  87447. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  87448. const void * const &,
  87449. VULKAN_HPP_NAMESPACE::Semaphore const &,
  87450. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
  87451. # endif
  87452. reflect() const VULKAN_HPP_NOEXCEPT
  87453. {
  87454. return std::tie( sType, pNext, semaphore, handleType );
  87455. }
  87456. # endif
  87457. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  87458. auto operator<=>( SemaphoreGetWin32HandleInfoKHR const & ) const = default;
  87459. # else
  87460. bool operator==( SemaphoreGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  87461. {
  87462. # if defined( VULKAN_HPP_USE_REFLECT )
  87463. return this->reflect() == rhs.reflect();
  87464. # else
  87465. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( handleType == rhs.handleType );
  87466. # endif
  87467. }
  87468. bool operator!=( SemaphoreGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  87469. {
  87470. return !operator==( rhs );
  87471. }
  87472. # endif
  87473. public:
  87474. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
  87475. const void * pNext = {};
  87476. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  87477. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  87478. };
  87479. template <>
  87480. struct CppType<StructureType, StructureType::eSemaphoreGetWin32HandleInfoKHR>
  87481. {
  87482. using Type = SemaphoreGetWin32HandleInfoKHR;
  87483. };
  87484. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  87485. #if defined( VK_USE_PLATFORM_FUCHSIA )
  87486. struct SemaphoreGetZirconHandleInfoFUCHSIA
  87487. {
  87488. using NativeType = VkSemaphoreGetZirconHandleInfoFUCHSIA;
  87489. static const bool allowDuplicate = false;
  87490. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA;
  87491. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  87492. VULKAN_HPP_CONSTEXPR SemaphoreGetZirconHandleInfoFUCHSIA(
  87493. VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  87494. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  87495. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  87496. : pNext( pNext_ )
  87497. , semaphore( semaphore_ )
  87498. , handleType( handleType_ )
  87499. {
  87500. }
  87501. VULKAN_HPP_CONSTEXPR SemaphoreGetZirconHandleInfoFUCHSIA( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87502. SemaphoreGetZirconHandleInfoFUCHSIA( VkSemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  87503. : SemaphoreGetZirconHandleInfoFUCHSIA( *reinterpret_cast<SemaphoreGetZirconHandleInfoFUCHSIA const *>( &rhs ) )
  87504. {
  87505. }
  87506. SemaphoreGetZirconHandleInfoFUCHSIA & operator=( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87507. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  87508. SemaphoreGetZirconHandleInfoFUCHSIA & operator=( VkSemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT
  87509. {
  87510. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA const *>( &rhs );
  87511. return *this;
  87512. }
  87513. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  87514. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  87515. {
  87516. pNext = pNext_;
  87517. return *this;
  87518. }
  87519. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetZirconHandleInfoFUCHSIA & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  87520. {
  87521. semaphore = semaphore_;
  87522. return *this;
  87523. }
  87524. VULKAN_HPP_CONSTEXPR_14 SemaphoreGetZirconHandleInfoFUCHSIA &
  87525. setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT
  87526. {
  87527. handleType = handleType_;
  87528. return *this;
  87529. }
  87530. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  87531. operator VkSemaphoreGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT
  87532. {
  87533. return *reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( this );
  87534. }
  87535. operator VkSemaphoreGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT
  87536. {
  87537. return *reinterpret_cast<VkSemaphoreGetZirconHandleInfoFUCHSIA *>( this );
  87538. }
  87539. # if defined( VULKAN_HPP_USE_REFLECT )
  87540. # if 14 <= VULKAN_HPP_CPP_VERSION
  87541. auto
  87542. # else
  87543. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  87544. const void * const &,
  87545. VULKAN_HPP_NAMESPACE::Semaphore const &,
  87546. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits const &>
  87547. # endif
  87548. reflect() const VULKAN_HPP_NOEXCEPT
  87549. {
  87550. return std::tie( sType, pNext, semaphore, handleType );
  87551. }
  87552. # endif
  87553. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  87554. auto operator<=>( SemaphoreGetZirconHandleInfoFUCHSIA const & ) const = default;
  87555. # else
  87556. bool operator==( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  87557. {
  87558. # if defined( VULKAN_HPP_USE_REFLECT )
  87559. return this->reflect() == rhs.reflect();
  87560. # else
  87561. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( handleType == rhs.handleType );
  87562. # endif
  87563. }
  87564. bool operator!=( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT
  87565. {
  87566. return !operator==( rhs );
  87567. }
  87568. # endif
  87569. public:
  87570. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA;
  87571. const void * pNext = {};
  87572. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  87573. VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd;
  87574. };
  87575. template <>
  87576. struct CppType<StructureType, StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA>
  87577. {
  87578. using Type = SemaphoreGetZirconHandleInfoFUCHSIA;
  87579. };
  87580. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  87581. struct SemaphoreSignalInfo
  87582. {
  87583. using NativeType = VkSemaphoreSignalInfo;
  87584. static const bool allowDuplicate = false;
  87585. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSignalInfo;
  87586. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  87587. VULKAN_HPP_CONSTEXPR
  87588. SemaphoreSignalInfo( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  87589. : pNext( pNext_ )
  87590. , semaphore( semaphore_ )
  87591. , value( value_ )
  87592. {
  87593. }
  87594. VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87595. SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SemaphoreSignalInfo( *reinterpret_cast<SemaphoreSignalInfo const *>( &rhs ) )
  87596. {
  87597. }
  87598. SemaphoreSignalInfo & operator=( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87599. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  87600. SemaphoreSignalInfo & operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  87601. {
  87602. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo const *>( &rhs );
  87603. return *this;
  87604. }
  87605. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  87606. VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  87607. {
  87608. pNext = pNext_;
  87609. return *this;
  87610. }
  87611. VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  87612. {
  87613. semaphore = semaphore_;
  87614. return *this;
  87615. }
  87616. VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
  87617. {
  87618. value = value_;
  87619. return *this;
  87620. }
  87621. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  87622. operator VkSemaphoreSignalInfo const &() const VULKAN_HPP_NOEXCEPT
  87623. {
  87624. return *reinterpret_cast<const VkSemaphoreSignalInfo *>( this );
  87625. }
  87626. operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT
  87627. {
  87628. return *reinterpret_cast<VkSemaphoreSignalInfo *>( this );
  87629. }
  87630. #if defined( VULKAN_HPP_USE_REFLECT )
  87631. # if 14 <= VULKAN_HPP_CPP_VERSION
  87632. auto
  87633. # else
  87634. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Semaphore const &, uint64_t const &>
  87635. # endif
  87636. reflect() const VULKAN_HPP_NOEXCEPT
  87637. {
  87638. return std::tie( sType, pNext, semaphore, value );
  87639. }
  87640. #endif
  87641. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  87642. auto operator<=>( SemaphoreSignalInfo const & ) const = default;
  87643. #else
  87644. bool operator==( SemaphoreSignalInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  87645. {
  87646. # if defined( VULKAN_HPP_USE_REFLECT )
  87647. return this->reflect() == rhs.reflect();
  87648. # else
  87649. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( value == rhs.value );
  87650. # endif
  87651. }
  87652. bool operator!=( SemaphoreSignalInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  87653. {
  87654. return !operator==( rhs );
  87655. }
  87656. #endif
  87657. public:
  87658. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo;
  87659. const void * pNext = {};
  87660. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  87661. uint64_t value = {};
  87662. };
  87663. template <>
  87664. struct CppType<StructureType, StructureType::eSemaphoreSignalInfo>
  87665. {
  87666. using Type = SemaphoreSignalInfo;
  87667. };
  87668. using SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
  87669. struct SemaphoreSubmitInfo
  87670. {
  87671. using NativeType = VkSemaphoreSubmitInfo;
  87672. static const bool allowDuplicate = false;
  87673. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSubmitInfo;
  87674. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  87675. VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {},
  87676. uint64_t value_ = {},
  87677. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask_ = {},
  87678. uint32_t deviceIndex_ = {},
  87679. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  87680. : pNext( pNext_ )
  87681. , semaphore( semaphore_ )
  87682. , value( value_ )
  87683. , stageMask( stageMask_ )
  87684. , deviceIndex( deviceIndex_ )
  87685. {
  87686. }
  87687. VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfo( SemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87688. SemaphoreSubmitInfo( VkSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SemaphoreSubmitInfo( *reinterpret_cast<SemaphoreSubmitInfo const *>( &rhs ) )
  87689. {
  87690. }
  87691. SemaphoreSubmitInfo & operator=( SemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87692. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  87693. SemaphoreSubmitInfo & operator=( VkSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  87694. {
  87695. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo const *>( &rhs );
  87696. return *this;
  87697. }
  87698. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  87699. VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  87700. {
  87701. pNext = pNext_;
  87702. return *this;
  87703. }
  87704. VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT
  87705. {
  87706. semaphore = semaphore_;
  87707. return *this;
  87708. }
  87709. VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT
  87710. {
  87711. value = value_;
  87712. return *this;
  87713. }
  87714. VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask_ ) VULKAN_HPP_NOEXCEPT
  87715. {
  87716. stageMask = stageMask_;
  87717. return *this;
  87718. }
  87719. VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfo & setDeviceIndex( uint32_t deviceIndex_ ) VULKAN_HPP_NOEXCEPT
  87720. {
  87721. deviceIndex = deviceIndex_;
  87722. return *this;
  87723. }
  87724. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  87725. operator VkSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  87726. {
  87727. return *reinterpret_cast<const VkSemaphoreSubmitInfo *>( this );
  87728. }
  87729. operator VkSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
  87730. {
  87731. return *reinterpret_cast<VkSemaphoreSubmitInfo *>( this );
  87732. }
  87733. #if defined( VULKAN_HPP_USE_REFLECT )
  87734. # if 14 <= VULKAN_HPP_CPP_VERSION
  87735. auto
  87736. # else
  87737. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  87738. const void * const &,
  87739. VULKAN_HPP_NAMESPACE::Semaphore const &,
  87740. uint64_t const &,
  87741. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 const &,
  87742. uint32_t const &>
  87743. # endif
  87744. reflect() const VULKAN_HPP_NOEXCEPT
  87745. {
  87746. return std::tie( sType, pNext, semaphore, value, stageMask, deviceIndex );
  87747. }
  87748. #endif
  87749. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  87750. auto operator<=>( SemaphoreSubmitInfo const & ) const = default;
  87751. #else
  87752. bool operator==( SemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  87753. {
  87754. # if defined( VULKAN_HPP_USE_REFLECT )
  87755. return this->reflect() == rhs.reflect();
  87756. # else
  87757. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && ( value == rhs.value ) && ( stageMask == rhs.stageMask ) &&
  87758. ( deviceIndex == rhs.deviceIndex );
  87759. # endif
  87760. }
  87761. bool operator!=( SemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  87762. {
  87763. return !operator==( rhs );
  87764. }
  87765. #endif
  87766. public:
  87767. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSubmitInfo;
  87768. const void * pNext = {};
  87769. VULKAN_HPP_NAMESPACE::Semaphore semaphore = {};
  87770. uint64_t value = {};
  87771. VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask = {};
  87772. uint32_t deviceIndex = {};
  87773. };
  87774. template <>
  87775. struct CppType<StructureType, StructureType::eSemaphoreSubmitInfo>
  87776. {
  87777. using Type = SemaphoreSubmitInfo;
  87778. };
  87779. using SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo;
  87780. struct SemaphoreTypeCreateInfo
  87781. {
  87782. using NativeType = VkSemaphoreTypeCreateInfo;
  87783. static const bool allowDuplicate = false;
  87784. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreTypeCreateInfo;
  87785. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  87786. VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary,
  87787. uint64_t initialValue_ = {},
  87788. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  87789. : pNext( pNext_ )
  87790. , semaphoreType( semaphoreType_ )
  87791. , initialValue( initialValue_ )
  87792. {
  87793. }
  87794. VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87795. SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  87796. : SemaphoreTypeCreateInfo( *reinterpret_cast<SemaphoreTypeCreateInfo const *>( &rhs ) )
  87797. {
  87798. }
  87799. SemaphoreTypeCreateInfo & operator=( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87800. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  87801. SemaphoreTypeCreateInfo & operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  87802. {
  87803. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const *>( &rhs );
  87804. return *this;
  87805. }
  87806. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  87807. VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  87808. {
  87809. pNext = pNext_;
  87810. return *this;
  87811. }
  87812. VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT
  87813. {
  87814. semaphoreType = semaphoreType_;
  87815. return *this;
  87816. }
  87817. VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT
  87818. {
  87819. initialValue = initialValue_;
  87820. return *this;
  87821. }
  87822. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  87823. operator VkSemaphoreTypeCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  87824. {
  87825. return *reinterpret_cast<const VkSemaphoreTypeCreateInfo *>( this );
  87826. }
  87827. operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT
  87828. {
  87829. return *reinterpret_cast<VkSemaphoreTypeCreateInfo *>( this );
  87830. }
  87831. #if defined( VULKAN_HPP_USE_REFLECT )
  87832. # if 14 <= VULKAN_HPP_CPP_VERSION
  87833. auto
  87834. # else
  87835. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SemaphoreType const &, uint64_t const &>
  87836. # endif
  87837. reflect() const VULKAN_HPP_NOEXCEPT
  87838. {
  87839. return std::tie( sType, pNext, semaphoreType, initialValue );
  87840. }
  87841. #endif
  87842. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  87843. auto operator<=>( SemaphoreTypeCreateInfo const & ) const = default;
  87844. #else
  87845. bool operator==( SemaphoreTypeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  87846. {
  87847. # if defined( VULKAN_HPP_USE_REFLECT )
  87848. return this->reflect() == rhs.reflect();
  87849. # else
  87850. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphoreType == rhs.semaphoreType ) && ( initialValue == rhs.initialValue );
  87851. # endif
  87852. }
  87853. bool operator!=( SemaphoreTypeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  87854. {
  87855. return !operator==( rhs );
  87856. }
  87857. #endif
  87858. public:
  87859. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo;
  87860. const void * pNext = {};
  87861. VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary;
  87862. uint64_t initialValue = {};
  87863. };
  87864. template <>
  87865. struct CppType<StructureType, StructureType::eSemaphoreTypeCreateInfo>
  87866. {
  87867. using Type = SemaphoreTypeCreateInfo;
  87868. };
  87869. using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
  87870. struct SemaphoreWaitInfo
  87871. {
  87872. using NativeType = VkSemaphoreWaitInfo;
  87873. static const bool allowDuplicate = false;
  87874. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreWaitInfo;
  87875. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  87876. VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ = {},
  87877. uint32_t semaphoreCount_ = {},
  87878. const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores_ = {},
  87879. const uint64_t * pValues_ = {},
  87880. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  87881. : pNext( pNext_ )
  87882. , flags( flags_ )
  87883. , semaphoreCount( semaphoreCount_ )
  87884. , pSemaphores( pSemaphores_ )
  87885. , pValues( pValues_ )
  87886. {
  87887. }
  87888. VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87889. SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SemaphoreWaitInfo( *reinterpret_cast<SemaphoreWaitInfo const *>( &rhs ) ) {}
  87890. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  87891. SemaphoreWaitInfo( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_,
  87892. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_,
  87893. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ = {},
  87894. const void * pNext_ = nullptr )
  87895. : pNext( pNext_ )
  87896. , flags( flags_ )
  87897. , semaphoreCount( static_cast<uint32_t>( semaphores_.size() ) )
  87898. , pSemaphores( semaphores_.data() )
  87899. , pValues( values_.data() )
  87900. {
  87901. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  87902. VULKAN_HPP_ASSERT( semaphores_.size() == values_.size() );
  87903. # else
  87904. if ( semaphores_.size() != values_.size() )
  87905. {
  87906. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SemaphoreWaitInfo::SemaphoreWaitInfo: semaphores_.size() != values_.size()" );
  87907. }
  87908. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  87909. }
  87910. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  87911. SemaphoreWaitInfo & operator=( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  87912. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  87913. SemaphoreWaitInfo & operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  87914. {
  87915. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo const *>( &rhs );
  87916. return *this;
  87917. }
  87918. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  87919. VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  87920. {
  87921. pNext = pNext_;
  87922. return *this;
  87923. }
  87924. VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT
  87925. {
  87926. flags = flags_;
  87927. return *this;
  87928. }
  87929. VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  87930. {
  87931. semaphoreCount = semaphoreCount_;
  87932. return *this;
  87933. }
  87934. VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores_ ) VULKAN_HPP_NOEXCEPT
  87935. {
  87936. pSemaphores = pSemaphores_;
  87937. return *this;
  87938. }
  87939. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  87940. SemaphoreWaitInfo &
  87941. setSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & semaphores_ ) VULKAN_HPP_NOEXCEPT
  87942. {
  87943. semaphoreCount = static_cast<uint32_t>( semaphores_.size() );
  87944. pSemaphores = semaphores_.data();
  87945. return *this;
  87946. }
  87947. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  87948. VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & setPValues( const uint64_t * pValues_ ) VULKAN_HPP_NOEXCEPT
  87949. {
  87950. pValues = pValues_;
  87951. return *this;
  87952. }
  87953. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  87954. SemaphoreWaitInfo & setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & values_ ) VULKAN_HPP_NOEXCEPT
  87955. {
  87956. semaphoreCount = static_cast<uint32_t>( values_.size() );
  87957. pValues = values_.data();
  87958. return *this;
  87959. }
  87960. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  87961. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  87962. operator VkSemaphoreWaitInfo const &() const VULKAN_HPP_NOEXCEPT
  87963. {
  87964. return *reinterpret_cast<const VkSemaphoreWaitInfo *>( this );
  87965. }
  87966. operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT
  87967. {
  87968. return *reinterpret_cast<VkSemaphoreWaitInfo *>( this );
  87969. }
  87970. #if defined( VULKAN_HPP_USE_REFLECT )
  87971. # if 14 <= VULKAN_HPP_CPP_VERSION
  87972. auto
  87973. # else
  87974. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  87975. const void * const &,
  87976. VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags const &,
  87977. uint32_t const &,
  87978. const VULKAN_HPP_NAMESPACE::Semaphore * const &,
  87979. const uint64_t * const &>
  87980. # endif
  87981. reflect() const VULKAN_HPP_NOEXCEPT
  87982. {
  87983. return std::tie( sType, pNext, flags, semaphoreCount, pSemaphores, pValues );
  87984. }
  87985. #endif
  87986. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  87987. auto operator<=>( SemaphoreWaitInfo const & ) const = default;
  87988. #else
  87989. bool operator==( SemaphoreWaitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  87990. {
  87991. # if defined( VULKAN_HPP_USE_REFLECT )
  87992. return this->reflect() == rhs.reflect();
  87993. # else
  87994. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( semaphoreCount == rhs.semaphoreCount ) &&
  87995. ( pSemaphores == rhs.pSemaphores ) && ( pValues == rhs.pValues );
  87996. # endif
  87997. }
  87998. bool operator!=( SemaphoreWaitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  87999. {
  88000. return !operator==( rhs );
  88001. }
  88002. #endif
  88003. public:
  88004. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo;
  88005. const void * pNext = {};
  88006. VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {};
  88007. uint32_t semaphoreCount = {};
  88008. const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores = {};
  88009. const uint64_t * pValues = {};
  88010. };
  88011. template <>
  88012. struct CppType<StructureType, StructureType::eSemaphoreWaitInfo>
  88013. {
  88014. using Type = SemaphoreWaitInfo;
  88015. };
  88016. using SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
  88017. struct SetLatencyMarkerInfoNV
  88018. {
  88019. using NativeType = VkSetLatencyMarkerInfoNV;
  88020. static const bool allowDuplicate = false;
  88021. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSetLatencyMarkerInfoNV;
  88022. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  88023. VULKAN_HPP_CONSTEXPR SetLatencyMarkerInfoNV( uint64_t presentID_ = {},
  88024. VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker_ = VULKAN_HPP_NAMESPACE::LatencyMarkerNV::eSimulationStart,
  88025. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  88026. : pNext( pNext_ )
  88027. , presentID( presentID_ )
  88028. , marker( marker_ )
  88029. {
  88030. }
  88031. VULKAN_HPP_CONSTEXPR SetLatencyMarkerInfoNV( SetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88032. SetLatencyMarkerInfoNV( VkSetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  88033. : SetLatencyMarkerInfoNV( *reinterpret_cast<SetLatencyMarkerInfoNV const *>( &rhs ) )
  88034. {
  88035. }
  88036. SetLatencyMarkerInfoNV & operator=( SetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88037. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  88038. SetLatencyMarkerInfoNV & operator=( VkSetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  88039. {
  88040. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV const *>( &rhs );
  88041. return *this;
  88042. }
  88043. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  88044. VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  88045. {
  88046. pNext = pNext_;
  88047. return *this;
  88048. }
  88049. VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setPresentID( uint64_t presentID_ ) VULKAN_HPP_NOEXCEPT
  88050. {
  88051. presentID = presentID_;
  88052. return *this;
  88053. }
  88054. VULKAN_HPP_CONSTEXPR_14 SetLatencyMarkerInfoNV & setMarker( VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker_ ) VULKAN_HPP_NOEXCEPT
  88055. {
  88056. marker = marker_;
  88057. return *this;
  88058. }
  88059. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  88060. operator VkSetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT
  88061. {
  88062. return *reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( this );
  88063. }
  88064. operator VkSetLatencyMarkerInfoNV &() VULKAN_HPP_NOEXCEPT
  88065. {
  88066. return *reinterpret_cast<VkSetLatencyMarkerInfoNV *>( this );
  88067. }
  88068. #if defined( VULKAN_HPP_USE_REFLECT )
  88069. # if 14 <= VULKAN_HPP_CPP_VERSION
  88070. auto
  88071. # else
  88072. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, VULKAN_HPP_NAMESPACE::LatencyMarkerNV const &>
  88073. # endif
  88074. reflect() const VULKAN_HPP_NOEXCEPT
  88075. {
  88076. return std::tie( sType, pNext, presentID, marker );
  88077. }
  88078. #endif
  88079. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  88080. auto operator<=>( SetLatencyMarkerInfoNV const & ) const = default;
  88081. #else
  88082. bool operator==( SetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  88083. {
  88084. # if defined( VULKAN_HPP_USE_REFLECT )
  88085. return this->reflect() == rhs.reflect();
  88086. # else
  88087. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentID == rhs.presentID ) && ( marker == rhs.marker );
  88088. # endif
  88089. }
  88090. bool operator!=( SetLatencyMarkerInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  88091. {
  88092. return !operator==( rhs );
  88093. }
  88094. #endif
  88095. public:
  88096. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSetLatencyMarkerInfoNV;
  88097. const void * pNext = {};
  88098. uint64_t presentID = {};
  88099. VULKAN_HPP_NAMESPACE::LatencyMarkerNV marker = VULKAN_HPP_NAMESPACE::LatencyMarkerNV::eSimulationStart;
  88100. };
  88101. template <>
  88102. struct CppType<StructureType, StructureType::eSetLatencyMarkerInfoNV>
  88103. {
  88104. using Type = SetLatencyMarkerInfoNV;
  88105. };
  88106. struct SetStateFlagsIndirectCommandNV
  88107. {
  88108. using NativeType = VkSetStateFlagsIndirectCommandNV;
  88109. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  88110. VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( uint32_t data_ = {} ) VULKAN_HPP_NOEXCEPT : data( data_ ) {}
  88111. VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88112. SetStateFlagsIndirectCommandNV( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  88113. : SetStateFlagsIndirectCommandNV( *reinterpret_cast<SetStateFlagsIndirectCommandNV const *>( &rhs ) )
  88114. {
  88115. }
  88116. SetStateFlagsIndirectCommandNV & operator=( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88117. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  88118. SetStateFlagsIndirectCommandNV & operator=( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT
  88119. {
  88120. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const *>( &rhs );
  88121. return *this;
  88122. }
  88123. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  88124. VULKAN_HPP_CONSTEXPR_14 SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT
  88125. {
  88126. data = data_;
  88127. return *this;
  88128. }
  88129. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  88130. operator VkSetStateFlagsIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT
  88131. {
  88132. return *reinterpret_cast<const VkSetStateFlagsIndirectCommandNV *>( this );
  88133. }
  88134. operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT
  88135. {
  88136. return *reinterpret_cast<VkSetStateFlagsIndirectCommandNV *>( this );
  88137. }
  88138. #if defined( VULKAN_HPP_USE_REFLECT )
  88139. # if 14 <= VULKAN_HPP_CPP_VERSION
  88140. auto
  88141. # else
  88142. std::tuple<uint32_t const &>
  88143. # endif
  88144. reflect() const VULKAN_HPP_NOEXCEPT
  88145. {
  88146. return std::tie( data );
  88147. }
  88148. #endif
  88149. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  88150. auto operator<=>( SetStateFlagsIndirectCommandNV const & ) const = default;
  88151. #else
  88152. bool operator==( SetStateFlagsIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  88153. {
  88154. # if defined( VULKAN_HPP_USE_REFLECT )
  88155. return this->reflect() == rhs.reflect();
  88156. # else
  88157. return ( data == rhs.data );
  88158. # endif
  88159. }
  88160. bool operator!=( SetStateFlagsIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  88161. {
  88162. return !operator==( rhs );
  88163. }
  88164. #endif
  88165. public:
  88166. uint32_t data = {};
  88167. };
  88168. struct ShaderCreateInfoEXT
  88169. {
  88170. using NativeType = VkShaderCreateInfoEXT;
  88171. static const bool allowDuplicate = false;
  88172. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderCreateInfoEXT;
  88173. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  88174. VULKAN_HPP_CONSTEXPR ShaderCreateInfoEXT( VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT flags_ = {},
  88175. VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex,
  88176. VULKAN_HPP_NAMESPACE::ShaderStageFlags nextStage_ = {},
  88177. VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT codeType_ = VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT::eBinary,
  88178. size_t codeSize_ = {},
  88179. const void * pCode_ = {},
  88180. const char * pName_ = {},
  88181. uint32_t setLayoutCount_ = {},
  88182. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ = {},
  88183. uint32_t pushConstantRangeCount_ = {},
  88184. const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ = {},
  88185. const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ = {},
  88186. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  88187. : pNext( pNext_ )
  88188. , flags( flags_ )
  88189. , stage( stage_ )
  88190. , nextStage( nextStage_ )
  88191. , codeType( codeType_ )
  88192. , codeSize( codeSize_ )
  88193. , pCode( pCode_ )
  88194. , pName( pName_ )
  88195. , setLayoutCount( setLayoutCount_ )
  88196. , pSetLayouts( pSetLayouts_ )
  88197. , pushConstantRangeCount( pushConstantRangeCount_ )
  88198. , pPushConstantRanges( pPushConstantRanges_ )
  88199. , pSpecializationInfo( pSpecializationInfo_ )
  88200. {
  88201. }
  88202. VULKAN_HPP_CONSTEXPR ShaderCreateInfoEXT( ShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88203. ShaderCreateInfoEXT( VkShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT : ShaderCreateInfoEXT( *reinterpret_cast<ShaderCreateInfoEXT const *>( &rhs ) )
  88204. {
  88205. }
  88206. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  88207. template <typename T>
  88208. ShaderCreateInfoEXT( VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT flags_,
  88209. VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_,
  88210. VULKAN_HPP_NAMESPACE::ShaderStageFlags nextStage_,
  88211. VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT codeType_,
  88212. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & code_,
  88213. const char * pName_ = {},
  88214. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ = {},
  88215. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ = {},
  88216. const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ = {},
  88217. const void * pNext_ = nullptr )
  88218. : pNext( pNext_ )
  88219. , flags( flags_ )
  88220. , stage( stage_ )
  88221. , nextStage( nextStage_ )
  88222. , codeType( codeType_ )
  88223. , codeSize( code_.size() * sizeof( T ) )
  88224. , pCode( code_.data() )
  88225. , pName( pName_ )
  88226. , setLayoutCount( static_cast<uint32_t>( setLayouts_.size() ) )
  88227. , pSetLayouts( setLayouts_.data() )
  88228. , pushConstantRangeCount( static_cast<uint32_t>( pushConstantRanges_.size() ) )
  88229. , pPushConstantRanges( pushConstantRanges_.data() )
  88230. , pSpecializationInfo( pSpecializationInfo_ )
  88231. {
  88232. }
  88233. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  88234. ShaderCreateInfoEXT & operator=( ShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88235. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  88236. ShaderCreateInfoEXT & operator=( VkShaderCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  88237. {
  88238. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const *>( &rhs );
  88239. return *this;
  88240. }
  88241. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  88242. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  88243. {
  88244. pNext = pNext_;
  88245. return *this;
  88246. }
  88247. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  88248. {
  88249. flags = flags_;
  88250. return *this;
  88251. }
  88252. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT
  88253. {
  88254. stage = stage_;
  88255. return *this;
  88256. }
  88257. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setNextStage( VULKAN_HPP_NAMESPACE::ShaderStageFlags nextStage_ ) VULKAN_HPP_NOEXCEPT
  88258. {
  88259. nextStage = nextStage_;
  88260. return *this;
  88261. }
  88262. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setCodeType( VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT codeType_ ) VULKAN_HPP_NOEXCEPT
  88263. {
  88264. codeType = codeType_;
  88265. return *this;
  88266. }
  88267. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT
  88268. {
  88269. codeSize = codeSize_;
  88270. return *this;
  88271. }
  88272. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPCode( const void * pCode_ ) VULKAN_HPP_NOEXCEPT
  88273. {
  88274. pCode = pCode_;
  88275. return *this;
  88276. }
  88277. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  88278. template <typename T>
  88279. ShaderCreateInfoEXT & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & code_ ) VULKAN_HPP_NOEXCEPT
  88280. {
  88281. codeSize = code_.size() * sizeof( T );
  88282. pCode = code_.data();
  88283. return *this;
  88284. }
  88285. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  88286. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT
  88287. {
  88288. pName = pName_;
  88289. return *this;
  88290. }
  88291. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
  88292. {
  88293. setLayoutCount = setLayoutCount_;
  88294. return *this;
  88295. }
  88296. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
  88297. {
  88298. pSetLayouts = pSetLayouts_;
  88299. return *this;
  88300. }
  88301. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  88302. ShaderCreateInfoEXT &
  88303. setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
  88304. {
  88305. setLayoutCount = static_cast<uint32_t>( setLayouts_.size() );
  88306. pSetLayouts = setLayouts_.data();
  88307. return *this;
  88308. }
  88309. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  88310. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
  88311. {
  88312. pushConstantRangeCount = pushConstantRangeCount_;
  88313. return *this;
  88314. }
  88315. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT &
  88316. setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
  88317. {
  88318. pPushConstantRanges = pPushConstantRanges_;
  88319. return *this;
  88320. }
  88321. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  88322. ShaderCreateInfoEXT & setPushConstantRanges(
  88323. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
  88324. {
  88325. pushConstantRangeCount = static_cast<uint32_t>( pushConstantRanges_.size() );
  88326. pPushConstantRanges = pushConstantRanges_.data();
  88327. return *this;
  88328. }
  88329. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  88330. VULKAN_HPP_CONSTEXPR_14 ShaderCreateInfoEXT &
  88331. setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT
  88332. {
  88333. pSpecializationInfo = pSpecializationInfo_;
  88334. return *this;
  88335. }
  88336. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  88337. operator VkShaderCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  88338. {
  88339. return *reinterpret_cast<const VkShaderCreateInfoEXT *>( this );
  88340. }
  88341. operator VkShaderCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  88342. {
  88343. return *reinterpret_cast<VkShaderCreateInfoEXT *>( this );
  88344. }
  88345. #if defined( VULKAN_HPP_USE_REFLECT )
  88346. # if 14 <= VULKAN_HPP_CPP_VERSION
  88347. auto
  88348. # else
  88349. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  88350. const void * const &,
  88351. VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT const &,
  88352. VULKAN_HPP_NAMESPACE::ShaderStageFlagBits const &,
  88353. VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  88354. VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT const &,
  88355. size_t const &,
  88356. const void * const &,
  88357. const char * const &,
  88358. uint32_t const &,
  88359. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * const &,
  88360. uint32_t const &,
  88361. const VULKAN_HPP_NAMESPACE::PushConstantRange * const &,
  88362. const VULKAN_HPP_NAMESPACE::SpecializationInfo * const &>
  88363. # endif
  88364. reflect() const VULKAN_HPP_NOEXCEPT
  88365. {
  88366. return std::tie( sType,
  88367. pNext,
  88368. flags,
  88369. stage,
  88370. nextStage,
  88371. codeType,
  88372. codeSize,
  88373. pCode,
  88374. pName,
  88375. setLayoutCount,
  88376. pSetLayouts,
  88377. pushConstantRangeCount,
  88378. pPushConstantRanges,
  88379. pSpecializationInfo );
  88380. }
  88381. #endif
  88382. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  88383. std::strong_ordering operator<=>( ShaderCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  88384. {
  88385. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  88386. return cmp;
  88387. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  88388. return cmp;
  88389. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  88390. return cmp;
  88391. if ( auto cmp = stage <=> rhs.stage; cmp != 0 )
  88392. return cmp;
  88393. if ( auto cmp = nextStage <=> rhs.nextStage; cmp != 0 )
  88394. return cmp;
  88395. if ( auto cmp = codeType <=> rhs.codeType; cmp != 0 )
  88396. return cmp;
  88397. if ( auto cmp = codeSize <=> rhs.codeSize; cmp != 0 )
  88398. return cmp;
  88399. if ( auto cmp = pCode <=> rhs.pCode; cmp != 0 )
  88400. return cmp;
  88401. if ( pName != rhs.pName )
  88402. if ( auto cmp = strcmp( pName, rhs.pName ); cmp != 0 )
  88403. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  88404. if ( auto cmp = setLayoutCount <=> rhs.setLayoutCount; cmp != 0 )
  88405. return cmp;
  88406. if ( auto cmp = pSetLayouts <=> rhs.pSetLayouts; cmp != 0 )
  88407. return cmp;
  88408. if ( auto cmp = pushConstantRangeCount <=> rhs.pushConstantRangeCount; cmp != 0 )
  88409. return cmp;
  88410. if ( auto cmp = pPushConstantRanges <=> rhs.pPushConstantRanges; cmp != 0 )
  88411. return cmp;
  88412. if ( auto cmp = pSpecializationInfo <=> rhs.pSpecializationInfo; cmp != 0 )
  88413. return cmp;
  88414. return std::strong_ordering::equivalent;
  88415. }
  88416. #endif
  88417. bool operator==( ShaderCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  88418. {
  88419. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stage == rhs.stage ) && ( nextStage == rhs.nextStage ) &&
  88420. ( codeType == rhs.codeType ) && ( codeSize == rhs.codeSize ) && ( pCode == rhs.pCode ) &&
  88421. ( ( pName == rhs.pName ) || ( strcmp( pName, rhs.pName ) == 0 ) ) && ( setLayoutCount == rhs.setLayoutCount ) &&
  88422. ( pSetLayouts == rhs.pSetLayouts ) && ( pushConstantRangeCount == rhs.pushConstantRangeCount ) &&
  88423. ( pPushConstantRanges == rhs.pPushConstantRanges ) && ( pSpecializationInfo == rhs.pSpecializationInfo );
  88424. }
  88425. bool operator!=( ShaderCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  88426. {
  88427. return !operator==( rhs );
  88428. }
  88429. public:
  88430. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderCreateInfoEXT;
  88431. const void * pNext = {};
  88432. VULKAN_HPP_NAMESPACE::ShaderCreateFlagsEXT flags = {};
  88433. VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex;
  88434. VULKAN_HPP_NAMESPACE::ShaderStageFlags nextStage = {};
  88435. VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT codeType = VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT::eBinary;
  88436. size_t codeSize = {};
  88437. const void * pCode = {};
  88438. const char * pName = {};
  88439. uint32_t setLayoutCount = {};
  88440. const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts = {};
  88441. uint32_t pushConstantRangeCount = {};
  88442. const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges = {};
  88443. const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo = {};
  88444. };
  88445. template <>
  88446. struct CppType<StructureType, StructureType::eShaderCreateInfoEXT>
  88447. {
  88448. using Type = ShaderCreateInfoEXT;
  88449. };
  88450. struct ShaderModuleCreateInfo
  88451. {
  88452. using NativeType = VkShaderModuleCreateInfo;
  88453. static const bool allowDuplicate = false;
  88454. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleCreateInfo;
  88455. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  88456. VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {},
  88457. size_t codeSize_ = {},
  88458. const uint32_t * pCode_ = {},
  88459. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  88460. : pNext( pNext_ )
  88461. , flags( flags_ )
  88462. , codeSize( codeSize_ )
  88463. , pCode( pCode_ )
  88464. {
  88465. }
  88466. VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88467. ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  88468. : ShaderModuleCreateInfo( *reinterpret_cast<ShaderModuleCreateInfo const *>( &rhs ) )
  88469. {
  88470. }
  88471. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  88472. ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_,
  88473. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_,
  88474. const void * pNext_ = nullptr )
  88475. : pNext( pNext_ ), flags( flags_ ), codeSize( code_.size() * 4 ), pCode( code_.data() )
  88476. {
  88477. }
  88478. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  88479. ShaderModuleCreateInfo & operator=( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88480. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  88481. ShaderModuleCreateInfo & operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  88482. {
  88483. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const *>( &rhs );
  88484. return *this;
  88485. }
  88486. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  88487. VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  88488. {
  88489. pNext = pNext_;
  88490. return *this;
  88491. }
  88492. VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT
  88493. {
  88494. flags = flags_;
  88495. return *this;
  88496. }
  88497. VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT
  88498. {
  88499. codeSize = codeSize_;
  88500. return *this;
  88501. }
  88502. VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & setPCode( const uint32_t * pCode_ ) VULKAN_HPP_NOEXCEPT
  88503. {
  88504. pCode = pCode_;
  88505. return *this;
  88506. }
  88507. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  88508. ShaderModuleCreateInfo & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & code_ ) VULKAN_HPP_NOEXCEPT
  88509. {
  88510. codeSize = code_.size() * 4;
  88511. pCode = code_.data();
  88512. return *this;
  88513. }
  88514. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  88515. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  88516. operator VkShaderModuleCreateInfo const &() const VULKAN_HPP_NOEXCEPT
  88517. {
  88518. return *reinterpret_cast<const VkShaderModuleCreateInfo *>( this );
  88519. }
  88520. operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT
  88521. {
  88522. return *reinterpret_cast<VkShaderModuleCreateInfo *>( this );
  88523. }
  88524. #if defined( VULKAN_HPP_USE_REFLECT )
  88525. # if 14 <= VULKAN_HPP_CPP_VERSION
  88526. auto
  88527. # else
  88528. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  88529. const void * const &,
  88530. VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags const &,
  88531. size_t const &,
  88532. const uint32_t * const &>
  88533. # endif
  88534. reflect() const VULKAN_HPP_NOEXCEPT
  88535. {
  88536. return std::tie( sType, pNext, flags, codeSize, pCode );
  88537. }
  88538. #endif
  88539. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  88540. auto operator<=>( ShaderModuleCreateInfo const & ) const = default;
  88541. #else
  88542. bool operator==( ShaderModuleCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  88543. {
  88544. # if defined( VULKAN_HPP_USE_REFLECT )
  88545. return this->reflect() == rhs.reflect();
  88546. # else
  88547. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( codeSize == rhs.codeSize ) && ( pCode == rhs.pCode );
  88548. # endif
  88549. }
  88550. bool operator!=( ShaderModuleCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  88551. {
  88552. return !operator==( rhs );
  88553. }
  88554. #endif
  88555. public:
  88556. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo;
  88557. const void * pNext = {};
  88558. VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {};
  88559. size_t codeSize = {};
  88560. const uint32_t * pCode = {};
  88561. };
  88562. template <>
  88563. struct CppType<StructureType, StructureType::eShaderModuleCreateInfo>
  88564. {
  88565. using Type = ShaderModuleCreateInfo;
  88566. };
  88567. struct ShaderModuleIdentifierEXT
  88568. {
  88569. using NativeType = VkShaderModuleIdentifierEXT;
  88570. static const bool allowDuplicate = false;
  88571. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleIdentifierEXT;
  88572. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  88573. VULKAN_HPP_CONSTEXPR_14 ShaderModuleIdentifierEXT( uint32_t identifierSize_ = {},
  88574. std::array<uint8_t, VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT> const & identifier_ = {},
  88575. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  88576. : pNext( pNext_ )
  88577. , identifierSize( identifierSize_ )
  88578. , identifier( identifier_ )
  88579. {
  88580. }
  88581. VULKAN_HPP_CONSTEXPR_14 ShaderModuleIdentifierEXT( ShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88582. ShaderModuleIdentifierEXT( VkShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  88583. : ShaderModuleIdentifierEXT( *reinterpret_cast<ShaderModuleIdentifierEXT const *>( &rhs ) )
  88584. {
  88585. }
  88586. ShaderModuleIdentifierEXT & operator=( ShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88587. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  88588. ShaderModuleIdentifierEXT & operator=( VkShaderModuleIdentifierEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  88589. {
  88590. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT const *>( &rhs );
  88591. return *this;
  88592. }
  88593. operator VkShaderModuleIdentifierEXT const &() const VULKAN_HPP_NOEXCEPT
  88594. {
  88595. return *reinterpret_cast<const VkShaderModuleIdentifierEXT *>( this );
  88596. }
  88597. operator VkShaderModuleIdentifierEXT &() VULKAN_HPP_NOEXCEPT
  88598. {
  88599. return *reinterpret_cast<VkShaderModuleIdentifierEXT *>( this );
  88600. }
  88601. #if defined( VULKAN_HPP_USE_REFLECT )
  88602. # if 14 <= VULKAN_HPP_CPP_VERSION
  88603. auto
  88604. # else
  88605. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  88606. void * const &,
  88607. uint32_t const &,
  88608. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT> const &>
  88609. # endif
  88610. reflect() const VULKAN_HPP_NOEXCEPT
  88611. {
  88612. return std::tie( sType, pNext, identifierSize, identifier );
  88613. }
  88614. #endif
  88615. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  88616. auto operator<=>( ShaderModuleIdentifierEXT const & ) const = default;
  88617. #else
  88618. bool operator==( ShaderModuleIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  88619. {
  88620. # if defined( VULKAN_HPP_USE_REFLECT )
  88621. return this->reflect() == rhs.reflect();
  88622. # else
  88623. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( identifierSize == rhs.identifierSize ) && ( identifier == rhs.identifier );
  88624. # endif
  88625. }
  88626. bool operator!=( ShaderModuleIdentifierEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  88627. {
  88628. return !operator==( rhs );
  88629. }
  88630. #endif
  88631. public:
  88632. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleIdentifierEXT;
  88633. void * pNext = {};
  88634. uint32_t identifierSize = {};
  88635. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT> identifier = {};
  88636. };
  88637. template <>
  88638. struct CppType<StructureType, StructureType::eShaderModuleIdentifierEXT>
  88639. {
  88640. using Type = ShaderModuleIdentifierEXT;
  88641. };
  88642. struct ShaderModuleValidationCacheCreateInfoEXT
  88643. {
  88644. using NativeType = VkShaderModuleValidationCacheCreateInfoEXT;
  88645. static const bool allowDuplicate = false;
  88646. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
  88647. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  88648. VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {},
  88649. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  88650. : pNext( pNext_ )
  88651. , validationCache( validationCache_ )
  88652. {
  88653. }
  88654. VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88655. ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  88656. : ShaderModuleValidationCacheCreateInfoEXT( *reinterpret_cast<ShaderModuleValidationCacheCreateInfoEXT const *>( &rhs ) )
  88657. {
  88658. }
  88659. ShaderModuleValidationCacheCreateInfoEXT & operator=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88660. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  88661. ShaderModuleValidationCacheCreateInfoEXT & operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  88662. {
  88663. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT const *>( &rhs );
  88664. return *this;
  88665. }
  88666. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  88667. VULKAN_HPP_CONSTEXPR_14 ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  88668. {
  88669. pNext = pNext_;
  88670. return *this;
  88671. }
  88672. VULKAN_HPP_CONSTEXPR_14 ShaderModuleValidationCacheCreateInfoEXT &
  88673. setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT
  88674. {
  88675. validationCache = validationCache_;
  88676. return *this;
  88677. }
  88678. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  88679. operator VkShaderModuleValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  88680. {
  88681. return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT *>( this );
  88682. }
  88683. operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  88684. {
  88685. return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT *>( this );
  88686. }
  88687. #if defined( VULKAN_HPP_USE_REFLECT )
  88688. # if 14 <= VULKAN_HPP_CPP_VERSION
  88689. auto
  88690. # else
  88691. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ValidationCacheEXT const &>
  88692. # endif
  88693. reflect() const VULKAN_HPP_NOEXCEPT
  88694. {
  88695. return std::tie( sType, pNext, validationCache );
  88696. }
  88697. #endif
  88698. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  88699. auto operator<=>( ShaderModuleValidationCacheCreateInfoEXT const & ) const = default;
  88700. #else
  88701. bool operator==( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  88702. {
  88703. # if defined( VULKAN_HPP_USE_REFLECT )
  88704. return this->reflect() == rhs.reflect();
  88705. # else
  88706. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( validationCache == rhs.validationCache );
  88707. # endif
  88708. }
  88709. bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  88710. {
  88711. return !operator==( rhs );
  88712. }
  88713. #endif
  88714. public:
  88715. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
  88716. const void * pNext = {};
  88717. VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {};
  88718. };
  88719. template <>
  88720. struct CppType<StructureType, StructureType::eShaderModuleValidationCacheCreateInfoEXT>
  88721. {
  88722. using Type = ShaderModuleValidationCacheCreateInfoEXT;
  88723. };
  88724. struct ShaderResourceUsageAMD
  88725. {
  88726. using NativeType = VkShaderResourceUsageAMD;
  88727. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  88728. VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( uint32_t numUsedVgprs_ = {},
  88729. uint32_t numUsedSgprs_ = {},
  88730. uint32_t ldsSizePerLocalWorkGroup_ = {},
  88731. size_t ldsUsageSizeInBytes_ = {},
  88732. size_t scratchMemUsageInBytes_ = {} ) VULKAN_HPP_NOEXCEPT
  88733. : numUsedVgprs( numUsedVgprs_ )
  88734. , numUsedSgprs( numUsedSgprs_ )
  88735. , ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ )
  88736. , ldsUsageSizeInBytes( ldsUsageSizeInBytes_ )
  88737. , scratchMemUsageInBytes( scratchMemUsageInBytes_ )
  88738. {
  88739. }
  88740. VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88741. ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  88742. : ShaderResourceUsageAMD( *reinterpret_cast<ShaderResourceUsageAMD const *>( &rhs ) )
  88743. {
  88744. }
  88745. ShaderResourceUsageAMD & operator=( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88746. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  88747. ShaderResourceUsageAMD & operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  88748. {
  88749. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const *>( &rhs );
  88750. return *this;
  88751. }
  88752. operator VkShaderResourceUsageAMD const &() const VULKAN_HPP_NOEXCEPT
  88753. {
  88754. return *reinterpret_cast<const VkShaderResourceUsageAMD *>( this );
  88755. }
  88756. operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT
  88757. {
  88758. return *reinterpret_cast<VkShaderResourceUsageAMD *>( this );
  88759. }
  88760. #if defined( VULKAN_HPP_USE_REFLECT )
  88761. # if 14 <= VULKAN_HPP_CPP_VERSION
  88762. auto
  88763. # else
  88764. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &, size_t const &, size_t const &>
  88765. # endif
  88766. reflect() const VULKAN_HPP_NOEXCEPT
  88767. {
  88768. return std::tie( numUsedVgprs, numUsedSgprs, ldsSizePerLocalWorkGroup, ldsUsageSizeInBytes, scratchMemUsageInBytes );
  88769. }
  88770. #endif
  88771. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  88772. auto operator<=>( ShaderResourceUsageAMD const & ) const = default;
  88773. #else
  88774. bool operator==( ShaderResourceUsageAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  88775. {
  88776. # if defined( VULKAN_HPP_USE_REFLECT )
  88777. return this->reflect() == rhs.reflect();
  88778. # else
  88779. return ( numUsedVgprs == rhs.numUsedVgprs ) && ( numUsedSgprs == rhs.numUsedSgprs ) && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup ) &&
  88780. ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes ) && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes );
  88781. # endif
  88782. }
  88783. bool operator!=( ShaderResourceUsageAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  88784. {
  88785. return !operator==( rhs );
  88786. }
  88787. #endif
  88788. public:
  88789. uint32_t numUsedVgprs = {};
  88790. uint32_t numUsedSgprs = {};
  88791. uint32_t ldsSizePerLocalWorkGroup = {};
  88792. size_t ldsUsageSizeInBytes = {};
  88793. size_t scratchMemUsageInBytes = {};
  88794. };
  88795. struct ShaderStatisticsInfoAMD
  88796. {
  88797. using NativeType = VkShaderStatisticsInfoAMD;
  88798. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  88799. VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask_ = {},
  88800. VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage_ = {},
  88801. uint32_t numPhysicalVgprs_ = {},
  88802. uint32_t numPhysicalSgprs_ = {},
  88803. uint32_t numAvailableVgprs_ = {},
  88804. uint32_t numAvailableSgprs_ = {},
  88805. std::array<uint32_t, 3> const & computeWorkGroupSize_ = {} ) VULKAN_HPP_NOEXCEPT
  88806. : shaderStageMask( shaderStageMask_ )
  88807. , resourceUsage( resourceUsage_ )
  88808. , numPhysicalVgprs( numPhysicalVgprs_ )
  88809. , numPhysicalSgprs( numPhysicalSgprs_ )
  88810. , numAvailableVgprs( numAvailableVgprs_ )
  88811. , numAvailableSgprs( numAvailableSgprs_ )
  88812. , computeWorkGroupSize( computeWorkGroupSize_ )
  88813. {
  88814. }
  88815. VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88816. ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  88817. : ShaderStatisticsInfoAMD( *reinterpret_cast<ShaderStatisticsInfoAMD const *>( &rhs ) )
  88818. {
  88819. }
  88820. ShaderStatisticsInfoAMD & operator=( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88821. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  88822. ShaderStatisticsInfoAMD & operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  88823. {
  88824. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD const *>( &rhs );
  88825. return *this;
  88826. }
  88827. operator VkShaderStatisticsInfoAMD const &() const VULKAN_HPP_NOEXCEPT
  88828. {
  88829. return *reinterpret_cast<const VkShaderStatisticsInfoAMD *>( this );
  88830. }
  88831. operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT
  88832. {
  88833. return *reinterpret_cast<VkShaderStatisticsInfoAMD *>( this );
  88834. }
  88835. #if defined( VULKAN_HPP_USE_REFLECT )
  88836. # if 14 <= VULKAN_HPP_CPP_VERSION
  88837. auto
  88838. # else
  88839. std::tuple<VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
  88840. VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const &,
  88841. uint32_t const &,
  88842. uint32_t const &,
  88843. uint32_t const &,
  88844. uint32_t const &,
  88845. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> const &>
  88846. # endif
  88847. reflect() const VULKAN_HPP_NOEXCEPT
  88848. {
  88849. return std::tie( shaderStageMask, resourceUsage, numPhysicalVgprs, numPhysicalSgprs, numAvailableVgprs, numAvailableSgprs, computeWorkGroupSize );
  88850. }
  88851. #endif
  88852. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  88853. auto operator<=>( ShaderStatisticsInfoAMD const & ) const = default;
  88854. #else
  88855. bool operator==( ShaderStatisticsInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  88856. {
  88857. # if defined( VULKAN_HPP_USE_REFLECT )
  88858. return this->reflect() == rhs.reflect();
  88859. # else
  88860. return ( shaderStageMask == rhs.shaderStageMask ) && ( resourceUsage == rhs.resourceUsage ) && ( numPhysicalVgprs == rhs.numPhysicalVgprs ) &&
  88861. ( numPhysicalSgprs == rhs.numPhysicalSgprs ) && ( numAvailableVgprs == rhs.numAvailableVgprs ) && ( numAvailableSgprs == rhs.numAvailableSgprs ) &&
  88862. ( computeWorkGroupSize == rhs.computeWorkGroupSize );
  88863. # endif
  88864. }
  88865. bool operator!=( ShaderStatisticsInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  88866. {
  88867. return !operator==( rhs );
  88868. }
  88869. #endif
  88870. public:
  88871. VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {};
  88872. VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {};
  88873. uint32_t numPhysicalVgprs = {};
  88874. uint32_t numPhysicalSgprs = {};
  88875. uint32_t numAvailableVgprs = {};
  88876. uint32_t numAvailableSgprs = {};
  88877. VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, 3> computeWorkGroupSize = {};
  88878. };
  88879. struct SharedPresentSurfaceCapabilitiesKHR
  88880. {
  88881. using NativeType = VkSharedPresentSurfaceCapabilitiesKHR;
  88882. static const bool allowDuplicate = false;
  88883. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
  88884. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  88885. VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {},
  88886. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  88887. : pNext( pNext_ )
  88888. , sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ )
  88889. {
  88890. }
  88891. VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88892. SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  88893. : SharedPresentSurfaceCapabilitiesKHR( *reinterpret_cast<SharedPresentSurfaceCapabilitiesKHR const *>( &rhs ) )
  88894. {
  88895. }
  88896. SharedPresentSurfaceCapabilitiesKHR & operator=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88897. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  88898. SharedPresentSurfaceCapabilitiesKHR & operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  88899. {
  88900. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR const *>( &rhs );
  88901. return *this;
  88902. }
  88903. operator VkSharedPresentSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  88904. {
  88905. return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR *>( this );
  88906. }
  88907. operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  88908. {
  88909. return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR *>( this );
  88910. }
  88911. #if defined( VULKAN_HPP_USE_REFLECT )
  88912. # if 14 <= VULKAN_HPP_CPP_VERSION
  88913. auto
  88914. # else
  88915. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  88916. # endif
  88917. reflect() const VULKAN_HPP_NOEXCEPT
  88918. {
  88919. return std::tie( sType, pNext, sharedPresentSupportedUsageFlags );
  88920. }
  88921. #endif
  88922. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  88923. auto operator<=>( SharedPresentSurfaceCapabilitiesKHR const & ) const = default;
  88924. #else
  88925. bool operator==( SharedPresentSurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  88926. {
  88927. # if defined( VULKAN_HPP_USE_REFLECT )
  88928. return this->reflect() == rhs.reflect();
  88929. # else
  88930. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags );
  88931. # endif
  88932. }
  88933. bool operator!=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  88934. {
  88935. return !operator==( rhs );
  88936. }
  88937. #endif
  88938. public:
  88939. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
  88940. void * pNext = {};
  88941. VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {};
  88942. };
  88943. template <>
  88944. struct CppType<StructureType, StructureType::eSharedPresentSurfaceCapabilitiesKHR>
  88945. {
  88946. using Type = SharedPresentSurfaceCapabilitiesKHR;
  88947. };
  88948. struct SparseImageFormatProperties
  88949. {
  88950. using NativeType = VkSparseImageFormatProperties;
  88951. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  88952. VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {},
  88953. VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {},
  88954. VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT
  88955. : aspectMask( aspectMask_ )
  88956. , imageGranularity( imageGranularity_ )
  88957. , flags( flags_ )
  88958. {
  88959. }
  88960. VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88961. SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  88962. : SparseImageFormatProperties( *reinterpret_cast<SparseImageFormatProperties const *>( &rhs ) )
  88963. {
  88964. }
  88965. SparseImageFormatProperties & operator=( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  88966. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  88967. SparseImageFormatProperties & operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT
  88968. {
  88969. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const *>( &rhs );
  88970. return *this;
  88971. }
  88972. operator VkSparseImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT
  88973. {
  88974. return *reinterpret_cast<const VkSparseImageFormatProperties *>( this );
  88975. }
  88976. operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT
  88977. {
  88978. return *reinterpret_cast<VkSparseImageFormatProperties *>( this );
  88979. }
  88980. #if defined( VULKAN_HPP_USE_REFLECT )
  88981. # if 14 <= VULKAN_HPP_CPP_VERSION
  88982. auto
  88983. # else
  88984. std::tuple<VULKAN_HPP_NAMESPACE::ImageAspectFlags const &, VULKAN_HPP_NAMESPACE::Extent3D const &, VULKAN_HPP_NAMESPACE::SparseImageFormatFlags const &>
  88985. # endif
  88986. reflect() const VULKAN_HPP_NOEXCEPT
  88987. {
  88988. return std::tie( aspectMask, imageGranularity, flags );
  88989. }
  88990. #endif
  88991. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  88992. auto operator<=>( SparseImageFormatProperties const & ) const = default;
  88993. #else
  88994. bool operator==( SparseImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  88995. {
  88996. # if defined( VULKAN_HPP_USE_REFLECT )
  88997. return this->reflect() == rhs.reflect();
  88998. # else
  88999. return ( aspectMask == rhs.aspectMask ) && ( imageGranularity == rhs.imageGranularity ) && ( flags == rhs.flags );
  89000. # endif
  89001. }
  89002. bool operator!=( SparseImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT
  89003. {
  89004. return !operator==( rhs );
  89005. }
  89006. #endif
  89007. public:
  89008. VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {};
  89009. VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {};
  89010. VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {};
  89011. };
  89012. struct SparseImageFormatProperties2
  89013. {
  89014. using NativeType = VkSparseImageFormatProperties2;
  89015. static const bool allowDuplicate = false;
  89016. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageFormatProperties2;
  89017. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  89018. VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {},
  89019. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  89020. : pNext( pNext_ )
  89021. , properties( properties_ )
  89022. {
  89023. }
  89024. VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89025. SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  89026. : SparseImageFormatProperties2( *reinterpret_cast<SparseImageFormatProperties2 const *>( &rhs ) )
  89027. {
  89028. }
  89029. SparseImageFormatProperties2 & operator=( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89030. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  89031. SparseImageFormatProperties2 & operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT
  89032. {
  89033. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 const *>( &rhs );
  89034. return *this;
  89035. }
  89036. operator VkSparseImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT
  89037. {
  89038. return *reinterpret_cast<const VkSparseImageFormatProperties2 *>( this );
  89039. }
  89040. operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT
  89041. {
  89042. return *reinterpret_cast<VkSparseImageFormatProperties2 *>( this );
  89043. }
  89044. #if defined( VULKAN_HPP_USE_REFLECT )
  89045. # if 14 <= VULKAN_HPP_CPP_VERSION
  89046. auto
  89047. # else
  89048. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const &>
  89049. # endif
  89050. reflect() const VULKAN_HPP_NOEXCEPT
  89051. {
  89052. return std::tie( sType, pNext, properties );
  89053. }
  89054. #endif
  89055. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  89056. auto operator<=>( SparseImageFormatProperties2 const & ) const = default;
  89057. #else
  89058. bool operator==( SparseImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  89059. {
  89060. # if defined( VULKAN_HPP_USE_REFLECT )
  89061. return this->reflect() == rhs.reflect();
  89062. # else
  89063. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( properties == rhs.properties );
  89064. # endif
  89065. }
  89066. bool operator!=( SparseImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  89067. {
  89068. return !operator==( rhs );
  89069. }
  89070. #endif
  89071. public:
  89072. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2;
  89073. void * pNext = {};
  89074. VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {};
  89075. };
  89076. template <>
  89077. struct CppType<StructureType, StructureType::eSparseImageFormatProperties2>
  89078. {
  89079. using Type = SparseImageFormatProperties2;
  89080. };
  89081. using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
  89082. struct SparseImageMemoryRequirements
  89083. {
  89084. using NativeType = VkSparseImageMemoryRequirements;
  89085. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  89086. VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties_ = {},
  89087. uint32_t imageMipTailFirstLod_ = {},
  89088. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize_ = {},
  89089. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset_ = {},
  89090. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride_ = {} ) VULKAN_HPP_NOEXCEPT
  89091. : formatProperties( formatProperties_ )
  89092. , imageMipTailFirstLod( imageMipTailFirstLod_ )
  89093. , imageMipTailSize( imageMipTailSize_ )
  89094. , imageMipTailOffset( imageMipTailOffset_ )
  89095. , imageMipTailStride( imageMipTailStride_ )
  89096. {
  89097. }
  89098. VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89099. SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  89100. : SparseImageMemoryRequirements( *reinterpret_cast<SparseImageMemoryRequirements const *>( &rhs ) )
  89101. {
  89102. }
  89103. SparseImageMemoryRequirements & operator=( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89104. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  89105. SparseImageMemoryRequirements & operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT
  89106. {
  89107. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const *>( &rhs );
  89108. return *this;
  89109. }
  89110. operator VkSparseImageMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT
  89111. {
  89112. return *reinterpret_cast<const VkSparseImageMemoryRequirements *>( this );
  89113. }
  89114. operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT
  89115. {
  89116. return *reinterpret_cast<VkSparseImageMemoryRequirements *>( this );
  89117. }
  89118. #if defined( VULKAN_HPP_USE_REFLECT )
  89119. # if 14 <= VULKAN_HPP_CPP_VERSION
  89120. auto
  89121. # else
  89122. std::tuple<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const &,
  89123. uint32_t const &,
  89124. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  89125. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  89126. VULKAN_HPP_NAMESPACE::DeviceSize const &>
  89127. # endif
  89128. reflect() const VULKAN_HPP_NOEXCEPT
  89129. {
  89130. return std::tie( formatProperties, imageMipTailFirstLod, imageMipTailSize, imageMipTailOffset, imageMipTailStride );
  89131. }
  89132. #endif
  89133. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  89134. auto operator<=>( SparseImageMemoryRequirements const & ) const = default;
  89135. #else
  89136. bool operator==( SparseImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  89137. {
  89138. # if defined( VULKAN_HPP_USE_REFLECT )
  89139. return this->reflect() == rhs.reflect();
  89140. # else
  89141. return ( formatProperties == rhs.formatProperties ) && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod ) &&
  89142. ( imageMipTailSize == rhs.imageMipTailSize ) && ( imageMipTailOffset == rhs.imageMipTailOffset ) &&
  89143. ( imageMipTailStride == rhs.imageMipTailStride );
  89144. # endif
  89145. }
  89146. bool operator!=( SparseImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT
  89147. {
  89148. return !operator==( rhs );
  89149. }
  89150. #endif
  89151. public:
  89152. VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {};
  89153. uint32_t imageMipTailFirstLod = {};
  89154. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {};
  89155. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {};
  89156. VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {};
  89157. };
  89158. struct SparseImageMemoryRequirements2
  89159. {
  89160. using NativeType = VkSparseImageMemoryRequirements2;
  89161. static const bool allowDuplicate = false;
  89162. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageMemoryRequirements2;
  89163. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  89164. VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {},
  89165. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  89166. : pNext( pNext_ )
  89167. , memoryRequirements( memoryRequirements_ )
  89168. {
  89169. }
  89170. VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89171. SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
  89172. : SparseImageMemoryRequirements2( *reinterpret_cast<SparseImageMemoryRequirements2 const *>( &rhs ) )
  89173. {
  89174. }
  89175. SparseImageMemoryRequirements2 & operator=( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89176. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  89177. SparseImageMemoryRequirements2 & operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT
  89178. {
  89179. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 const *>( &rhs );
  89180. return *this;
  89181. }
  89182. operator VkSparseImageMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT
  89183. {
  89184. return *reinterpret_cast<const VkSparseImageMemoryRequirements2 *>( this );
  89185. }
  89186. operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT
  89187. {
  89188. return *reinterpret_cast<VkSparseImageMemoryRequirements2 *>( this );
  89189. }
  89190. #if defined( VULKAN_HPP_USE_REFLECT )
  89191. # if 14 <= VULKAN_HPP_CPP_VERSION
  89192. auto
  89193. # else
  89194. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const &>
  89195. # endif
  89196. reflect() const VULKAN_HPP_NOEXCEPT
  89197. {
  89198. return std::tie( sType, pNext, memoryRequirements );
  89199. }
  89200. #endif
  89201. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  89202. auto operator<=>( SparseImageMemoryRequirements2 const & ) const = default;
  89203. #else
  89204. bool operator==( SparseImageMemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  89205. {
  89206. # if defined( VULKAN_HPP_USE_REFLECT )
  89207. return this->reflect() == rhs.reflect();
  89208. # else
  89209. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryRequirements == rhs.memoryRequirements );
  89210. # endif
  89211. }
  89212. bool operator!=( SparseImageMemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  89213. {
  89214. return !operator==( rhs );
  89215. }
  89216. #endif
  89217. public:
  89218. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2;
  89219. void * pNext = {};
  89220. VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {};
  89221. };
  89222. template <>
  89223. struct CppType<StructureType, StructureType::eSparseImageMemoryRequirements2>
  89224. {
  89225. using Type = SparseImageMemoryRequirements2;
  89226. };
  89227. using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
  89228. #if defined( VK_USE_PLATFORM_GGP )
  89229. struct StreamDescriptorSurfaceCreateInfoGGP
  89230. {
  89231. using NativeType = VkStreamDescriptorSurfaceCreateInfoGGP;
  89232. static const bool allowDuplicate = false;
  89233. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
  89234. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  89235. VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {},
  89236. GgpStreamDescriptor streamDescriptor_ = {},
  89237. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  89238. : pNext( pNext_ )
  89239. , flags( flags_ )
  89240. , streamDescriptor( streamDescriptor_ )
  89241. {
  89242. }
  89243. VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89244. StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
  89245. : StreamDescriptorSurfaceCreateInfoGGP( *reinterpret_cast<StreamDescriptorSurfaceCreateInfoGGP const *>( &rhs ) )
  89246. {
  89247. }
  89248. StreamDescriptorSurfaceCreateInfoGGP & operator=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89249. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  89250. StreamDescriptorSurfaceCreateInfoGGP & operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT
  89251. {
  89252. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const *>( &rhs );
  89253. return *this;
  89254. }
  89255. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  89256. VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  89257. {
  89258. pNext = pNext_;
  89259. return *this;
  89260. }
  89261. VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP &
  89262. setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT
  89263. {
  89264. flags = flags_;
  89265. return *this;
  89266. }
  89267. VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT
  89268. {
  89269. streamDescriptor = streamDescriptor_;
  89270. return *this;
  89271. }
  89272. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  89273. operator VkStreamDescriptorSurfaceCreateInfoGGP const &() const VULKAN_HPP_NOEXCEPT
  89274. {
  89275. return *reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( this );
  89276. }
  89277. operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT
  89278. {
  89279. return *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP *>( this );
  89280. }
  89281. # if defined( VULKAN_HPP_USE_REFLECT )
  89282. # if 14 <= VULKAN_HPP_CPP_VERSION
  89283. auto
  89284. # else
  89285. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  89286. const void * const &,
  89287. VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP const &,
  89288. GgpStreamDescriptor const &>
  89289. # endif
  89290. reflect() const VULKAN_HPP_NOEXCEPT
  89291. {
  89292. return std::tie( sType, pNext, flags, streamDescriptor );
  89293. }
  89294. # endif
  89295. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  89296. std::strong_ordering operator<=>( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  89297. {
  89298. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  89299. return cmp;
  89300. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  89301. return cmp;
  89302. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  89303. return cmp;
  89304. if ( auto cmp = memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ); cmp != 0 )
  89305. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  89306. return std::strong_ordering::equivalent;
  89307. }
  89308. # endif
  89309. bool operator==( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  89310. {
  89311. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  89312. ( memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ) == 0 );
  89313. }
  89314. bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) const VULKAN_HPP_NOEXCEPT
  89315. {
  89316. return !operator==( rhs );
  89317. }
  89318. public:
  89319. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
  89320. const void * pNext = {};
  89321. VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {};
  89322. GgpStreamDescriptor streamDescriptor = {};
  89323. };
  89324. template <>
  89325. struct CppType<StructureType, StructureType::eStreamDescriptorSurfaceCreateInfoGGP>
  89326. {
  89327. using Type = StreamDescriptorSurfaceCreateInfoGGP;
  89328. };
  89329. #endif /*VK_USE_PLATFORM_GGP*/
  89330. struct StridedDeviceAddressRegionKHR
  89331. {
  89332. using NativeType = VkStridedDeviceAddressRegionKHR;
  89333. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  89334. VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {},
  89335. VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {},
  89336. VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT
  89337. : deviceAddress( deviceAddress_ )
  89338. , stride( stride_ )
  89339. , size( size_ )
  89340. {
  89341. }
  89342. VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89343. StridedDeviceAddressRegionKHR( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  89344. : StridedDeviceAddressRegionKHR( *reinterpret_cast<StridedDeviceAddressRegionKHR const *>( &rhs ) )
  89345. {
  89346. }
  89347. StridedDeviceAddressRegionKHR & operator=( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89348. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  89349. StridedDeviceAddressRegionKHR & operator=( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  89350. {
  89351. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR const *>( &rhs );
  89352. return *this;
  89353. }
  89354. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  89355. VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT
  89356. {
  89357. deviceAddress = deviceAddress_;
  89358. return *this;
  89359. }
  89360. VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT
  89361. {
  89362. stride = stride_;
  89363. return *this;
  89364. }
  89365. VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT
  89366. {
  89367. size = size_;
  89368. return *this;
  89369. }
  89370. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  89371. operator VkStridedDeviceAddressRegionKHR const &() const VULKAN_HPP_NOEXCEPT
  89372. {
  89373. return *reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( this );
  89374. }
  89375. operator VkStridedDeviceAddressRegionKHR &() VULKAN_HPP_NOEXCEPT
  89376. {
  89377. return *reinterpret_cast<VkStridedDeviceAddressRegionKHR *>( this );
  89378. }
  89379. #if defined( VULKAN_HPP_USE_REFLECT )
  89380. # if 14 <= VULKAN_HPP_CPP_VERSION
  89381. auto
  89382. # else
  89383. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, VULKAN_HPP_NAMESPACE::DeviceSize const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  89384. # endif
  89385. reflect() const VULKAN_HPP_NOEXCEPT
  89386. {
  89387. return std::tie( deviceAddress, stride, size );
  89388. }
  89389. #endif
  89390. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  89391. auto operator<=>( StridedDeviceAddressRegionKHR const & ) const = default;
  89392. #else
  89393. bool operator==( StridedDeviceAddressRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  89394. {
  89395. # if defined( VULKAN_HPP_USE_REFLECT )
  89396. return this->reflect() == rhs.reflect();
  89397. # else
  89398. return ( deviceAddress == rhs.deviceAddress ) && ( stride == rhs.stride ) && ( size == rhs.size );
  89399. # endif
  89400. }
  89401. bool operator!=( StridedDeviceAddressRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  89402. {
  89403. return !operator==( rhs );
  89404. }
  89405. #endif
  89406. public:
  89407. VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {};
  89408. VULKAN_HPP_NAMESPACE::DeviceSize stride = {};
  89409. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  89410. };
  89411. struct SubmitInfo
  89412. {
  89413. using NativeType = VkSubmitInfo;
  89414. static const bool allowDuplicate = false;
  89415. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo;
  89416. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  89417. VULKAN_HPP_CONSTEXPR SubmitInfo( uint32_t waitSemaphoreCount_ = {},
  89418. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {},
  89419. const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask_ = {},
  89420. uint32_t commandBufferCount_ = {},
  89421. const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers_ = {},
  89422. uint32_t signalSemaphoreCount_ = {},
  89423. const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ = {},
  89424. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  89425. : pNext( pNext_ )
  89426. , waitSemaphoreCount( waitSemaphoreCount_ )
  89427. , pWaitSemaphores( pWaitSemaphores_ )
  89428. , pWaitDstStageMask( pWaitDstStageMask_ )
  89429. , commandBufferCount( commandBufferCount_ )
  89430. , pCommandBuffers( pCommandBuffers_ )
  89431. , signalSemaphoreCount( signalSemaphoreCount_ )
  89432. , pSignalSemaphores( pSignalSemaphores_ )
  89433. {
  89434. }
  89435. VULKAN_HPP_CONSTEXPR SubmitInfo( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89436. SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SubmitInfo( *reinterpret_cast<SubmitInfo const *>( &rhs ) ) {}
  89437. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  89438. SubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_,
  89439. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const & waitDstStageMask_ = {},
  89440. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ = {},
  89441. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ = {},
  89442. const void * pNext_ = nullptr )
  89443. : pNext( pNext_ )
  89444. , waitSemaphoreCount( static_cast<uint32_t>( waitSemaphores_.size() ) )
  89445. , pWaitSemaphores( waitSemaphores_.data() )
  89446. , pWaitDstStageMask( waitDstStageMask_.data() )
  89447. , commandBufferCount( static_cast<uint32_t>( commandBuffers_.size() ) )
  89448. , pCommandBuffers( commandBuffers_.data() )
  89449. , signalSemaphoreCount( static_cast<uint32_t>( signalSemaphores_.size() ) )
  89450. , pSignalSemaphores( signalSemaphores_.data() )
  89451. {
  89452. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  89453. VULKAN_HPP_ASSERT( waitSemaphores_.size() == waitDstStageMask_.size() );
  89454. # else
  89455. if ( waitSemaphores_.size() != waitDstStageMask_.size() )
  89456. {
  89457. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubmitInfo::SubmitInfo: waitSemaphores_.size() != waitDstStageMask_.size()" );
  89458. }
  89459. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  89460. }
  89461. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  89462. SubmitInfo & operator=( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89463. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  89464. SubmitInfo & operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  89465. {
  89466. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo const *>( &rhs );
  89467. return *this;
  89468. }
  89469. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  89470. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  89471. {
  89472. pNext = pNext_;
  89473. return *this;
  89474. }
  89475. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  89476. {
  89477. waitSemaphoreCount = waitSemaphoreCount_;
  89478. return *this;
  89479. }
  89480. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  89481. {
  89482. pWaitSemaphores = pWaitSemaphores_;
  89483. return *this;
  89484. }
  89485. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  89486. SubmitInfo &
  89487. setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT
  89488. {
  89489. waitSemaphoreCount = static_cast<uint32_t>( waitSemaphores_.size() );
  89490. pWaitSemaphores = waitSemaphores_.data();
  89491. return *this;
  89492. }
  89493. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  89494. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT
  89495. {
  89496. pWaitDstStageMask = pWaitDstStageMask_;
  89497. return *this;
  89498. }
  89499. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  89500. SubmitInfo & setWaitDstStageMask( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PipelineStageFlags> const & waitDstStageMask_ )
  89501. VULKAN_HPP_NOEXCEPT
  89502. {
  89503. waitSemaphoreCount = static_cast<uint32_t>( waitDstStageMask_.size() );
  89504. pWaitDstStageMask = waitDstStageMask_.data();
  89505. return *this;
  89506. }
  89507. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  89508. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT
  89509. {
  89510. commandBufferCount = commandBufferCount_;
  89511. return *this;
  89512. }
  89513. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT
  89514. {
  89515. pCommandBuffers = pCommandBuffers_;
  89516. return *this;
  89517. }
  89518. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  89519. SubmitInfo &
  89520. setCommandBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers_ ) VULKAN_HPP_NOEXCEPT
  89521. {
  89522. commandBufferCount = static_cast<uint32_t>( commandBuffers_.size() );
  89523. pCommandBuffers = commandBuffers_.data();
  89524. return *this;
  89525. }
  89526. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  89527. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT
  89528. {
  89529. signalSemaphoreCount = signalSemaphoreCount_;
  89530. return *this;
  89531. }
  89532. VULKAN_HPP_CONSTEXPR_14 SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT
  89533. {
  89534. pSignalSemaphores = pSignalSemaphores_;
  89535. return *this;
  89536. }
  89537. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  89538. SubmitInfo &
  89539. setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Semaphore> const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT
  89540. {
  89541. signalSemaphoreCount = static_cast<uint32_t>( signalSemaphores_.size() );
  89542. pSignalSemaphores = signalSemaphores_.data();
  89543. return *this;
  89544. }
  89545. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  89546. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  89547. operator VkSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  89548. {
  89549. return *reinterpret_cast<const VkSubmitInfo *>( this );
  89550. }
  89551. operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT
  89552. {
  89553. return *reinterpret_cast<VkSubmitInfo *>( this );
  89554. }
  89555. #if defined( VULKAN_HPP_USE_REFLECT )
  89556. # if 14 <= VULKAN_HPP_CPP_VERSION
  89557. auto
  89558. # else
  89559. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  89560. const void * const &,
  89561. uint32_t const &,
  89562. const VULKAN_HPP_NAMESPACE::Semaphore * const &,
  89563. const VULKAN_HPP_NAMESPACE::PipelineStageFlags * const &,
  89564. uint32_t const &,
  89565. const VULKAN_HPP_NAMESPACE::CommandBuffer * const &,
  89566. uint32_t const &,
  89567. const VULKAN_HPP_NAMESPACE::Semaphore * const &>
  89568. # endif
  89569. reflect() const VULKAN_HPP_NOEXCEPT
  89570. {
  89571. return std::tie(
  89572. sType, pNext, waitSemaphoreCount, pWaitSemaphores, pWaitDstStageMask, commandBufferCount, pCommandBuffers, signalSemaphoreCount, pSignalSemaphores );
  89573. }
  89574. #endif
  89575. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  89576. auto operator<=>( SubmitInfo const & ) const = default;
  89577. #else
  89578. bool operator==( SubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  89579. {
  89580. # if defined( VULKAN_HPP_USE_REFLECT )
  89581. return this->reflect() == rhs.reflect();
  89582. # else
  89583. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) &&
  89584. ( pWaitSemaphores == rhs.pWaitSemaphores ) && ( pWaitDstStageMask == rhs.pWaitDstStageMask ) && ( commandBufferCount == rhs.commandBufferCount ) &&
  89585. ( pCommandBuffers == rhs.pCommandBuffers ) && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) &&
  89586. ( pSignalSemaphores == rhs.pSignalSemaphores );
  89587. # endif
  89588. }
  89589. bool operator!=( SubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  89590. {
  89591. return !operator==( rhs );
  89592. }
  89593. #endif
  89594. public:
  89595. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo;
  89596. const void * pNext = {};
  89597. uint32_t waitSemaphoreCount = {};
  89598. const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {};
  89599. const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask = {};
  89600. uint32_t commandBufferCount = {};
  89601. const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers = {};
  89602. uint32_t signalSemaphoreCount = {};
  89603. const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores = {};
  89604. };
  89605. template <>
  89606. struct CppType<StructureType, StructureType::eSubmitInfo>
  89607. {
  89608. using Type = SubmitInfo;
  89609. };
  89610. struct SubmitInfo2
  89611. {
  89612. using NativeType = VkSubmitInfo2;
  89613. static const bool allowDuplicate = false;
  89614. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo2;
  89615. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  89616. VULKAN_HPP_CONSTEXPR SubmitInfo2( VULKAN_HPP_NAMESPACE::SubmitFlags flags_ = {},
  89617. uint32_t waitSemaphoreInfoCount_ = {},
  89618. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pWaitSemaphoreInfos_ = {},
  89619. uint32_t commandBufferInfoCount_ = {},
  89620. const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * pCommandBufferInfos_ = {},
  89621. uint32_t signalSemaphoreInfoCount_ = {},
  89622. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos_ = {},
  89623. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  89624. : pNext( pNext_ )
  89625. , flags( flags_ )
  89626. , waitSemaphoreInfoCount( waitSemaphoreInfoCount_ )
  89627. , pWaitSemaphoreInfos( pWaitSemaphoreInfos_ )
  89628. , commandBufferInfoCount( commandBufferInfoCount_ )
  89629. , pCommandBufferInfos( pCommandBufferInfos_ )
  89630. , signalSemaphoreInfoCount( signalSemaphoreInfoCount_ )
  89631. , pSignalSemaphoreInfos( pSignalSemaphoreInfos_ )
  89632. {
  89633. }
  89634. VULKAN_HPP_CONSTEXPR SubmitInfo2( SubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89635. SubmitInfo2( VkSubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT : SubmitInfo2( *reinterpret_cast<SubmitInfo2 const *>( &rhs ) ) {}
  89636. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  89637. SubmitInfo2( VULKAN_HPP_NAMESPACE::SubmitFlags flags_,
  89638. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & waitSemaphoreInfos_,
  89639. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo> const & commandBufferInfos_ = {},
  89640. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & signalSemaphoreInfos_ = {},
  89641. const void * pNext_ = nullptr )
  89642. : pNext( pNext_ )
  89643. , flags( flags_ )
  89644. , waitSemaphoreInfoCount( static_cast<uint32_t>( waitSemaphoreInfos_.size() ) )
  89645. , pWaitSemaphoreInfos( waitSemaphoreInfos_.data() )
  89646. , commandBufferInfoCount( static_cast<uint32_t>( commandBufferInfos_.size() ) )
  89647. , pCommandBufferInfos( commandBufferInfos_.data() )
  89648. , signalSemaphoreInfoCount( static_cast<uint32_t>( signalSemaphoreInfos_.size() ) )
  89649. , pSignalSemaphoreInfos( signalSemaphoreInfos_.data() )
  89650. {
  89651. }
  89652. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  89653. SubmitInfo2 & operator=( SubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89654. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  89655. SubmitInfo2 & operator=( VkSubmitInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT
  89656. {
  89657. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubmitInfo2 const *>( &rhs );
  89658. return *this;
  89659. }
  89660. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  89661. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  89662. {
  89663. pNext = pNext_;
  89664. return *this;
  89665. }
  89666. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setFlags( VULKAN_HPP_NAMESPACE::SubmitFlags flags_ ) VULKAN_HPP_NOEXCEPT
  89667. {
  89668. flags = flags_;
  89669. return *this;
  89670. }
  89671. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setWaitSemaphoreInfoCount( uint32_t waitSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT
  89672. {
  89673. waitSemaphoreInfoCount = waitSemaphoreInfoCount_;
  89674. return *this;
  89675. }
  89676. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setPWaitSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pWaitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
  89677. {
  89678. pWaitSemaphoreInfos = pWaitSemaphoreInfos_;
  89679. return *this;
  89680. }
  89681. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  89682. SubmitInfo2 & setWaitSemaphoreInfos(
  89683. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & waitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
  89684. {
  89685. waitSemaphoreInfoCount = static_cast<uint32_t>( waitSemaphoreInfos_.size() );
  89686. pWaitSemaphoreInfos = waitSemaphoreInfos_.data();
  89687. return *this;
  89688. }
  89689. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  89690. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setCommandBufferInfoCount( uint32_t commandBufferInfoCount_ ) VULKAN_HPP_NOEXCEPT
  89691. {
  89692. commandBufferInfoCount = commandBufferInfoCount_;
  89693. return *this;
  89694. }
  89695. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 &
  89696. setPCommandBufferInfos( const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * pCommandBufferInfos_ ) VULKAN_HPP_NOEXCEPT
  89697. {
  89698. pCommandBufferInfos = pCommandBufferInfos_;
  89699. return *this;
  89700. }
  89701. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  89702. SubmitInfo2 & setCommandBufferInfos(
  89703. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo> const & commandBufferInfos_ ) VULKAN_HPP_NOEXCEPT
  89704. {
  89705. commandBufferInfoCount = static_cast<uint32_t>( commandBufferInfos_.size() );
  89706. pCommandBufferInfos = commandBufferInfos_.data();
  89707. return *this;
  89708. }
  89709. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  89710. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 & setSignalSemaphoreInfoCount( uint32_t signalSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT
  89711. {
  89712. signalSemaphoreInfoCount = signalSemaphoreInfoCount_;
  89713. return *this;
  89714. }
  89715. VULKAN_HPP_CONSTEXPR_14 SubmitInfo2 &
  89716. setPSignalSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
  89717. {
  89718. pSignalSemaphoreInfos = pSignalSemaphoreInfos_;
  89719. return *this;
  89720. }
  89721. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  89722. SubmitInfo2 & setSignalSemaphoreInfos(
  89723. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo> const & signalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT
  89724. {
  89725. signalSemaphoreInfoCount = static_cast<uint32_t>( signalSemaphoreInfos_.size() );
  89726. pSignalSemaphoreInfos = signalSemaphoreInfos_.data();
  89727. return *this;
  89728. }
  89729. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  89730. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  89731. operator VkSubmitInfo2 const &() const VULKAN_HPP_NOEXCEPT
  89732. {
  89733. return *reinterpret_cast<const VkSubmitInfo2 *>( this );
  89734. }
  89735. operator VkSubmitInfo2 &() VULKAN_HPP_NOEXCEPT
  89736. {
  89737. return *reinterpret_cast<VkSubmitInfo2 *>( this );
  89738. }
  89739. #if defined( VULKAN_HPP_USE_REFLECT )
  89740. # if 14 <= VULKAN_HPP_CPP_VERSION
  89741. auto
  89742. # else
  89743. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  89744. const void * const &,
  89745. VULKAN_HPP_NAMESPACE::SubmitFlags const &,
  89746. uint32_t const &,
  89747. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * const &,
  89748. uint32_t const &,
  89749. const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * const &,
  89750. uint32_t const &,
  89751. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * const &>
  89752. # endif
  89753. reflect() const VULKAN_HPP_NOEXCEPT
  89754. {
  89755. return std::tie( sType,
  89756. pNext,
  89757. flags,
  89758. waitSemaphoreInfoCount,
  89759. pWaitSemaphoreInfos,
  89760. commandBufferInfoCount,
  89761. pCommandBufferInfos,
  89762. signalSemaphoreInfoCount,
  89763. pSignalSemaphoreInfos );
  89764. }
  89765. #endif
  89766. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  89767. auto operator<=>( SubmitInfo2 const & ) const = default;
  89768. #else
  89769. bool operator==( SubmitInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  89770. {
  89771. # if defined( VULKAN_HPP_USE_REFLECT )
  89772. return this->reflect() == rhs.reflect();
  89773. # else
  89774. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( waitSemaphoreInfoCount == rhs.waitSemaphoreInfoCount ) &&
  89775. ( pWaitSemaphoreInfos == rhs.pWaitSemaphoreInfos ) && ( commandBufferInfoCount == rhs.commandBufferInfoCount ) &&
  89776. ( pCommandBufferInfos == rhs.pCommandBufferInfos ) && ( signalSemaphoreInfoCount == rhs.signalSemaphoreInfoCount ) &&
  89777. ( pSignalSemaphoreInfos == rhs.pSignalSemaphoreInfos );
  89778. # endif
  89779. }
  89780. bool operator!=( SubmitInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT
  89781. {
  89782. return !operator==( rhs );
  89783. }
  89784. #endif
  89785. public:
  89786. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo2;
  89787. const void * pNext = {};
  89788. VULKAN_HPP_NAMESPACE::SubmitFlags flags = {};
  89789. uint32_t waitSemaphoreInfoCount = {};
  89790. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pWaitSemaphoreInfos = {};
  89791. uint32_t commandBufferInfoCount = {};
  89792. const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo * pCommandBufferInfos = {};
  89793. uint32_t signalSemaphoreInfoCount = {};
  89794. const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo * pSignalSemaphoreInfos = {};
  89795. };
  89796. template <>
  89797. struct CppType<StructureType, StructureType::eSubmitInfo2>
  89798. {
  89799. using Type = SubmitInfo2;
  89800. };
  89801. using SubmitInfo2KHR = SubmitInfo2;
  89802. struct SubpassBeginInfo
  89803. {
  89804. using NativeType = VkSubpassBeginInfo;
  89805. static const bool allowDuplicate = false;
  89806. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassBeginInfo;
  89807. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  89808. VULKAN_HPP_CONSTEXPR SubpassBeginInfo( VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline,
  89809. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  89810. : pNext( pNext_ )
  89811. , contents( contents_ )
  89812. {
  89813. }
  89814. VULKAN_HPP_CONSTEXPR SubpassBeginInfo( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89815. SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassBeginInfo( *reinterpret_cast<SubpassBeginInfo const *>( &rhs ) ) {}
  89816. SubpassBeginInfo & operator=( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89817. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  89818. SubpassBeginInfo & operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  89819. {
  89820. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassBeginInfo const *>( &rhs );
  89821. return *this;
  89822. }
  89823. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  89824. VULKAN_HPP_CONSTEXPR_14 SubpassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  89825. {
  89826. pNext = pNext_;
  89827. return *this;
  89828. }
  89829. VULKAN_HPP_CONSTEXPR_14 SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT
  89830. {
  89831. contents = contents_;
  89832. return *this;
  89833. }
  89834. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  89835. operator VkSubpassBeginInfo const &() const VULKAN_HPP_NOEXCEPT
  89836. {
  89837. return *reinterpret_cast<const VkSubpassBeginInfo *>( this );
  89838. }
  89839. operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT
  89840. {
  89841. return *reinterpret_cast<VkSubpassBeginInfo *>( this );
  89842. }
  89843. #if defined( VULKAN_HPP_USE_REFLECT )
  89844. # if 14 <= VULKAN_HPP_CPP_VERSION
  89845. auto
  89846. # else
  89847. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SubpassContents const &>
  89848. # endif
  89849. reflect() const VULKAN_HPP_NOEXCEPT
  89850. {
  89851. return std::tie( sType, pNext, contents );
  89852. }
  89853. #endif
  89854. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  89855. auto operator<=>( SubpassBeginInfo const & ) const = default;
  89856. #else
  89857. bool operator==( SubpassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  89858. {
  89859. # if defined( VULKAN_HPP_USE_REFLECT )
  89860. return this->reflect() == rhs.reflect();
  89861. # else
  89862. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( contents == rhs.contents );
  89863. # endif
  89864. }
  89865. bool operator!=( SubpassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  89866. {
  89867. return !operator==( rhs );
  89868. }
  89869. #endif
  89870. public:
  89871. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo;
  89872. const void * pNext = {};
  89873. VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline;
  89874. };
  89875. template <>
  89876. struct CppType<StructureType, StructureType::eSubpassBeginInfo>
  89877. {
  89878. using Type = SubpassBeginInfo;
  89879. };
  89880. using SubpassBeginInfoKHR = SubpassBeginInfo;
  89881. struct SubpassDescriptionDepthStencilResolve
  89882. {
  89883. using NativeType = VkSubpassDescriptionDepthStencilResolve;
  89884. static const bool allowDuplicate = false;
  89885. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescriptionDepthStencilResolve;
  89886. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  89887. VULKAN_HPP_CONSTEXPR
  89888. SubpassDescriptionDepthStencilResolve( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone,
  89889. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone,
  89890. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment_ = {},
  89891. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  89892. : pNext( pNext_ )
  89893. , depthResolveMode( depthResolveMode_ )
  89894. , stencilResolveMode( stencilResolveMode_ )
  89895. , pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ )
  89896. {
  89897. }
  89898. VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89899. SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
  89900. : SubpassDescriptionDepthStencilResolve( *reinterpret_cast<SubpassDescriptionDepthStencilResolve const *>( &rhs ) )
  89901. {
  89902. }
  89903. SubpassDescriptionDepthStencilResolve & operator=( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89904. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  89905. SubpassDescriptionDepthStencilResolve & operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT
  89906. {
  89907. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve const *>( &rhs );
  89908. return *this;
  89909. }
  89910. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  89911. VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  89912. {
  89913. pNext = pNext_;
  89914. return *this;
  89915. }
  89916. VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve &
  89917. setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT
  89918. {
  89919. depthResolveMode = depthResolveMode_;
  89920. return *this;
  89921. }
  89922. VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve &
  89923. setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT
  89924. {
  89925. stencilResolveMode = stencilResolveMode_;
  89926. return *this;
  89927. }
  89928. VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve &
  89929. setPDepthStencilResolveAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT
  89930. {
  89931. pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_;
  89932. return *this;
  89933. }
  89934. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  89935. operator VkSubpassDescriptionDepthStencilResolve const &() const VULKAN_HPP_NOEXCEPT
  89936. {
  89937. return *reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve *>( this );
  89938. }
  89939. operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT
  89940. {
  89941. return *reinterpret_cast<VkSubpassDescriptionDepthStencilResolve *>( this );
  89942. }
  89943. #if defined( VULKAN_HPP_USE_REFLECT )
  89944. # if 14 <= VULKAN_HPP_CPP_VERSION
  89945. auto
  89946. # else
  89947. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  89948. const void * const &,
  89949. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits const &,
  89950. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits const &,
  89951. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * const &>
  89952. # endif
  89953. reflect() const VULKAN_HPP_NOEXCEPT
  89954. {
  89955. return std::tie( sType, pNext, depthResolveMode, stencilResolveMode, pDepthStencilResolveAttachment );
  89956. }
  89957. #endif
  89958. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  89959. auto operator<=>( SubpassDescriptionDepthStencilResolve const & ) const = default;
  89960. #else
  89961. bool operator==( SubpassDescriptionDepthStencilResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
  89962. {
  89963. # if defined( VULKAN_HPP_USE_REFLECT )
  89964. return this->reflect() == rhs.reflect();
  89965. # else
  89966. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthResolveMode == rhs.depthResolveMode ) &&
  89967. ( stencilResolveMode == rhs.stencilResolveMode ) && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment );
  89968. # endif
  89969. }
  89970. bool operator!=( SubpassDescriptionDepthStencilResolve const & rhs ) const VULKAN_HPP_NOEXCEPT
  89971. {
  89972. return !operator==( rhs );
  89973. }
  89974. #endif
  89975. public:
  89976. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve;
  89977. const void * pNext = {};
  89978. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
  89979. VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone;
  89980. const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment = {};
  89981. };
  89982. template <>
  89983. struct CppType<StructureType, StructureType::eSubpassDescriptionDepthStencilResolve>
  89984. {
  89985. using Type = SubpassDescriptionDepthStencilResolve;
  89986. };
  89987. using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
  89988. struct SubpassEndInfo
  89989. {
  89990. using NativeType = VkSubpassEndInfo;
  89991. static const bool allowDuplicate = false;
  89992. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo;
  89993. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  89994. VULKAN_HPP_CONSTEXPR SubpassEndInfo( const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext( pNext_ ) {}
  89995. VULKAN_HPP_CONSTEXPR SubpassEndInfo( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89996. SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT : SubpassEndInfo( *reinterpret_cast<SubpassEndInfo const *>( &rhs ) ) {}
  89997. SubpassEndInfo & operator=( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  89998. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  89999. SubpassEndInfo & operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  90000. {
  90001. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassEndInfo const *>( &rhs );
  90002. return *this;
  90003. }
  90004. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  90005. VULKAN_HPP_CONSTEXPR_14 SubpassEndInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  90006. {
  90007. pNext = pNext_;
  90008. return *this;
  90009. }
  90010. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  90011. operator VkSubpassEndInfo const &() const VULKAN_HPP_NOEXCEPT
  90012. {
  90013. return *reinterpret_cast<const VkSubpassEndInfo *>( this );
  90014. }
  90015. operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT
  90016. {
  90017. return *reinterpret_cast<VkSubpassEndInfo *>( this );
  90018. }
  90019. #if defined( VULKAN_HPP_USE_REFLECT )
  90020. # if 14 <= VULKAN_HPP_CPP_VERSION
  90021. auto
  90022. # else
  90023. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &>
  90024. # endif
  90025. reflect() const VULKAN_HPP_NOEXCEPT
  90026. {
  90027. return std::tie( sType, pNext );
  90028. }
  90029. #endif
  90030. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90031. auto operator<=>( SubpassEndInfo const & ) const = default;
  90032. #else
  90033. bool operator==( SubpassEndInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  90034. {
  90035. # if defined( VULKAN_HPP_USE_REFLECT )
  90036. return this->reflect() == rhs.reflect();
  90037. # else
  90038. return ( sType == rhs.sType ) && ( pNext == rhs.pNext );
  90039. # endif
  90040. }
  90041. bool operator!=( SubpassEndInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  90042. {
  90043. return !operator==( rhs );
  90044. }
  90045. #endif
  90046. public:
  90047. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo;
  90048. const void * pNext = {};
  90049. };
  90050. template <>
  90051. struct CppType<StructureType, StructureType::eSubpassEndInfo>
  90052. {
  90053. using Type = SubpassEndInfo;
  90054. };
  90055. using SubpassEndInfoKHR = SubpassEndInfo;
  90056. struct SubpassFragmentDensityMapOffsetEndInfoQCOM
  90057. {
  90058. using NativeType = VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
  90059. static const bool allowDuplicate = false;
  90060. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassFragmentDensityMapOffsetEndInfoQCOM;
  90061. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90062. VULKAN_HPP_CONSTEXPR SubpassFragmentDensityMapOffsetEndInfoQCOM( uint32_t fragmentDensityOffsetCount_ = {},
  90063. const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets_ = {},
  90064. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  90065. : pNext( pNext_ )
  90066. , fragmentDensityOffsetCount( fragmentDensityOffsetCount_ )
  90067. , pFragmentDensityOffsets( pFragmentDensityOffsets_ )
  90068. {
  90069. }
  90070. VULKAN_HPP_CONSTEXPR SubpassFragmentDensityMapOffsetEndInfoQCOM( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90071. SubpassFragmentDensityMapOffsetEndInfoQCOM( VkSubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  90072. : SubpassFragmentDensityMapOffsetEndInfoQCOM( *reinterpret_cast<SubpassFragmentDensityMapOffsetEndInfoQCOM const *>( &rhs ) )
  90073. {
  90074. }
  90075. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  90076. SubpassFragmentDensityMapOffsetEndInfoQCOM(
  90077. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Offset2D> const & fragmentDensityOffsets_, const void * pNext_ = nullptr )
  90078. : pNext( pNext_ )
  90079. , fragmentDensityOffsetCount( static_cast<uint32_t>( fragmentDensityOffsets_.size() ) )
  90080. , pFragmentDensityOffsets( fragmentDensityOffsets_.data() )
  90081. {
  90082. }
  90083. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  90084. SubpassFragmentDensityMapOffsetEndInfoQCOM & operator=( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90085. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90086. SubpassFragmentDensityMapOffsetEndInfoQCOM & operator=( VkSubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  90087. {
  90088. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM const *>( &rhs );
  90089. return *this;
  90090. }
  90091. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  90092. VULKAN_HPP_CONSTEXPR_14 SubpassFragmentDensityMapOffsetEndInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  90093. {
  90094. pNext = pNext_;
  90095. return *this;
  90096. }
  90097. VULKAN_HPP_CONSTEXPR_14 SubpassFragmentDensityMapOffsetEndInfoQCOM &
  90098. setFragmentDensityOffsetCount( uint32_t fragmentDensityOffsetCount_ ) VULKAN_HPP_NOEXCEPT
  90099. {
  90100. fragmentDensityOffsetCount = fragmentDensityOffsetCount_;
  90101. return *this;
  90102. }
  90103. VULKAN_HPP_CONSTEXPR_14 SubpassFragmentDensityMapOffsetEndInfoQCOM &
  90104. setPFragmentDensityOffsets( const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets_ ) VULKAN_HPP_NOEXCEPT
  90105. {
  90106. pFragmentDensityOffsets = pFragmentDensityOffsets_;
  90107. return *this;
  90108. }
  90109. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  90110. SubpassFragmentDensityMapOffsetEndInfoQCOM & setFragmentDensityOffsets(
  90111. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Offset2D> const & fragmentDensityOffsets_ ) VULKAN_HPP_NOEXCEPT
  90112. {
  90113. fragmentDensityOffsetCount = static_cast<uint32_t>( fragmentDensityOffsets_.size() );
  90114. pFragmentDensityOffsets = fragmentDensityOffsets_.data();
  90115. return *this;
  90116. }
  90117. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  90118. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  90119. operator VkSubpassFragmentDensityMapOffsetEndInfoQCOM const &() const VULKAN_HPP_NOEXCEPT
  90120. {
  90121. return *reinterpret_cast<const VkSubpassFragmentDensityMapOffsetEndInfoQCOM *>( this );
  90122. }
  90123. operator VkSubpassFragmentDensityMapOffsetEndInfoQCOM &() VULKAN_HPP_NOEXCEPT
  90124. {
  90125. return *reinterpret_cast<VkSubpassFragmentDensityMapOffsetEndInfoQCOM *>( this );
  90126. }
  90127. #if defined( VULKAN_HPP_USE_REFLECT )
  90128. # if 14 <= VULKAN_HPP_CPP_VERSION
  90129. auto
  90130. # else
  90131. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Offset2D * const &>
  90132. # endif
  90133. reflect() const VULKAN_HPP_NOEXCEPT
  90134. {
  90135. return std::tie( sType, pNext, fragmentDensityOffsetCount, pFragmentDensityOffsets );
  90136. }
  90137. #endif
  90138. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90139. auto operator<=>( SubpassFragmentDensityMapOffsetEndInfoQCOM const & ) const = default;
  90140. #else
  90141. bool operator==( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  90142. {
  90143. # if defined( VULKAN_HPP_USE_REFLECT )
  90144. return this->reflect() == rhs.reflect();
  90145. # else
  90146. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityOffsetCount == rhs.fragmentDensityOffsetCount ) &&
  90147. ( pFragmentDensityOffsets == rhs.pFragmentDensityOffsets );
  90148. # endif
  90149. }
  90150. bool operator!=( SubpassFragmentDensityMapOffsetEndInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  90151. {
  90152. return !operator==( rhs );
  90153. }
  90154. #endif
  90155. public:
  90156. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassFragmentDensityMapOffsetEndInfoQCOM;
  90157. const void * pNext = {};
  90158. uint32_t fragmentDensityOffsetCount = {};
  90159. const VULKAN_HPP_NAMESPACE::Offset2D * pFragmentDensityOffsets = {};
  90160. };
  90161. template <>
  90162. struct CppType<StructureType, StructureType::eSubpassFragmentDensityMapOffsetEndInfoQCOM>
  90163. {
  90164. using Type = SubpassFragmentDensityMapOffsetEndInfoQCOM;
  90165. };
  90166. struct SubpassResolvePerformanceQueryEXT
  90167. {
  90168. using NativeType = VkSubpassResolvePerformanceQueryEXT;
  90169. static const bool allowDuplicate = false;
  90170. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassResolvePerformanceQueryEXT;
  90171. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90172. VULKAN_HPP_CONSTEXPR SubpassResolvePerformanceQueryEXT( VULKAN_HPP_NAMESPACE::Bool32 optimal_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  90173. : pNext( pNext_ )
  90174. , optimal( optimal_ )
  90175. {
  90176. }
  90177. VULKAN_HPP_CONSTEXPR SubpassResolvePerformanceQueryEXT( SubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90178. SubpassResolvePerformanceQueryEXT( VkSubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  90179. : SubpassResolvePerformanceQueryEXT( *reinterpret_cast<SubpassResolvePerformanceQueryEXT const *>( &rhs ) )
  90180. {
  90181. }
  90182. SubpassResolvePerformanceQueryEXT & operator=( SubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90183. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90184. SubpassResolvePerformanceQueryEXT & operator=( VkSubpassResolvePerformanceQueryEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  90185. {
  90186. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT const *>( &rhs );
  90187. return *this;
  90188. }
  90189. operator VkSubpassResolvePerformanceQueryEXT const &() const VULKAN_HPP_NOEXCEPT
  90190. {
  90191. return *reinterpret_cast<const VkSubpassResolvePerformanceQueryEXT *>( this );
  90192. }
  90193. operator VkSubpassResolvePerformanceQueryEXT &() VULKAN_HPP_NOEXCEPT
  90194. {
  90195. return *reinterpret_cast<VkSubpassResolvePerformanceQueryEXT *>( this );
  90196. }
  90197. #if defined( VULKAN_HPP_USE_REFLECT )
  90198. # if 14 <= VULKAN_HPP_CPP_VERSION
  90199. auto
  90200. # else
  90201. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  90202. # endif
  90203. reflect() const VULKAN_HPP_NOEXCEPT
  90204. {
  90205. return std::tie( sType, pNext, optimal );
  90206. }
  90207. #endif
  90208. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90209. auto operator<=>( SubpassResolvePerformanceQueryEXT const & ) const = default;
  90210. #else
  90211. bool operator==( SubpassResolvePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  90212. {
  90213. # if defined( VULKAN_HPP_USE_REFLECT )
  90214. return this->reflect() == rhs.reflect();
  90215. # else
  90216. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( optimal == rhs.optimal );
  90217. # endif
  90218. }
  90219. bool operator!=( SubpassResolvePerformanceQueryEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  90220. {
  90221. return !operator==( rhs );
  90222. }
  90223. #endif
  90224. public:
  90225. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassResolvePerformanceQueryEXT;
  90226. void * pNext = {};
  90227. VULKAN_HPP_NAMESPACE::Bool32 optimal = {};
  90228. };
  90229. template <>
  90230. struct CppType<StructureType, StructureType::eSubpassResolvePerformanceQueryEXT>
  90231. {
  90232. using Type = SubpassResolvePerformanceQueryEXT;
  90233. };
  90234. struct SubpassShadingPipelineCreateInfoHUAWEI
  90235. {
  90236. using NativeType = VkSubpassShadingPipelineCreateInfoHUAWEI;
  90237. static const bool allowDuplicate = false;
  90238. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassShadingPipelineCreateInfoHUAWEI;
  90239. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90240. VULKAN_HPP_CONSTEXPR SubpassShadingPipelineCreateInfoHUAWEI( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {},
  90241. uint32_t subpass_ = {},
  90242. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  90243. : pNext( pNext_ )
  90244. , renderPass( renderPass_ )
  90245. , subpass( subpass_ )
  90246. {
  90247. }
  90248. VULKAN_HPP_CONSTEXPR SubpassShadingPipelineCreateInfoHUAWEI( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90249. SubpassShadingPipelineCreateInfoHUAWEI( VkSubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  90250. : SubpassShadingPipelineCreateInfoHUAWEI( *reinterpret_cast<SubpassShadingPipelineCreateInfoHUAWEI const *>( &rhs ) )
  90251. {
  90252. }
  90253. SubpassShadingPipelineCreateInfoHUAWEI & operator=( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90254. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90255. SubpassShadingPipelineCreateInfoHUAWEI & operator=( VkSubpassShadingPipelineCreateInfoHUAWEI const & rhs ) VULKAN_HPP_NOEXCEPT
  90256. {
  90257. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI const *>( &rhs );
  90258. return *this;
  90259. }
  90260. operator VkSubpassShadingPipelineCreateInfoHUAWEI const &() const VULKAN_HPP_NOEXCEPT
  90261. {
  90262. return *reinterpret_cast<const VkSubpassShadingPipelineCreateInfoHUAWEI *>( this );
  90263. }
  90264. operator VkSubpassShadingPipelineCreateInfoHUAWEI &() VULKAN_HPP_NOEXCEPT
  90265. {
  90266. return *reinterpret_cast<VkSubpassShadingPipelineCreateInfoHUAWEI *>( this );
  90267. }
  90268. #if defined( VULKAN_HPP_USE_REFLECT )
  90269. # if 14 <= VULKAN_HPP_CPP_VERSION
  90270. auto
  90271. # else
  90272. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::RenderPass const &, uint32_t const &>
  90273. # endif
  90274. reflect() const VULKAN_HPP_NOEXCEPT
  90275. {
  90276. return std::tie( sType, pNext, renderPass, subpass );
  90277. }
  90278. #endif
  90279. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90280. auto operator<=>( SubpassShadingPipelineCreateInfoHUAWEI const & ) const = default;
  90281. #else
  90282. bool operator==( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  90283. {
  90284. # if defined( VULKAN_HPP_USE_REFLECT )
  90285. return this->reflect() == rhs.reflect();
  90286. # else
  90287. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( renderPass == rhs.renderPass ) && ( subpass == rhs.subpass );
  90288. # endif
  90289. }
  90290. bool operator!=( SubpassShadingPipelineCreateInfoHUAWEI const & rhs ) const VULKAN_HPP_NOEXCEPT
  90291. {
  90292. return !operator==( rhs );
  90293. }
  90294. #endif
  90295. public:
  90296. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassShadingPipelineCreateInfoHUAWEI;
  90297. void * pNext = {};
  90298. VULKAN_HPP_NAMESPACE::RenderPass renderPass = {};
  90299. uint32_t subpass = {};
  90300. };
  90301. template <>
  90302. struct CppType<StructureType, StructureType::eSubpassShadingPipelineCreateInfoHUAWEI>
  90303. {
  90304. using Type = SubpassShadingPipelineCreateInfoHUAWEI;
  90305. };
  90306. struct SubresourceHostMemcpySizeEXT
  90307. {
  90308. using NativeType = VkSubresourceHostMemcpySizeEXT;
  90309. static const bool allowDuplicate = false;
  90310. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubresourceHostMemcpySizeEXT;
  90311. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90312. VULKAN_HPP_CONSTEXPR SubresourceHostMemcpySizeEXT( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  90313. : pNext( pNext_ )
  90314. , size( size_ )
  90315. {
  90316. }
  90317. VULKAN_HPP_CONSTEXPR SubresourceHostMemcpySizeEXT( SubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90318. SubresourceHostMemcpySizeEXT( VkSubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  90319. : SubresourceHostMemcpySizeEXT( *reinterpret_cast<SubresourceHostMemcpySizeEXT const *>( &rhs ) )
  90320. {
  90321. }
  90322. SubresourceHostMemcpySizeEXT & operator=( SubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90323. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90324. SubresourceHostMemcpySizeEXT & operator=( VkSubresourceHostMemcpySizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  90325. {
  90326. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT const *>( &rhs );
  90327. return *this;
  90328. }
  90329. operator VkSubresourceHostMemcpySizeEXT const &() const VULKAN_HPP_NOEXCEPT
  90330. {
  90331. return *reinterpret_cast<const VkSubresourceHostMemcpySizeEXT *>( this );
  90332. }
  90333. operator VkSubresourceHostMemcpySizeEXT &() VULKAN_HPP_NOEXCEPT
  90334. {
  90335. return *reinterpret_cast<VkSubresourceHostMemcpySizeEXT *>( this );
  90336. }
  90337. #if defined( VULKAN_HPP_USE_REFLECT )
  90338. # if 14 <= VULKAN_HPP_CPP_VERSION
  90339. auto
  90340. # else
  90341. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::DeviceSize const &>
  90342. # endif
  90343. reflect() const VULKAN_HPP_NOEXCEPT
  90344. {
  90345. return std::tie( sType, pNext, size );
  90346. }
  90347. #endif
  90348. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90349. auto operator<=>( SubresourceHostMemcpySizeEXT const & ) const = default;
  90350. #else
  90351. bool operator==( SubresourceHostMemcpySizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  90352. {
  90353. # if defined( VULKAN_HPP_USE_REFLECT )
  90354. return this->reflect() == rhs.reflect();
  90355. # else
  90356. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( size == rhs.size );
  90357. # endif
  90358. }
  90359. bool operator!=( SubresourceHostMemcpySizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  90360. {
  90361. return !operator==( rhs );
  90362. }
  90363. #endif
  90364. public:
  90365. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubresourceHostMemcpySizeEXT;
  90366. void * pNext = {};
  90367. VULKAN_HPP_NAMESPACE::DeviceSize size = {};
  90368. };
  90369. template <>
  90370. struct CppType<StructureType, StructureType::eSubresourceHostMemcpySizeEXT>
  90371. {
  90372. using Type = SubresourceHostMemcpySizeEXT;
  90373. };
  90374. struct SubresourceLayout2KHR
  90375. {
  90376. using NativeType = VkSubresourceLayout2KHR;
  90377. static const bool allowDuplicate = false;
  90378. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubresourceLayout2KHR;
  90379. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90380. VULKAN_HPP_CONSTEXPR SubresourceLayout2KHR( VULKAN_HPP_NAMESPACE::SubresourceLayout subresourceLayout_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  90381. : pNext( pNext_ )
  90382. , subresourceLayout( subresourceLayout_ )
  90383. {
  90384. }
  90385. VULKAN_HPP_CONSTEXPR SubresourceLayout2KHR( SubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90386. SubresourceLayout2KHR( VkSubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  90387. : SubresourceLayout2KHR( *reinterpret_cast<SubresourceLayout2KHR const *>( &rhs ) )
  90388. {
  90389. }
  90390. SubresourceLayout2KHR & operator=( SubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90391. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90392. SubresourceLayout2KHR & operator=( VkSubresourceLayout2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  90393. {
  90394. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR const *>( &rhs );
  90395. return *this;
  90396. }
  90397. operator VkSubresourceLayout2KHR const &() const VULKAN_HPP_NOEXCEPT
  90398. {
  90399. return *reinterpret_cast<const VkSubresourceLayout2KHR *>( this );
  90400. }
  90401. operator VkSubresourceLayout2KHR &() VULKAN_HPP_NOEXCEPT
  90402. {
  90403. return *reinterpret_cast<VkSubresourceLayout2KHR *>( this );
  90404. }
  90405. #if defined( VULKAN_HPP_USE_REFLECT )
  90406. # if 14 <= VULKAN_HPP_CPP_VERSION
  90407. auto
  90408. # else
  90409. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SubresourceLayout const &>
  90410. # endif
  90411. reflect() const VULKAN_HPP_NOEXCEPT
  90412. {
  90413. return std::tie( sType, pNext, subresourceLayout );
  90414. }
  90415. #endif
  90416. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90417. auto operator<=>( SubresourceLayout2KHR const & ) const = default;
  90418. #else
  90419. bool operator==( SubresourceLayout2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  90420. {
  90421. # if defined( VULKAN_HPP_USE_REFLECT )
  90422. return this->reflect() == rhs.reflect();
  90423. # else
  90424. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subresourceLayout == rhs.subresourceLayout );
  90425. # endif
  90426. }
  90427. bool operator!=( SubresourceLayout2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  90428. {
  90429. return !operator==( rhs );
  90430. }
  90431. #endif
  90432. public:
  90433. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubresourceLayout2KHR;
  90434. void * pNext = {};
  90435. VULKAN_HPP_NAMESPACE::SubresourceLayout subresourceLayout = {};
  90436. };
  90437. template <>
  90438. struct CppType<StructureType, StructureType::eSubresourceLayout2KHR>
  90439. {
  90440. using Type = SubresourceLayout2KHR;
  90441. };
  90442. using SubresourceLayout2EXT = SubresourceLayout2KHR;
  90443. struct SurfaceCapabilities2EXT
  90444. {
  90445. using NativeType = VkSurfaceCapabilities2EXT;
  90446. static const bool allowDuplicate = false;
  90447. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2EXT;
  90448. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90449. VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT(
  90450. uint32_t minImageCount_ = {},
  90451. uint32_t maxImageCount_ = {},
  90452. VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {},
  90453. VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {},
  90454. VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {},
  90455. uint32_t maxImageArrayLayers_ = {},
  90456. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {},
  90457. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  90458. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {},
  90459. VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {},
  90460. VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters_ = {},
  90461. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  90462. : pNext( pNext_ )
  90463. , minImageCount( minImageCount_ )
  90464. , maxImageCount( maxImageCount_ )
  90465. , currentExtent( currentExtent_ )
  90466. , minImageExtent( minImageExtent_ )
  90467. , maxImageExtent( maxImageExtent_ )
  90468. , maxImageArrayLayers( maxImageArrayLayers_ )
  90469. , supportedTransforms( supportedTransforms_ )
  90470. , currentTransform( currentTransform_ )
  90471. , supportedCompositeAlpha( supportedCompositeAlpha_ )
  90472. , supportedUsageFlags( supportedUsageFlags_ )
  90473. , supportedSurfaceCounters( supportedSurfaceCounters_ )
  90474. {
  90475. }
  90476. VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90477. SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  90478. : SurfaceCapabilities2EXT( *reinterpret_cast<SurfaceCapabilities2EXT const *>( &rhs ) )
  90479. {
  90480. }
  90481. SurfaceCapabilities2EXT & operator=( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90482. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90483. SurfaceCapabilities2EXT & operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  90484. {
  90485. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT const *>( &rhs );
  90486. return *this;
  90487. }
  90488. operator VkSurfaceCapabilities2EXT const &() const VULKAN_HPP_NOEXCEPT
  90489. {
  90490. return *reinterpret_cast<const VkSurfaceCapabilities2EXT *>( this );
  90491. }
  90492. operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT
  90493. {
  90494. return *reinterpret_cast<VkSurfaceCapabilities2EXT *>( this );
  90495. }
  90496. #if defined( VULKAN_HPP_USE_REFLECT )
  90497. # if 14 <= VULKAN_HPP_CPP_VERSION
  90498. auto
  90499. # else
  90500. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  90501. void * const &,
  90502. uint32_t const &,
  90503. uint32_t const &,
  90504. VULKAN_HPP_NAMESPACE::Extent2D const &,
  90505. VULKAN_HPP_NAMESPACE::Extent2D const &,
  90506. VULKAN_HPP_NAMESPACE::Extent2D const &,
  90507. uint32_t const &,
  90508. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR const &,
  90509. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &,
  90510. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR const &,
  90511. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  90512. VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT const &>
  90513. # endif
  90514. reflect() const VULKAN_HPP_NOEXCEPT
  90515. {
  90516. return std::tie( sType,
  90517. pNext,
  90518. minImageCount,
  90519. maxImageCount,
  90520. currentExtent,
  90521. minImageExtent,
  90522. maxImageExtent,
  90523. maxImageArrayLayers,
  90524. supportedTransforms,
  90525. currentTransform,
  90526. supportedCompositeAlpha,
  90527. supportedUsageFlags,
  90528. supportedSurfaceCounters );
  90529. }
  90530. #endif
  90531. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90532. auto operator<=>( SurfaceCapabilities2EXT const & ) const = default;
  90533. #else
  90534. bool operator==( SurfaceCapabilities2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  90535. {
  90536. # if defined( VULKAN_HPP_USE_REFLECT )
  90537. return this->reflect() == rhs.reflect();
  90538. # else
  90539. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minImageCount == rhs.minImageCount ) && ( maxImageCount == rhs.maxImageCount ) &&
  90540. ( currentExtent == rhs.currentExtent ) && ( minImageExtent == rhs.minImageExtent ) && ( maxImageExtent == rhs.maxImageExtent ) &&
  90541. ( maxImageArrayLayers == rhs.maxImageArrayLayers ) && ( supportedTransforms == rhs.supportedTransforms ) &&
  90542. ( currentTransform == rhs.currentTransform ) && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) &&
  90543. ( supportedUsageFlags == rhs.supportedUsageFlags ) && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters );
  90544. # endif
  90545. }
  90546. bool operator!=( SurfaceCapabilities2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  90547. {
  90548. return !operator==( rhs );
  90549. }
  90550. #endif
  90551. public:
  90552. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT;
  90553. void * pNext = {};
  90554. uint32_t minImageCount = {};
  90555. uint32_t maxImageCount = {};
  90556. VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
  90557. VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
  90558. VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
  90559. uint32_t maxImageArrayLayers = {};
  90560. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
  90561. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  90562. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
  90563. VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
  90564. VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {};
  90565. };
  90566. template <>
  90567. struct CppType<StructureType, StructureType::eSurfaceCapabilities2EXT>
  90568. {
  90569. using Type = SurfaceCapabilities2EXT;
  90570. };
  90571. struct SurfaceCapabilitiesKHR
  90572. {
  90573. using NativeType = VkSurfaceCapabilitiesKHR;
  90574. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90575. VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR(
  90576. uint32_t minImageCount_ = {},
  90577. uint32_t maxImageCount_ = {},
  90578. VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {},
  90579. VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {},
  90580. VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {},
  90581. uint32_t maxImageArrayLayers_ = {},
  90582. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {},
  90583. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  90584. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {},
  90585. VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {} ) VULKAN_HPP_NOEXCEPT
  90586. : minImageCount( minImageCount_ )
  90587. , maxImageCount( maxImageCount_ )
  90588. , currentExtent( currentExtent_ )
  90589. , minImageExtent( minImageExtent_ )
  90590. , maxImageExtent( maxImageExtent_ )
  90591. , maxImageArrayLayers( maxImageArrayLayers_ )
  90592. , supportedTransforms( supportedTransforms_ )
  90593. , currentTransform( currentTransform_ )
  90594. , supportedCompositeAlpha( supportedCompositeAlpha_ )
  90595. , supportedUsageFlags( supportedUsageFlags_ )
  90596. {
  90597. }
  90598. VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90599. SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  90600. : SurfaceCapabilitiesKHR( *reinterpret_cast<SurfaceCapabilitiesKHR const *>( &rhs ) )
  90601. {
  90602. }
  90603. SurfaceCapabilitiesKHR & operator=( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90604. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90605. SurfaceCapabilitiesKHR & operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  90606. {
  90607. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const *>( &rhs );
  90608. return *this;
  90609. }
  90610. operator VkSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  90611. {
  90612. return *reinterpret_cast<const VkSurfaceCapabilitiesKHR *>( this );
  90613. }
  90614. operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  90615. {
  90616. return *reinterpret_cast<VkSurfaceCapabilitiesKHR *>( this );
  90617. }
  90618. #if defined( VULKAN_HPP_USE_REFLECT )
  90619. # if 14 <= VULKAN_HPP_CPP_VERSION
  90620. auto
  90621. # else
  90622. std::tuple<uint32_t const &,
  90623. uint32_t const &,
  90624. VULKAN_HPP_NAMESPACE::Extent2D const &,
  90625. VULKAN_HPP_NAMESPACE::Extent2D const &,
  90626. VULKAN_HPP_NAMESPACE::Extent2D const &,
  90627. uint32_t const &,
  90628. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR const &,
  90629. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &,
  90630. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR const &,
  90631. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  90632. # endif
  90633. reflect() const VULKAN_HPP_NOEXCEPT
  90634. {
  90635. return std::tie( minImageCount,
  90636. maxImageCount,
  90637. currentExtent,
  90638. minImageExtent,
  90639. maxImageExtent,
  90640. maxImageArrayLayers,
  90641. supportedTransforms,
  90642. currentTransform,
  90643. supportedCompositeAlpha,
  90644. supportedUsageFlags );
  90645. }
  90646. #endif
  90647. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90648. auto operator<=>( SurfaceCapabilitiesKHR const & ) const = default;
  90649. #else
  90650. bool operator==( SurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  90651. {
  90652. # if defined( VULKAN_HPP_USE_REFLECT )
  90653. return this->reflect() == rhs.reflect();
  90654. # else
  90655. return ( minImageCount == rhs.minImageCount ) && ( maxImageCount == rhs.maxImageCount ) && ( currentExtent == rhs.currentExtent ) &&
  90656. ( minImageExtent == rhs.minImageExtent ) && ( maxImageExtent == rhs.maxImageExtent ) && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) &&
  90657. ( supportedTransforms == rhs.supportedTransforms ) && ( currentTransform == rhs.currentTransform ) &&
  90658. ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) && ( supportedUsageFlags == rhs.supportedUsageFlags );
  90659. # endif
  90660. }
  90661. bool operator!=( SurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  90662. {
  90663. return !operator==( rhs );
  90664. }
  90665. #endif
  90666. public:
  90667. uint32_t minImageCount = {};
  90668. uint32_t maxImageCount = {};
  90669. VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {};
  90670. VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {};
  90671. VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {};
  90672. uint32_t maxImageArrayLayers = {};
  90673. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {};
  90674. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  90675. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {};
  90676. VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {};
  90677. };
  90678. struct SurfaceCapabilities2KHR
  90679. {
  90680. using NativeType = VkSurfaceCapabilities2KHR;
  90681. static const bool allowDuplicate = false;
  90682. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2KHR;
  90683. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90684. VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {},
  90685. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  90686. : pNext( pNext_ )
  90687. , surfaceCapabilities( surfaceCapabilities_ )
  90688. {
  90689. }
  90690. VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90691. SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  90692. : SurfaceCapabilities2KHR( *reinterpret_cast<SurfaceCapabilities2KHR const *>( &rhs ) )
  90693. {
  90694. }
  90695. SurfaceCapabilities2KHR & operator=( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90696. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90697. SurfaceCapabilities2KHR & operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  90698. {
  90699. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR const *>( &rhs );
  90700. return *this;
  90701. }
  90702. operator VkSurfaceCapabilities2KHR const &() const VULKAN_HPP_NOEXCEPT
  90703. {
  90704. return *reinterpret_cast<const VkSurfaceCapabilities2KHR *>( this );
  90705. }
  90706. operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT
  90707. {
  90708. return *reinterpret_cast<VkSurfaceCapabilities2KHR *>( this );
  90709. }
  90710. #if defined( VULKAN_HPP_USE_REFLECT )
  90711. # if 14 <= VULKAN_HPP_CPP_VERSION
  90712. auto
  90713. # else
  90714. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const &>
  90715. # endif
  90716. reflect() const VULKAN_HPP_NOEXCEPT
  90717. {
  90718. return std::tie( sType, pNext, surfaceCapabilities );
  90719. }
  90720. #endif
  90721. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90722. auto operator<=>( SurfaceCapabilities2KHR const & ) const = default;
  90723. #else
  90724. bool operator==( SurfaceCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  90725. {
  90726. # if defined( VULKAN_HPP_USE_REFLECT )
  90727. return this->reflect() == rhs.reflect();
  90728. # else
  90729. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surfaceCapabilities == rhs.surfaceCapabilities );
  90730. # endif
  90731. }
  90732. bool operator!=( SurfaceCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  90733. {
  90734. return !operator==( rhs );
  90735. }
  90736. #endif
  90737. public:
  90738. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR;
  90739. void * pNext = {};
  90740. VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {};
  90741. };
  90742. template <>
  90743. struct CppType<StructureType, StructureType::eSurfaceCapabilities2KHR>
  90744. {
  90745. using Type = SurfaceCapabilities2KHR;
  90746. };
  90747. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  90748. struct SurfaceCapabilitiesFullScreenExclusiveEXT
  90749. {
  90750. using NativeType = VkSurfaceCapabilitiesFullScreenExclusiveEXT;
  90751. static const bool allowDuplicate = false;
  90752. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
  90753. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90754. VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {},
  90755. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  90756. : pNext( pNext_ )
  90757. , fullScreenExclusiveSupported( fullScreenExclusiveSupported_ )
  90758. {
  90759. }
  90760. VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90761. SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  90762. : SurfaceCapabilitiesFullScreenExclusiveEXT( *reinterpret_cast<SurfaceCapabilitiesFullScreenExclusiveEXT const *>( &rhs ) )
  90763. {
  90764. }
  90765. SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90766. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90767. SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  90768. {
  90769. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT const *>( &rhs );
  90770. return *this;
  90771. }
  90772. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  90773. VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  90774. {
  90775. pNext = pNext_;
  90776. return *this;
  90777. }
  90778. VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesFullScreenExclusiveEXT &
  90779. setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT
  90780. {
  90781. fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
  90782. return *this;
  90783. }
  90784. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  90785. operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const &() const VULKAN_HPP_NOEXCEPT
  90786. {
  90787. return *reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT *>( this );
  90788. }
  90789. operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT
  90790. {
  90791. return *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT *>( this );
  90792. }
  90793. # if defined( VULKAN_HPP_USE_REFLECT )
  90794. # if 14 <= VULKAN_HPP_CPP_VERSION
  90795. auto
  90796. # else
  90797. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  90798. # endif
  90799. reflect() const VULKAN_HPP_NOEXCEPT
  90800. {
  90801. return std::tie( sType, pNext, fullScreenExclusiveSupported );
  90802. }
  90803. # endif
  90804. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90805. auto operator<=>( SurfaceCapabilitiesFullScreenExclusiveEXT const & ) const = default;
  90806. # else
  90807. bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  90808. {
  90809. # if defined( VULKAN_HPP_USE_REFLECT )
  90810. return this->reflect() == rhs.reflect();
  90811. # else
  90812. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported );
  90813. # endif
  90814. }
  90815. bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  90816. {
  90817. return !operator==( rhs );
  90818. }
  90819. # endif
  90820. public:
  90821. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
  90822. void * pNext = {};
  90823. VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {};
  90824. };
  90825. template <>
  90826. struct CppType<StructureType, StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT>
  90827. {
  90828. using Type = SurfaceCapabilitiesFullScreenExclusiveEXT;
  90829. };
  90830. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  90831. struct SurfaceCapabilitiesPresentBarrierNV
  90832. {
  90833. using NativeType = VkSurfaceCapabilitiesPresentBarrierNV;
  90834. static const bool allowDuplicate = false;
  90835. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesPresentBarrierNV;
  90836. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90837. VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesPresentBarrierNV( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierSupported_ = {},
  90838. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  90839. : pNext( pNext_ )
  90840. , presentBarrierSupported( presentBarrierSupported_ )
  90841. {
  90842. }
  90843. VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesPresentBarrierNV( SurfaceCapabilitiesPresentBarrierNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90844. SurfaceCapabilitiesPresentBarrierNV( VkSurfaceCapabilitiesPresentBarrierNV const & rhs ) VULKAN_HPP_NOEXCEPT
  90845. : SurfaceCapabilitiesPresentBarrierNV( *reinterpret_cast<SurfaceCapabilitiesPresentBarrierNV const *>( &rhs ) )
  90846. {
  90847. }
  90848. SurfaceCapabilitiesPresentBarrierNV & operator=( SurfaceCapabilitiesPresentBarrierNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90849. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90850. SurfaceCapabilitiesPresentBarrierNV & operator=( VkSurfaceCapabilitiesPresentBarrierNV const & rhs ) VULKAN_HPP_NOEXCEPT
  90851. {
  90852. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV const *>( &rhs );
  90853. return *this;
  90854. }
  90855. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  90856. VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesPresentBarrierNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  90857. {
  90858. pNext = pNext_;
  90859. return *this;
  90860. }
  90861. VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesPresentBarrierNV &
  90862. setPresentBarrierSupported( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierSupported_ ) VULKAN_HPP_NOEXCEPT
  90863. {
  90864. presentBarrierSupported = presentBarrierSupported_;
  90865. return *this;
  90866. }
  90867. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  90868. operator VkSurfaceCapabilitiesPresentBarrierNV const &() const VULKAN_HPP_NOEXCEPT
  90869. {
  90870. return *reinterpret_cast<const VkSurfaceCapabilitiesPresentBarrierNV *>( this );
  90871. }
  90872. operator VkSurfaceCapabilitiesPresentBarrierNV &() VULKAN_HPP_NOEXCEPT
  90873. {
  90874. return *reinterpret_cast<VkSurfaceCapabilitiesPresentBarrierNV *>( this );
  90875. }
  90876. #if defined( VULKAN_HPP_USE_REFLECT )
  90877. # if 14 <= VULKAN_HPP_CPP_VERSION
  90878. auto
  90879. # else
  90880. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  90881. # endif
  90882. reflect() const VULKAN_HPP_NOEXCEPT
  90883. {
  90884. return std::tie( sType, pNext, presentBarrierSupported );
  90885. }
  90886. #endif
  90887. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90888. auto operator<=>( SurfaceCapabilitiesPresentBarrierNV const & ) const = default;
  90889. #else
  90890. bool operator==( SurfaceCapabilitiesPresentBarrierNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  90891. {
  90892. # if defined( VULKAN_HPP_USE_REFLECT )
  90893. return this->reflect() == rhs.reflect();
  90894. # else
  90895. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentBarrierSupported == rhs.presentBarrierSupported );
  90896. # endif
  90897. }
  90898. bool operator!=( SurfaceCapabilitiesPresentBarrierNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  90899. {
  90900. return !operator==( rhs );
  90901. }
  90902. #endif
  90903. public:
  90904. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesPresentBarrierNV;
  90905. void * pNext = {};
  90906. VULKAN_HPP_NAMESPACE::Bool32 presentBarrierSupported = {};
  90907. };
  90908. template <>
  90909. struct CppType<StructureType, StructureType::eSurfaceCapabilitiesPresentBarrierNV>
  90910. {
  90911. using Type = SurfaceCapabilitiesPresentBarrierNV;
  90912. };
  90913. struct SurfaceFormatKHR
  90914. {
  90915. using NativeType = VkSurfaceFormatKHR;
  90916. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90917. VULKAN_HPP_CONSTEXPR
  90918. SurfaceFormatKHR( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  90919. VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear ) VULKAN_HPP_NOEXCEPT
  90920. : format( format_ )
  90921. , colorSpace( colorSpace_ )
  90922. {
  90923. }
  90924. VULKAN_HPP_CONSTEXPR SurfaceFormatKHR( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90925. SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT : SurfaceFormatKHR( *reinterpret_cast<SurfaceFormatKHR const *>( &rhs ) ) {}
  90926. SurfaceFormatKHR & operator=( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90927. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90928. SurfaceFormatKHR & operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  90929. {
  90930. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const *>( &rhs );
  90931. return *this;
  90932. }
  90933. operator VkSurfaceFormatKHR const &() const VULKAN_HPP_NOEXCEPT
  90934. {
  90935. return *reinterpret_cast<const VkSurfaceFormatKHR *>( this );
  90936. }
  90937. operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT
  90938. {
  90939. return *reinterpret_cast<VkSurfaceFormatKHR *>( this );
  90940. }
  90941. #if defined( VULKAN_HPP_USE_REFLECT )
  90942. # if 14 <= VULKAN_HPP_CPP_VERSION
  90943. auto
  90944. # else
  90945. std::tuple<VULKAN_HPP_NAMESPACE::Format const &, VULKAN_HPP_NAMESPACE::ColorSpaceKHR const &>
  90946. # endif
  90947. reflect() const VULKAN_HPP_NOEXCEPT
  90948. {
  90949. return std::tie( format, colorSpace );
  90950. }
  90951. #endif
  90952. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  90953. auto operator<=>( SurfaceFormatKHR const & ) const = default;
  90954. #else
  90955. bool operator==( SurfaceFormatKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  90956. {
  90957. # if defined( VULKAN_HPP_USE_REFLECT )
  90958. return this->reflect() == rhs.reflect();
  90959. # else
  90960. return ( format == rhs.format ) && ( colorSpace == rhs.colorSpace );
  90961. # endif
  90962. }
  90963. bool operator!=( SurfaceFormatKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  90964. {
  90965. return !operator==( rhs );
  90966. }
  90967. #endif
  90968. public:
  90969. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  90970. VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
  90971. };
  90972. struct SurfaceFormat2KHR
  90973. {
  90974. using NativeType = VkSurfaceFormat2KHR;
  90975. static const bool allowDuplicate = false;
  90976. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFormat2KHR;
  90977. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  90978. VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  90979. : pNext( pNext_ )
  90980. , surfaceFormat( surfaceFormat_ )
  90981. {
  90982. }
  90983. VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90984. SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT : SurfaceFormat2KHR( *reinterpret_cast<SurfaceFormat2KHR const *>( &rhs ) ) {}
  90985. SurfaceFormat2KHR & operator=( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  90986. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  90987. SurfaceFormat2KHR & operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  90988. {
  90989. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR const *>( &rhs );
  90990. return *this;
  90991. }
  90992. operator VkSurfaceFormat2KHR const &() const VULKAN_HPP_NOEXCEPT
  90993. {
  90994. return *reinterpret_cast<const VkSurfaceFormat2KHR *>( this );
  90995. }
  90996. operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT
  90997. {
  90998. return *reinterpret_cast<VkSurfaceFormat2KHR *>( this );
  90999. }
  91000. #if defined( VULKAN_HPP_USE_REFLECT )
  91001. # if 14 <= VULKAN_HPP_CPP_VERSION
  91002. auto
  91003. # else
  91004. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const &>
  91005. # endif
  91006. reflect() const VULKAN_HPP_NOEXCEPT
  91007. {
  91008. return std::tie( sType, pNext, surfaceFormat );
  91009. }
  91010. #endif
  91011. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  91012. auto operator<=>( SurfaceFormat2KHR const & ) const = default;
  91013. #else
  91014. bool operator==( SurfaceFormat2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  91015. {
  91016. # if defined( VULKAN_HPP_USE_REFLECT )
  91017. return this->reflect() == rhs.reflect();
  91018. # else
  91019. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surfaceFormat == rhs.surfaceFormat );
  91020. # endif
  91021. }
  91022. bool operator!=( SurfaceFormat2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  91023. {
  91024. return !operator==( rhs );
  91025. }
  91026. #endif
  91027. public:
  91028. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR;
  91029. void * pNext = {};
  91030. VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {};
  91031. };
  91032. template <>
  91033. struct CppType<StructureType, StructureType::eSurfaceFormat2KHR>
  91034. {
  91035. using Type = SurfaceFormat2KHR;
  91036. };
  91037. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  91038. struct SurfaceFullScreenExclusiveInfoEXT
  91039. {
  91040. using NativeType = VkSurfaceFullScreenExclusiveInfoEXT;
  91041. static const bool allowDuplicate = false;
  91042. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
  91043. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  91044. VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT(
  91045. VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault,
  91046. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  91047. : pNext( pNext_ )
  91048. , fullScreenExclusive( fullScreenExclusive_ )
  91049. {
  91050. }
  91051. VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91052. SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91053. : SurfaceFullScreenExclusiveInfoEXT( *reinterpret_cast<SurfaceFullScreenExclusiveInfoEXT const *>( &rhs ) )
  91054. {
  91055. }
  91056. SurfaceFullScreenExclusiveInfoEXT & operator=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91057. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  91058. SurfaceFullScreenExclusiveInfoEXT & operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91059. {
  91060. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT const *>( &rhs );
  91061. return *this;
  91062. }
  91063. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  91064. VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  91065. {
  91066. pNext = pNext_;
  91067. return *this;
  91068. }
  91069. VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveInfoEXT &
  91070. setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT
  91071. {
  91072. fullScreenExclusive = fullScreenExclusive_;
  91073. return *this;
  91074. }
  91075. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  91076. operator VkSurfaceFullScreenExclusiveInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  91077. {
  91078. return *reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT *>( this );
  91079. }
  91080. operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT
  91081. {
  91082. return *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT *>( this );
  91083. }
  91084. # if defined( VULKAN_HPP_USE_REFLECT )
  91085. # if 14 <= VULKAN_HPP_CPP_VERSION
  91086. auto
  91087. # else
  91088. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT const &>
  91089. # endif
  91090. reflect() const VULKAN_HPP_NOEXCEPT
  91091. {
  91092. return std::tie( sType, pNext, fullScreenExclusive );
  91093. }
  91094. # endif
  91095. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  91096. auto operator<=>( SurfaceFullScreenExclusiveInfoEXT const & ) const = default;
  91097. # else
  91098. bool operator==( SurfaceFullScreenExclusiveInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91099. {
  91100. # if defined( VULKAN_HPP_USE_REFLECT )
  91101. return this->reflect() == rhs.reflect();
  91102. # else
  91103. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fullScreenExclusive == rhs.fullScreenExclusive );
  91104. # endif
  91105. }
  91106. bool operator!=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91107. {
  91108. return !operator==( rhs );
  91109. }
  91110. # endif
  91111. public:
  91112. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
  91113. void * pNext = {};
  91114. VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault;
  91115. };
  91116. template <>
  91117. struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveInfoEXT>
  91118. {
  91119. using Type = SurfaceFullScreenExclusiveInfoEXT;
  91120. };
  91121. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  91122. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  91123. struct SurfaceFullScreenExclusiveWin32InfoEXT
  91124. {
  91125. using NativeType = VkSurfaceFullScreenExclusiveWin32InfoEXT;
  91126. static const bool allowDuplicate = false;
  91127. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
  91128. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  91129. VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( HMONITOR hmonitor_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  91130. : pNext( pNext_ )
  91131. , hmonitor( hmonitor_ )
  91132. {
  91133. }
  91134. VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91135. SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91136. : SurfaceFullScreenExclusiveWin32InfoEXT( *reinterpret_cast<SurfaceFullScreenExclusiveWin32InfoEXT const *>( &rhs ) )
  91137. {
  91138. }
  91139. SurfaceFullScreenExclusiveWin32InfoEXT & operator=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91140. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  91141. SurfaceFullScreenExclusiveWin32InfoEXT & operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91142. {
  91143. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT const *>( &rhs );
  91144. return *this;
  91145. }
  91146. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  91147. VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  91148. {
  91149. pNext = pNext_;
  91150. return *this;
  91151. }
  91152. VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT
  91153. {
  91154. hmonitor = hmonitor_;
  91155. return *this;
  91156. }
  91157. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  91158. operator VkSurfaceFullScreenExclusiveWin32InfoEXT const &() const VULKAN_HPP_NOEXCEPT
  91159. {
  91160. return *reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT *>( this );
  91161. }
  91162. operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT
  91163. {
  91164. return *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT *>( this );
  91165. }
  91166. # if defined( VULKAN_HPP_USE_REFLECT )
  91167. # if 14 <= VULKAN_HPP_CPP_VERSION
  91168. auto
  91169. # else
  91170. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, HMONITOR const &>
  91171. # endif
  91172. reflect() const VULKAN_HPP_NOEXCEPT
  91173. {
  91174. return std::tie( sType, pNext, hmonitor );
  91175. }
  91176. # endif
  91177. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  91178. auto operator<=>( SurfaceFullScreenExclusiveWin32InfoEXT const & ) const = default;
  91179. # else
  91180. bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91181. {
  91182. # if defined( VULKAN_HPP_USE_REFLECT )
  91183. return this->reflect() == rhs.reflect();
  91184. # else
  91185. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hmonitor == rhs.hmonitor );
  91186. # endif
  91187. }
  91188. bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91189. {
  91190. return !operator==( rhs );
  91191. }
  91192. # endif
  91193. public:
  91194. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
  91195. const void * pNext = {};
  91196. HMONITOR hmonitor = {};
  91197. };
  91198. template <>
  91199. struct CppType<StructureType, StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT>
  91200. {
  91201. using Type = SurfaceFullScreenExclusiveWin32InfoEXT;
  91202. };
  91203. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  91204. struct SurfacePresentModeCompatibilityEXT
  91205. {
  91206. using NativeType = VkSurfacePresentModeCompatibilityEXT;
  91207. static const bool allowDuplicate = false;
  91208. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfacePresentModeCompatibilityEXT;
  91209. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  91210. VULKAN_HPP_CONSTEXPR SurfacePresentModeCompatibilityEXT( uint32_t presentModeCount_ = {},
  91211. VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {},
  91212. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  91213. : pNext( pNext_ )
  91214. , presentModeCount( presentModeCount_ )
  91215. , pPresentModes( pPresentModes_ )
  91216. {
  91217. }
  91218. VULKAN_HPP_CONSTEXPR SurfacePresentModeCompatibilityEXT( SurfacePresentModeCompatibilityEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91219. SurfacePresentModeCompatibilityEXT( VkSurfacePresentModeCompatibilityEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91220. : SurfacePresentModeCompatibilityEXT( *reinterpret_cast<SurfacePresentModeCompatibilityEXT const *>( &rhs ) )
  91221. {
  91222. }
  91223. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  91224. SurfacePresentModeCompatibilityEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_,
  91225. void * pNext_ = nullptr )
  91226. : pNext( pNext_ ), presentModeCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() )
  91227. {
  91228. }
  91229. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  91230. SurfacePresentModeCompatibilityEXT & operator=( SurfacePresentModeCompatibilityEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91231. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  91232. SurfacePresentModeCompatibilityEXT & operator=( VkSurfacePresentModeCompatibilityEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91233. {
  91234. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT const *>( &rhs );
  91235. return *this;
  91236. }
  91237. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  91238. VULKAN_HPP_CONSTEXPR_14 SurfacePresentModeCompatibilityEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  91239. {
  91240. pNext = pNext_;
  91241. return *this;
  91242. }
  91243. VULKAN_HPP_CONSTEXPR_14 SurfacePresentModeCompatibilityEXT & setPresentModeCount( uint32_t presentModeCount_ ) VULKAN_HPP_NOEXCEPT
  91244. {
  91245. presentModeCount = presentModeCount_;
  91246. return *this;
  91247. }
  91248. VULKAN_HPP_CONSTEXPR_14 SurfacePresentModeCompatibilityEXT & setPPresentModes( VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT
  91249. {
  91250. pPresentModes = pPresentModes_;
  91251. return *this;
  91252. }
  91253. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  91254. SurfacePresentModeCompatibilityEXT &
  91255. setPresentModes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_ ) VULKAN_HPP_NOEXCEPT
  91256. {
  91257. presentModeCount = static_cast<uint32_t>( presentModes_.size() );
  91258. pPresentModes = presentModes_.data();
  91259. return *this;
  91260. }
  91261. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  91262. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  91263. operator VkSurfacePresentModeCompatibilityEXT const &() const VULKAN_HPP_NOEXCEPT
  91264. {
  91265. return *reinterpret_cast<const VkSurfacePresentModeCompatibilityEXT *>( this );
  91266. }
  91267. operator VkSurfacePresentModeCompatibilityEXT &() VULKAN_HPP_NOEXCEPT
  91268. {
  91269. return *reinterpret_cast<VkSurfacePresentModeCompatibilityEXT *>( this );
  91270. }
  91271. #if defined( VULKAN_HPP_USE_REFLECT )
  91272. # if 14 <= VULKAN_HPP_CPP_VERSION
  91273. auto
  91274. # else
  91275. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
  91276. # endif
  91277. reflect() const VULKAN_HPP_NOEXCEPT
  91278. {
  91279. return std::tie( sType, pNext, presentModeCount, pPresentModes );
  91280. }
  91281. #endif
  91282. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  91283. auto operator<=>( SurfacePresentModeCompatibilityEXT const & ) const = default;
  91284. #else
  91285. bool operator==( SurfacePresentModeCompatibilityEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91286. {
  91287. # if defined( VULKAN_HPP_USE_REFLECT )
  91288. return this->reflect() == rhs.reflect();
  91289. # else
  91290. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentModeCount == rhs.presentModeCount ) && ( pPresentModes == rhs.pPresentModes );
  91291. # endif
  91292. }
  91293. bool operator!=( SurfacePresentModeCompatibilityEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91294. {
  91295. return !operator==( rhs );
  91296. }
  91297. #endif
  91298. public:
  91299. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfacePresentModeCompatibilityEXT;
  91300. void * pNext = {};
  91301. uint32_t presentModeCount = {};
  91302. VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes = {};
  91303. };
  91304. template <>
  91305. struct CppType<StructureType, StructureType::eSurfacePresentModeCompatibilityEXT>
  91306. {
  91307. using Type = SurfacePresentModeCompatibilityEXT;
  91308. };
  91309. struct SurfacePresentModeEXT
  91310. {
  91311. using NativeType = VkSurfacePresentModeEXT;
  91312. static const bool allowDuplicate = false;
  91313. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfacePresentModeEXT;
  91314. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  91315. VULKAN_HPP_CONSTEXPR SurfacePresentModeEXT( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate,
  91316. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  91317. : pNext( pNext_ )
  91318. , presentMode( presentMode_ )
  91319. {
  91320. }
  91321. VULKAN_HPP_CONSTEXPR SurfacePresentModeEXT( SurfacePresentModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91322. SurfacePresentModeEXT( VkSurfacePresentModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91323. : SurfacePresentModeEXT( *reinterpret_cast<SurfacePresentModeEXT const *>( &rhs ) )
  91324. {
  91325. }
  91326. SurfacePresentModeEXT & operator=( SurfacePresentModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91327. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  91328. SurfacePresentModeEXT & operator=( VkSurfacePresentModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91329. {
  91330. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfacePresentModeEXT const *>( &rhs );
  91331. return *this;
  91332. }
  91333. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  91334. VULKAN_HPP_CONSTEXPR_14 SurfacePresentModeEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  91335. {
  91336. pNext = pNext_;
  91337. return *this;
  91338. }
  91339. VULKAN_HPP_CONSTEXPR_14 SurfacePresentModeEXT & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT
  91340. {
  91341. presentMode = presentMode_;
  91342. return *this;
  91343. }
  91344. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  91345. operator VkSurfacePresentModeEXT const &() const VULKAN_HPP_NOEXCEPT
  91346. {
  91347. return *reinterpret_cast<const VkSurfacePresentModeEXT *>( this );
  91348. }
  91349. operator VkSurfacePresentModeEXT &() VULKAN_HPP_NOEXCEPT
  91350. {
  91351. return *reinterpret_cast<VkSurfacePresentModeEXT *>( this );
  91352. }
  91353. #if defined( VULKAN_HPP_USE_REFLECT )
  91354. # if 14 <= VULKAN_HPP_CPP_VERSION
  91355. auto
  91356. # else
  91357. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::PresentModeKHR const &>
  91358. # endif
  91359. reflect() const VULKAN_HPP_NOEXCEPT
  91360. {
  91361. return std::tie( sType, pNext, presentMode );
  91362. }
  91363. #endif
  91364. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  91365. auto operator<=>( SurfacePresentModeEXT const & ) const = default;
  91366. #else
  91367. bool operator==( SurfacePresentModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91368. {
  91369. # if defined( VULKAN_HPP_USE_REFLECT )
  91370. return this->reflect() == rhs.reflect();
  91371. # else
  91372. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentMode == rhs.presentMode );
  91373. # endif
  91374. }
  91375. bool operator!=( SurfacePresentModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91376. {
  91377. return !operator==( rhs );
  91378. }
  91379. #endif
  91380. public:
  91381. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfacePresentModeEXT;
  91382. void * pNext = {};
  91383. VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate;
  91384. };
  91385. template <>
  91386. struct CppType<StructureType, StructureType::eSurfacePresentModeEXT>
  91387. {
  91388. using Type = SurfacePresentModeEXT;
  91389. };
  91390. struct SurfacePresentScalingCapabilitiesEXT
  91391. {
  91392. using NativeType = VkSurfacePresentScalingCapabilitiesEXT;
  91393. static const bool allowDuplicate = false;
  91394. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfacePresentScalingCapabilitiesEXT;
  91395. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  91396. VULKAN_HPP_CONSTEXPR SurfacePresentScalingCapabilitiesEXT( VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT supportedPresentScaling_ = {},
  91397. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityX_ = {},
  91398. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityY_ = {},
  91399. VULKAN_HPP_NAMESPACE::Extent2D minScaledImageExtent_ = {},
  91400. VULKAN_HPP_NAMESPACE::Extent2D maxScaledImageExtent_ = {},
  91401. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  91402. : pNext( pNext_ )
  91403. , supportedPresentScaling( supportedPresentScaling_ )
  91404. , supportedPresentGravityX( supportedPresentGravityX_ )
  91405. , supportedPresentGravityY( supportedPresentGravityY_ )
  91406. , minScaledImageExtent( minScaledImageExtent_ )
  91407. , maxScaledImageExtent( maxScaledImageExtent_ )
  91408. {
  91409. }
  91410. VULKAN_HPP_CONSTEXPR SurfacePresentScalingCapabilitiesEXT( SurfacePresentScalingCapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91411. SurfacePresentScalingCapabilitiesEXT( VkSurfacePresentScalingCapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91412. : SurfacePresentScalingCapabilitiesEXT( *reinterpret_cast<SurfacePresentScalingCapabilitiesEXT const *>( &rhs ) )
  91413. {
  91414. }
  91415. SurfacePresentScalingCapabilitiesEXT & operator=( SurfacePresentScalingCapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91416. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  91417. SurfacePresentScalingCapabilitiesEXT & operator=( VkSurfacePresentScalingCapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91418. {
  91419. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT const *>( &rhs );
  91420. return *this;
  91421. }
  91422. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  91423. VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  91424. {
  91425. pNext = pNext_;
  91426. return *this;
  91427. }
  91428. VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT &
  91429. setSupportedPresentScaling( VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT supportedPresentScaling_ ) VULKAN_HPP_NOEXCEPT
  91430. {
  91431. supportedPresentScaling = supportedPresentScaling_;
  91432. return *this;
  91433. }
  91434. VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT &
  91435. setSupportedPresentGravityX( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityX_ ) VULKAN_HPP_NOEXCEPT
  91436. {
  91437. supportedPresentGravityX = supportedPresentGravityX_;
  91438. return *this;
  91439. }
  91440. VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT &
  91441. setSupportedPresentGravityY( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityY_ ) VULKAN_HPP_NOEXCEPT
  91442. {
  91443. supportedPresentGravityY = supportedPresentGravityY_;
  91444. return *this;
  91445. }
  91446. VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT &
  91447. setMinScaledImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & minScaledImageExtent_ ) VULKAN_HPP_NOEXCEPT
  91448. {
  91449. minScaledImageExtent = minScaledImageExtent_;
  91450. return *this;
  91451. }
  91452. VULKAN_HPP_CONSTEXPR_14 SurfacePresentScalingCapabilitiesEXT &
  91453. setMaxScaledImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & maxScaledImageExtent_ ) VULKAN_HPP_NOEXCEPT
  91454. {
  91455. maxScaledImageExtent = maxScaledImageExtent_;
  91456. return *this;
  91457. }
  91458. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  91459. operator VkSurfacePresentScalingCapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
  91460. {
  91461. return *reinterpret_cast<const VkSurfacePresentScalingCapabilitiesEXT *>( this );
  91462. }
  91463. operator VkSurfacePresentScalingCapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
  91464. {
  91465. return *reinterpret_cast<VkSurfacePresentScalingCapabilitiesEXT *>( this );
  91466. }
  91467. #if defined( VULKAN_HPP_USE_REFLECT )
  91468. # if 14 <= VULKAN_HPP_CPP_VERSION
  91469. auto
  91470. # else
  91471. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  91472. void * const &,
  91473. VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT const &,
  91474. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT const &,
  91475. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT const &,
  91476. VULKAN_HPP_NAMESPACE::Extent2D const &,
  91477. VULKAN_HPP_NAMESPACE::Extent2D const &>
  91478. # endif
  91479. reflect() const VULKAN_HPP_NOEXCEPT
  91480. {
  91481. return std::tie( sType, pNext, supportedPresentScaling, supportedPresentGravityX, supportedPresentGravityY, minScaledImageExtent, maxScaledImageExtent );
  91482. }
  91483. #endif
  91484. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  91485. auto operator<=>( SurfacePresentScalingCapabilitiesEXT const & ) const = default;
  91486. #else
  91487. bool operator==( SurfacePresentScalingCapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91488. {
  91489. # if defined( VULKAN_HPP_USE_REFLECT )
  91490. return this->reflect() == rhs.reflect();
  91491. # else
  91492. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supportedPresentScaling == rhs.supportedPresentScaling ) &&
  91493. ( supportedPresentGravityX == rhs.supportedPresentGravityX ) && ( supportedPresentGravityY == rhs.supportedPresentGravityY ) &&
  91494. ( minScaledImageExtent == rhs.minScaledImageExtent ) && ( maxScaledImageExtent == rhs.maxScaledImageExtent );
  91495. # endif
  91496. }
  91497. bool operator!=( SurfacePresentScalingCapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91498. {
  91499. return !operator==( rhs );
  91500. }
  91501. #endif
  91502. public:
  91503. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfacePresentScalingCapabilitiesEXT;
  91504. void * pNext = {};
  91505. VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT supportedPresentScaling = {};
  91506. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityX = {};
  91507. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT supportedPresentGravityY = {};
  91508. VULKAN_HPP_NAMESPACE::Extent2D minScaledImageExtent = {};
  91509. VULKAN_HPP_NAMESPACE::Extent2D maxScaledImageExtent = {};
  91510. };
  91511. template <>
  91512. struct CppType<StructureType, StructureType::eSurfacePresentScalingCapabilitiesEXT>
  91513. {
  91514. using Type = SurfacePresentScalingCapabilitiesEXT;
  91515. };
  91516. struct SurfaceProtectedCapabilitiesKHR
  91517. {
  91518. using NativeType = VkSurfaceProtectedCapabilitiesKHR;
  91519. static const bool allowDuplicate = false;
  91520. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceProtectedCapabilitiesKHR;
  91521. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  91522. VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {},
  91523. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  91524. : pNext( pNext_ )
  91525. , supportsProtected( supportsProtected_ )
  91526. {
  91527. }
  91528. VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91529. SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  91530. : SurfaceProtectedCapabilitiesKHR( *reinterpret_cast<SurfaceProtectedCapabilitiesKHR const *>( &rhs ) )
  91531. {
  91532. }
  91533. SurfaceProtectedCapabilitiesKHR & operator=( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91534. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  91535. SurfaceProtectedCapabilitiesKHR & operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  91536. {
  91537. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR const *>( &rhs );
  91538. return *this;
  91539. }
  91540. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  91541. VULKAN_HPP_CONSTEXPR_14 SurfaceProtectedCapabilitiesKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  91542. {
  91543. pNext = pNext_;
  91544. return *this;
  91545. }
  91546. VULKAN_HPP_CONSTEXPR_14 SurfaceProtectedCapabilitiesKHR & setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT
  91547. {
  91548. supportsProtected = supportsProtected_;
  91549. return *this;
  91550. }
  91551. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  91552. operator VkSurfaceProtectedCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  91553. {
  91554. return *reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR *>( this );
  91555. }
  91556. operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  91557. {
  91558. return *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR *>( this );
  91559. }
  91560. #if defined( VULKAN_HPP_USE_REFLECT )
  91561. # if 14 <= VULKAN_HPP_CPP_VERSION
  91562. auto
  91563. # else
  91564. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  91565. # endif
  91566. reflect() const VULKAN_HPP_NOEXCEPT
  91567. {
  91568. return std::tie( sType, pNext, supportsProtected );
  91569. }
  91570. #endif
  91571. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  91572. auto operator<=>( SurfaceProtectedCapabilitiesKHR const & ) const = default;
  91573. #else
  91574. bool operator==( SurfaceProtectedCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  91575. {
  91576. # if defined( VULKAN_HPP_USE_REFLECT )
  91577. return this->reflect() == rhs.reflect();
  91578. # else
  91579. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supportsProtected == rhs.supportsProtected );
  91580. # endif
  91581. }
  91582. bool operator!=( SurfaceProtectedCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  91583. {
  91584. return !operator==( rhs );
  91585. }
  91586. #endif
  91587. public:
  91588. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR;
  91589. const void * pNext = {};
  91590. VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {};
  91591. };
  91592. template <>
  91593. struct CppType<StructureType, StructureType::eSurfaceProtectedCapabilitiesKHR>
  91594. {
  91595. using Type = SurfaceProtectedCapabilitiesKHR;
  91596. };
  91597. struct SwapchainCounterCreateInfoEXT
  91598. {
  91599. using NativeType = VkSwapchainCounterCreateInfoEXT;
  91600. static const bool allowDuplicate = false;
  91601. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCounterCreateInfoEXT;
  91602. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  91603. VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {},
  91604. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  91605. : pNext( pNext_ )
  91606. , surfaceCounters( surfaceCounters_ )
  91607. {
  91608. }
  91609. VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91610. SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91611. : SwapchainCounterCreateInfoEXT( *reinterpret_cast<SwapchainCounterCreateInfoEXT const *>( &rhs ) )
  91612. {
  91613. }
  91614. SwapchainCounterCreateInfoEXT & operator=( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91615. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  91616. SwapchainCounterCreateInfoEXT & operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  91617. {
  91618. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT const *>( &rhs );
  91619. return *this;
  91620. }
  91621. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  91622. VULKAN_HPP_CONSTEXPR_14 SwapchainCounterCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  91623. {
  91624. pNext = pNext_;
  91625. return *this;
  91626. }
  91627. VULKAN_HPP_CONSTEXPR_14 SwapchainCounterCreateInfoEXT &
  91628. setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT
  91629. {
  91630. surfaceCounters = surfaceCounters_;
  91631. return *this;
  91632. }
  91633. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  91634. operator VkSwapchainCounterCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  91635. {
  91636. return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT *>( this );
  91637. }
  91638. operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  91639. {
  91640. return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT *>( this );
  91641. }
  91642. #if defined( VULKAN_HPP_USE_REFLECT )
  91643. # if 14 <= VULKAN_HPP_CPP_VERSION
  91644. auto
  91645. # else
  91646. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT const &>
  91647. # endif
  91648. reflect() const VULKAN_HPP_NOEXCEPT
  91649. {
  91650. return std::tie( sType, pNext, surfaceCounters );
  91651. }
  91652. #endif
  91653. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  91654. auto operator<=>( SwapchainCounterCreateInfoEXT const & ) const = default;
  91655. #else
  91656. bool operator==( SwapchainCounterCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91657. {
  91658. # if defined( VULKAN_HPP_USE_REFLECT )
  91659. return this->reflect() == rhs.reflect();
  91660. # else
  91661. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surfaceCounters == rhs.surfaceCounters );
  91662. # endif
  91663. }
  91664. bool operator!=( SwapchainCounterCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  91665. {
  91666. return !operator==( rhs );
  91667. }
  91668. #endif
  91669. public:
  91670. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT;
  91671. const void * pNext = {};
  91672. VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {};
  91673. };
  91674. template <>
  91675. struct CppType<StructureType, StructureType::eSwapchainCounterCreateInfoEXT>
  91676. {
  91677. using Type = SwapchainCounterCreateInfoEXT;
  91678. };
  91679. struct SwapchainCreateInfoKHR
  91680. {
  91681. using NativeType = VkSwapchainCreateInfoKHR;
  91682. static const bool allowDuplicate = false;
  91683. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCreateInfoKHR;
  91684. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  91685. VULKAN_HPP_CONSTEXPR
  91686. SwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ = {},
  91687. VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {},
  91688. uint32_t minImageCount_ = {},
  91689. VULKAN_HPP_NAMESPACE::Format imageFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  91690. VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear,
  91691. VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {},
  91692. uint32_t imageArrayLayers_ = {},
  91693. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {},
  91694. VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive,
  91695. uint32_t queueFamilyIndexCount_ = {},
  91696. const uint32_t * pQueueFamilyIndices_ = {},
  91697. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  91698. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque,
  91699. VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate,
  91700. VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {},
  91701. VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {},
  91702. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  91703. : pNext( pNext_ )
  91704. , flags( flags_ )
  91705. , surface( surface_ )
  91706. , minImageCount( minImageCount_ )
  91707. , imageFormat( imageFormat_ )
  91708. , imageColorSpace( imageColorSpace_ )
  91709. , imageExtent( imageExtent_ )
  91710. , imageArrayLayers( imageArrayLayers_ )
  91711. , imageUsage( imageUsage_ )
  91712. , imageSharingMode( imageSharingMode_ )
  91713. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  91714. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  91715. , preTransform( preTransform_ )
  91716. , compositeAlpha( compositeAlpha_ )
  91717. , presentMode( presentMode_ )
  91718. , clipped( clipped_ )
  91719. , oldSwapchain( oldSwapchain_ )
  91720. {
  91721. }
  91722. VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91723. SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  91724. : SwapchainCreateInfoKHR( *reinterpret_cast<SwapchainCreateInfoKHR const *>( &rhs ) )
  91725. {
  91726. }
  91727. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  91728. SwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_,
  91729. VULKAN_HPP_NAMESPACE::SurfaceKHR surface_,
  91730. uint32_t minImageCount_,
  91731. VULKAN_HPP_NAMESPACE::Format imageFormat_,
  91732. VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_,
  91733. VULKAN_HPP_NAMESPACE::Extent2D imageExtent_,
  91734. uint32_t imageArrayLayers_,
  91735. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_,
  91736. VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_,
  91737. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_,
  91738. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity,
  91739. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque,
  91740. VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate,
  91741. VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {},
  91742. VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {},
  91743. const void * pNext_ = nullptr )
  91744. : pNext( pNext_ )
  91745. , flags( flags_ )
  91746. , surface( surface_ )
  91747. , minImageCount( minImageCount_ )
  91748. , imageFormat( imageFormat_ )
  91749. , imageColorSpace( imageColorSpace_ )
  91750. , imageExtent( imageExtent_ )
  91751. , imageArrayLayers( imageArrayLayers_ )
  91752. , imageUsage( imageUsage_ )
  91753. , imageSharingMode( imageSharingMode_ )
  91754. , queueFamilyIndexCount( static_cast<uint32_t>( queueFamilyIndices_.size() ) )
  91755. , pQueueFamilyIndices( queueFamilyIndices_.data() )
  91756. , preTransform( preTransform_ )
  91757. , compositeAlpha( compositeAlpha_ )
  91758. , presentMode( presentMode_ )
  91759. , clipped( clipped_ )
  91760. , oldSwapchain( oldSwapchain_ )
  91761. {
  91762. }
  91763. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  91764. SwapchainCreateInfoKHR & operator=( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91765. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  91766. SwapchainCreateInfoKHR & operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  91767. {
  91768. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const *>( &rhs );
  91769. return *this;
  91770. }
  91771. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  91772. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  91773. {
  91774. pNext = pNext_;
  91775. return *this;
  91776. }
  91777. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  91778. {
  91779. flags = flags_;
  91780. return *this;
  91781. }
  91782. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT
  91783. {
  91784. surface = surface_;
  91785. return *this;
  91786. }
  91787. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT
  91788. {
  91789. minImageCount = minImageCount_;
  91790. return *this;
  91791. }
  91792. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT
  91793. {
  91794. imageFormat = imageFormat_;
  91795. return *this;
  91796. }
  91797. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT
  91798. {
  91799. imageColorSpace = imageColorSpace_;
  91800. return *this;
  91801. }
  91802. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT
  91803. {
  91804. imageExtent = imageExtent_;
  91805. return *this;
  91806. }
  91807. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT
  91808. {
  91809. imageArrayLayers = imageArrayLayers_;
  91810. return *this;
  91811. }
  91812. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT
  91813. {
  91814. imageUsage = imageUsage_;
  91815. return *this;
  91816. }
  91817. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT
  91818. {
  91819. imageSharingMode = imageSharingMode_;
  91820. return *this;
  91821. }
  91822. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT
  91823. {
  91824. queueFamilyIndexCount = queueFamilyIndexCount_;
  91825. return *this;
  91826. }
  91827. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  91828. {
  91829. pQueueFamilyIndices = pQueueFamilyIndices_;
  91830. return *this;
  91831. }
  91832. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  91833. SwapchainCreateInfoKHR &
  91834. setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT
  91835. {
  91836. queueFamilyIndexCount = static_cast<uint32_t>( queueFamilyIndices_.size() );
  91837. pQueueFamilyIndices = queueFamilyIndices_.data();
  91838. return *this;
  91839. }
  91840. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  91841. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT
  91842. {
  91843. preTransform = preTransform_;
  91844. return *this;
  91845. }
  91846. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT
  91847. {
  91848. compositeAlpha = compositeAlpha_;
  91849. return *this;
  91850. }
  91851. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT
  91852. {
  91853. presentMode = presentMode_;
  91854. return *this;
  91855. }
  91856. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT
  91857. {
  91858. clipped = clipped_;
  91859. return *this;
  91860. }
  91861. VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT
  91862. {
  91863. oldSwapchain = oldSwapchain_;
  91864. return *this;
  91865. }
  91866. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  91867. operator VkSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  91868. {
  91869. return *reinterpret_cast<const VkSwapchainCreateInfoKHR *>( this );
  91870. }
  91871. operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  91872. {
  91873. return *reinterpret_cast<VkSwapchainCreateInfoKHR *>( this );
  91874. }
  91875. #if defined( VULKAN_HPP_USE_REFLECT )
  91876. # if 14 <= VULKAN_HPP_CPP_VERSION
  91877. auto
  91878. # else
  91879. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  91880. const void * const &,
  91881. VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR const &,
  91882. VULKAN_HPP_NAMESPACE::SurfaceKHR const &,
  91883. uint32_t const &,
  91884. VULKAN_HPP_NAMESPACE::Format const &,
  91885. VULKAN_HPP_NAMESPACE::ColorSpaceKHR const &,
  91886. VULKAN_HPP_NAMESPACE::Extent2D const &,
  91887. uint32_t const &,
  91888. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &,
  91889. VULKAN_HPP_NAMESPACE::SharingMode const &,
  91890. uint32_t const &,
  91891. const uint32_t * const &,
  91892. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR const &,
  91893. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR const &,
  91894. VULKAN_HPP_NAMESPACE::PresentModeKHR const &,
  91895. VULKAN_HPP_NAMESPACE::Bool32 const &,
  91896. VULKAN_HPP_NAMESPACE::SwapchainKHR const &>
  91897. # endif
  91898. reflect() const VULKAN_HPP_NOEXCEPT
  91899. {
  91900. return std::tie( sType,
  91901. pNext,
  91902. flags,
  91903. surface,
  91904. minImageCount,
  91905. imageFormat,
  91906. imageColorSpace,
  91907. imageExtent,
  91908. imageArrayLayers,
  91909. imageUsage,
  91910. imageSharingMode,
  91911. queueFamilyIndexCount,
  91912. pQueueFamilyIndices,
  91913. preTransform,
  91914. compositeAlpha,
  91915. presentMode,
  91916. clipped,
  91917. oldSwapchain );
  91918. }
  91919. #endif
  91920. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  91921. auto operator<=>( SwapchainCreateInfoKHR const & ) const = default;
  91922. #else
  91923. bool operator==( SwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  91924. {
  91925. # if defined( VULKAN_HPP_USE_REFLECT )
  91926. return this->reflect() == rhs.reflect();
  91927. # else
  91928. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( surface == rhs.surface ) &&
  91929. ( minImageCount == rhs.minImageCount ) && ( imageFormat == rhs.imageFormat ) && ( imageColorSpace == rhs.imageColorSpace ) &&
  91930. ( imageExtent == rhs.imageExtent ) && ( imageArrayLayers == rhs.imageArrayLayers ) && ( imageUsage == rhs.imageUsage ) &&
  91931. ( imageSharingMode == rhs.imageSharingMode ) && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) &&
  91932. ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) && ( preTransform == rhs.preTransform ) && ( compositeAlpha == rhs.compositeAlpha ) &&
  91933. ( presentMode == rhs.presentMode ) && ( clipped == rhs.clipped ) && ( oldSwapchain == rhs.oldSwapchain );
  91934. # endif
  91935. }
  91936. bool operator!=( SwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  91937. {
  91938. return !operator==( rhs );
  91939. }
  91940. #endif
  91941. public:
  91942. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR;
  91943. const void * pNext = {};
  91944. VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {};
  91945. VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {};
  91946. uint32_t minImageCount = {};
  91947. VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  91948. VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear;
  91949. VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {};
  91950. uint32_t imageArrayLayers = {};
  91951. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {};
  91952. VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive;
  91953. uint32_t queueFamilyIndexCount = {};
  91954. const uint32_t * pQueueFamilyIndices = {};
  91955. VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity;
  91956. VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque;
  91957. VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate;
  91958. VULKAN_HPP_NAMESPACE::Bool32 clipped = {};
  91959. VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {};
  91960. };
  91961. template <>
  91962. struct CppType<StructureType, StructureType::eSwapchainCreateInfoKHR>
  91963. {
  91964. using Type = SwapchainCreateInfoKHR;
  91965. };
  91966. struct SwapchainDisplayNativeHdrCreateInfoAMD
  91967. {
  91968. using NativeType = VkSwapchainDisplayNativeHdrCreateInfoAMD;
  91969. static const bool allowDuplicate = false;
  91970. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
  91971. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  91972. VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {},
  91973. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  91974. : pNext( pNext_ )
  91975. , localDimmingEnable( localDimmingEnable_ )
  91976. {
  91977. }
  91978. VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91979. SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  91980. : SwapchainDisplayNativeHdrCreateInfoAMD( *reinterpret_cast<SwapchainDisplayNativeHdrCreateInfoAMD const *>( &rhs ) )
  91981. {
  91982. }
  91983. SwapchainDisplayNativeHdrCreateInfoAMD & operator=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  91984. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  91985. SwapchainDisplayNativeHdrCreateInfoAMD & operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  91986. {
  91987. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD const *>( &rhs );
  91988. return *this;
  91989. }
  91990. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  91991. VULKAN_HPP_CONSTEXPR_14 SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  91992. {
  91993. pNext = pNext_;
  91994. return *this;
  91995. }
  91996. VULKAN_HPP_CONSTEXPR_14 SwapchainDisplayNativeHdrCreateInfoAMD &
  91997. setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT
  91998. {
  91999. localDimmingEnable = localDimmingEnable_;
  92000. return *this;
  92001. }
  92002. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  92003. operator VkSwapchainDisplayNativeHdrCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT
  92004. {
  92005. return *reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD *>( this );
  92006. }
  92007. operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT
  92008. {
  92009. return *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD *>( this );
  92010. }
  92011. #if defined( VULKAN_HPP_USE_REFLECT )
  92012. # if 14 <= VULKAN_HPP_CPP_VERSION
  92013. auto
  92014. # else
  92015. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  92016. # endif
  92017. reflect() const VULKAN_HPP_NOEXCEPT
  92018. {
  92019. return std::tie( sType, pNext, localDimmingEnable );
  92020. }
  92021. #endif
  92022. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  92023. auto operator<=>( SwapchainDisplayNativeHdrCreateInfoAMD const & ) const = default;
  92024. #else
  92025. bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  92026. {
  92027. # if defined( VULKAN_HPP_USE_REFLECT )
  92028. return this->reflect() == rhs.reflect();
  92029. # else
  92030. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( localDimmingEnable == rhs.localDimmingEnable );
  92031. # endif
  92032. }
  92033. bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  92034. {
  92035. return !operator==( rhs );
  92036. }
  92037. #endif
  92038. public:
  92039. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
  92040. const void * pNext = {};
  92041. VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {};
  92042. };
  92043. template <>
  92044. struct CppType<StructureType, StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD>
  92045. {
  92046. using Type = SwapchainDisplayNativeHdrCreateInfoAMD;
  92047. };
  92048. struct SwapchainLatencyCreateInfoNV
  92049. {
  92050. using NativeType = VkSwapchainLatencyCreateInfoNV;
  92051. static const bool allowDuplicate = false;
  92052. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainLatencyCreateInfoNV;
  92053. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  92054. VULKAN_HPP_CONSTEXPR SwapchainLatencyCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  92055. : pNext( pNext_ )
  92056. , latencyModeEnable( latencyModeEnable_ )
  92057. {
  92058. }
  92059. VULKAN_HPP_CONSTEXPR SwapchainLatencyCreateInfoNV( SwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92060. SwapchainLatencyCreateInfoNV( VkSwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  92061. : SwapchainLatencyCreateInfoNV( *reinterpret_cast<SwapchainLatencyCreateInfoNV const *>( &rhs ) )
  92062. {
  92063. }
  92064. SwapchainLatencyCreateInfoNV & operator=( SwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92065. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  92066. SwapchainLatencyCreateInfoNV & operator=( VkSwapchainLatencyCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  92067. {
  92068. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV const *>( &rhs );
  92069. return *this;
  92070. }
  92071. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  92072. VULKAN_HPP_CONSTEXPR_14 SwapchainLatencyCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  92073. {
  92074. pNext = pNext_;
  92075. return *this;
  92076. }
  92077. VULKAN_HPP_CONSTEXPR_14 SwapchainLatencyCreateInfoNV & setLatencyModeEnable( VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable_ ) VULKAN_HPP_NOEXCEPT
  92078. {
  92079. latencyModeEnable = latencyModeEnable_;
  92080. return *this;
  92081. }
  92082. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  92083. operator VkSwapchainLatencyCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  92084. {
  92085. return *reinterpret_cast<const VkSwapchainLatencyCreateInfoNV *>( this );
  92086. }
  92087. operator VkSwapchainLatencyCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  92088. {
  92089. return *reinterpret_cast<VkSwapchainLatencyCreateInfoNV *>( this );
  92090. }
  92091. #if defined( VULKAN_HPP_USE_REFLECT )
  92092. # if 14 <= VULKAN_HPP_CPP_VERSION
  92093. auto
  92094. # else
  92095. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  92096. # endif
  92097. reflect() const VULKAN_HPP_NOEXCEPT
  92098. {
  92099. return std::tie( sType, pNext, latencyModeEnable );
  92100. }
  92101. #endif
  92102. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  92103. auto operator<=>( SwapchainLatencyCreateInfoNV const & ) const = default;
  92104. #else
  92105. bool operator==( SwapchainLatencyCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  92106. {
  92107. # if defined( VULKAN_HPP_USE_REFLECT )
  92108. return this->reflect() == rhs.reflect();
  92109. # else
  92110. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( latencyModeEnable == rhs.latencyModeEnable );
  92111. # endif
  92112. }
  92113. bool operator!=( SwapchainLatencyCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  92114. {
  92115. return !operator==( rhs );
  92116. }
  92117. #endif
  92118. public:
  92119. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainLatencyCreateInfoNV;
  92120. const void * pNext = {};
  92121. VULKAN_HPP_NAMESPACE::Bool32 latencyModeEnable = {};
  92122. };
  92123. template <>
  92124. struct CppType<StructureType, StructureType::eSwapchainLatencyCreateInfoNV>
  92125. {
  92126. using Type = SwapchainLatencyCreateInfoNV;
  92127. };
  92128. struct SwapchainPresentBarrierCreateInfoNV
  92129. {
  92130. using NativeType = VkSwapchainPresentBarrierCreateInfoNV;
  92131. static const bool allowDuplicate = false;
  92132. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainPresentBarrierCreateInfoNV;
  92133. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  92134. VULKAN_HPP_CONSTEXPR SwapchainPresentBarrierCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierEnable_ = {},
  92135. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  92136. : pNext( pNext_ )
  92137. , presentBarrierEnable( presentBarrierEnable_ )
  92138. {
  92139. }
  92140. VULKAN_HPP_CONSTEXPR SwapchainPresentBarrierCreateInfoNV( SwapchainPresentBarrierCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92141. SwapchainPresentBarrierCreateInfoNV( VkSwapchainPresentBarrierCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  92142. : SwapchainPresentBarrierCreateInfoNV( *reinterpret_cast<SwapchainPresentBarrierCreateInfoNV const *>( &rhs ) )
  92143. {
  92144. }
  92145. SwapchainPresentBarrierCreateInfoNV & operator=( SwapchainPresentBarrierCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92146. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  92147. SwapchainPresentBarrierCreateInfoNV & operator=( VkSwapchainPresentBarrierCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  92148. {
  92149. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV const *>( &rhs );
  92150. return *this;
  92151. }
  92152. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  92153. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentBarrierCreateInfoNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  92154. {
  92155. pNext = pNext_;
  92156. return *this;
  92157. }
  92158. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentBarrierCreateInfoNV &
  92159. setPresentBarrierEnable( VULKAN_HPP_NAMESPACE::Bool32 presentBarrierEnable_ ) VULKAN_HPP_NOEXCEPT
  92160. {
  92161. presentBarrierEnable = presentBarrierEnable_;
  92162. return *this;
  92163. }
  92164. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  92165. operator VkSwapchainPresentBarrierCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT
  92166. {
  92167. return *reinterpret_cast<const VkSwapchainPresentBarrierCreateInfoNV *>( this );
  92168. }
  92169. operator VkSwapchainPresentBarrierCreateInfoNV &() VULKAN_HPP_NOEXCEPT
  92170. {
  92171. return *reinterpret_cast<VkSwapchainPresentBarrierCreateInfoNV *>( this );
  92172. }
  92173. #if defined( VULKAN_HPP_USE_REFLECT )
  92174. # if 14 <= VULKAN_HPP_CPP_VERSION
  92175. auto
  92176. # else
  92177. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  92178. # endif
  92179. reflect() const VULKAN_HPP_NOEXCEPT
  92180. {
  92181. return std::tie( sType, pNext, presentBarrierEnable );
  92182. }
  92183. #endif
  92184. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  92185. auto operator<=>( SwapchainPresentBarrierCreateInfoNV const & ) const = default;
  92186. #else
  92187. bool operator==( SwapchainPresentBarrierCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  92188. {
  92189. # if defined( VULKAN_HPP_USE_REFLECT )
  92190. return this->reflect() == rhs.reflect();
  92191. # else
  92192. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentBarrierEnable == rhs.presentBarrierEnable );
  92193. # endif
  92194. }
  92195. bool operator!=( SwapchainPresentBarrierCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  92196. {
  92197. return !operator==( rhs );
  92198. }
  92199. #endif
  92200. public:
  92201. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainPresentBarrierCreateInfoNV;
  92202. void * pNext = {};
  92203. VULKAN_HPP_NAMESPACE::Bool32 presentBarrierEnable = {};
  92204. };
  92205. template <>
  92206. struct CppType<StructureType, StructureType::eSwapchainPresentBarrierCreateInfoNV>
  92207. {
  92208. using Type = SwapchainPresentBarrierCreateInfoNV;
  92209. };
  92210. struct SwapchainPresentFenceInfoEXT
  92211. {
  92212. using NativeType = VkSwapchainPresentFenceInfoEXT;
  92213. static const bool allowDuplicate = false;
  92214. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainPresentFenceInfoEXT;
  92215. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  92216. VULKAN_HPP_CONSTEXPR SwapchainPresentFenceInfoEXT( uint32_t swapchainCount_ = {},
  92217. const VULKAN_HPP_NAMESPACE::Fence * pFences_ = {},
  92218. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  92219. : pNext( pNext_ )
  92220. , swapchainCount( swapchainCount_ )
  92221. , pFences( pFences_ )
  92222. {
  92223. }
  92224. VULKAN_HPP_CONSTEXPR SwapchainPresentFenceInfoEXT( SwapchainPresentFenceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92225. SwapchainPresentFenceInfoEXT( VkSwapchainPresentFenceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  92226. : SwapchainPresentFenceInfoEXT( *reinterpret_cast<SwapchainPresentFenceInfoEXT const *>( &rhs ) )
  92227. {
  92228. }
  92229. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  92230. SwapchainPresentFenceInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Fence> const & fences_,
  92231. const void * pNext_ = nullptr )
  92232. : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( fences_.size() ) ), pFences( fences_.data() )
  92233. {
  92234. }
  92235. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  92236. SwapchainPresentFenceInfoEXT & operator=( SwapchainPresentFenceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92237. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  92238. SwapchainPresentFenceInfoEXT & operator=( VkSwapchainPresentFenceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  92239. {
  92240. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT const *>( &rhs );
  92241. return *this;
  92242. }
  92243. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  92244. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentFenceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  92245. {
  92246. pNext = pNext_;
  92247. return *this;
  92248. }
  92249. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentFenceInfoEXT & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  92250. {
  92251. swapchainCount = swapchainCount_;
  92252. return *this;
  92253. }
  92254. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentFenceInfoEXT & setPFences( const VULKAN_HPP_NAMESPACE::Fence * pFences_ ) VULKAN_HPP_NOEXCEPT
  92255. {
  92256. pFences = pFences_;
  92257. return *this;
  92258. }
  92259. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  92260. SwapchainPresentFenceInfoEXT &
  92261. setFences( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::Fence> const & fences_ ) VULKAN_HPP_NOEXCEPT
  92262. {
  92263. swapchainCount = static_cast<uint32_t>( fences_.size() );
  92264. pFences = fences_.data();
  92265. return *this;
  92266. }
  92267. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  92268. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  92269. operator VkSwapchainPresentFenceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  92270. {
  92271. return *reinterpret_cast<const VkSwapchainPresentFenceInfoEXT *>( this );
  92272. }
  92273. operator VkSwapchainPresentFenceInfoEXT &() VULKAN_HPP_NOEXCEPT
  92274. {
  92275. return *reinterpret_cast<VkSwapchainPresentFenceInfoEXT *>( this );
  92276. }
  92277. #if defined( VULKAN_HPP_USE_REFLECT )
  92278. # if 14 <= VULKAN_HPP_CPP_VERSION
  92279. auto
  92280. # else
  92281. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::Fence * const &>
  92282. # endif
  92283. reflect() const VULKAN_HPP_NOEXCEPT
  92284. {
  92285. return std::tie( sType, pNext, swapchainCount, pFences );
  92286. }
  92287. #endif
  92288. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  92289. auto operator<=>( SwapchainPresentFenceInfoEXT const & ) const = default;
  92290. #else
  92291. bool operator==( SwapchainPresentFenceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  92292. {
  92293. # if defined( VULKAN_HPP_USE_REFLECT )
  92294. return this->reflect() == rhs.reflect();
  92295. # else
  92296. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && ( pFences == rhs.pFences );
  92297. # endif
  92298. }
  92299. bool operator!=( SwapchainPresentFenceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  92300. {
  92301. return !operator==( rhs );
  92302. }
  92303. #endif
  92304. public:
  92305. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainPresentFenceInfoEXT;
  92306. const void * pNext = {};
  92307. uint32_t swapchainCount = {};
  92308. const VULKAN_HPP_NAMESPACE::Fence * pFences = {};
  92309. };
  92310. template <>
  92311. struct CppType<StructureType, StructureType::eSwapchainPresentFenceInfoEXT>
  92312. {
  92313. using Type = SwapchainPresentFenceInfoEXT;
  92314. };
  92315. struct SwapchainPresentModeInfoEXT
  92316. {
  92317. using NativeType = VkSwapchainPresentModeInfoEXT;
  92318. static const bool allowDuplicate = false;
  92319. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainPresentModeInfoEXT;
  92320. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  92321. VULKAN_HPP_CONSTEXPR SwapchainPresentModeInfoEXT( uint32_t swapchainCount_ = {},
  92322. const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {},
  92323. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  92324. : pNext( pNext_ )
  92325. , swapchainCount( swapchainCount_ )
  92326. , pPresentModes( pPresentModes_ )
  92327. {
  92328. }
  92329. VULKAN_HPP_CONSTEXPR SwapchainPresentModeInfoEXT( SwapchainPresentModeInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92330. SwapchainPresentModeInfoEXT( VkSwapchainPresentModeInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  92331. : SwapchainPresentModeInfoEXT( *reinterpret_cast<SwapchainPresentModeInfoEXT const *>( &rhs ) )
  92332. {
  92333. }
  92334. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  92335. SwapchainPresentModeInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_,
  92336. const void * pNext_ = nullptr )
  92337. : pNext( pNext_ ), swapchainCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() )
  92338. {
  92339. }
  92340. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  92341. SwapchainPresentModeInfoEXT & operator=( SwapchainPresentModeInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92342. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  92343. SwapchainPresentModeInfoEXT & operator=( VkSwapchainPresentModeInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  92344. {
  92345. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT const *>( &rhs );
  92346. return *this;
  92347. }
  92348. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  92349. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModeInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  92350. {
  92351. pNext = pNext_;
  92352. return *this;
  92353. }
  92354. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModeInfoEXT & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT
  92355. {
  92356. swapchainCount = swapchainCount_;
  92357. return *this;
  92358. }
  92359. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModeInfoEXT & setPPresentModes( const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT
  92360. {
  92361. pPresentModes = pPresentModes_;
  92362. return *this;
  92363. }
  92364. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  92365. SwapchainPresentModeInfoEXT &
  92366. setPresentModes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_ ) VULKAN_HPP_NOEXCEPT
  92367. {
  92368. swapchainCount = static_cast<uint32_t>( presentModes_.size() );
  92369. pPresentModes = presentModes_.data();
  92370. return *this;
  92371. }
  92372. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  92373. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  92374. operator VkSwapchainPresentModeInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  92375. {
  92376. return *reinterpret_cast<const VkSwapchainPresentModeInfoEXT *>( this );
  92377. }
  92378. operator VkSwapchainPresentModeInfoEXT &() VULKAN_HPP_NOEXCEPT
  92379. {
  92380. return *reinterpret_cast<VkSwapchainPresentModeInfoEXT *>( this );
  92381. }
  92382. #if defined( VULKAN_HPP_USE_REFLECT )
  92383. # if 14 <= VULKAN_HPP_CPP_VERSION
  92384. auto
  92385. # else
  92386. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
  92387. # endif
  92388. reflect() const VULKAN_HPP_NOEXCEPT
  92389. {
  92390. return std::tie( sType, pNext, swapchainCount, pPresentModes );
  92391. }
  92392. #endif
  92393. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  92394. auto operator<=>( SwapchainPresentModeInfoEXT const & ) const = default;
  92395. #else
  92396. bool operator==( SwapchainPresentModeInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  92397. {
  92398. # if defined( VULKAN_HPP_USE_REFLECT )
  92399. return this->reflect() == rhs.reflect();
  92400. # else
  92401. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && ( pPresentModes == rhs.pPresentModes );
  92402. # endif
  92403. }
  92404. bool operator!=( SwapchainPresentModeInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  92405. {
  92406. return !operator==( rhs );
  92407. }
  92408. #endif
  92409. public:
  92410. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainPresentModeInfoEXT;
  92411. const void * pNext = {};
  92412. uint32_t swapchainCount = {};
  92413. const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes = {};
  92414. };
  92415. template <>
  92416. struct CppType<StructureType, StructureType::eSwapchainPresentModeInfoEXT>
  92417. {
  92418. using Type = SwapchainPresentModeInfoEXT;
  92419. };
  92420. struct SwapchainPresentModesCreateInfoEXT
  92421. {
  92422. using NativeType = VkSwapchainPresentModesCreateInfoEXT;
  92423. static const bool allowDuplicate = false;
  92424. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainPresentModesCreateInfoEXT;
  92425. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  92426. VULKAN_HPP_CONSTEXPR SwapchainPresentModesCreateInfoEXT( uint32_t presentModeCount_ = {},
  92427. const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ = {},
  92428. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  92429. : pNext( pNext_ )
  92430. , presentModeCount( presentModeCount_ )
  92431. , pPresentModes( pPresentModes_ )
  92432. {
  92433. }
  92434. VULKAN_HPP_CONSTEXPR SwapchainPresentModesCreateInfoEXT( SwapchainPresentModesCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92435. SwapchainPresentModesCreateInfoEXT( VkSwapchainPresentModesCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  92436. : SwapchainPresentModesCreateInfoEXT( *reinterpret_cast<SwapchainPresentModesCreateInfoEXT const *>( &rhs ) )
  92437. {
  92438. }
  92439. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  92440. SwapchainPresentModesCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_,
  92441. const void * pNext_ = nullptr )
  92442. : pNext( pNext_ ), presentModeCount( static_cast<uint32_t>( presentModes_.size() ) ), pPresentModes( presentModes_.data() )
  92443. {
  92444. }
  92445. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  92446. SwapchainPresentModesCreateInfoEXT & operator=( SwapchainPresentModesCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92447. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  92448. SwapchainPresentModesCreateInfoEXT & operator=( VkSwapchainPresentModesCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  92449. {
  92450. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT const *>( &rhs );
  92451. return *this;
  92452. }
  92453. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  92454. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModesCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  92455. {
  92456. pNext = pNext_;
  92457. return *this;
  92458. }
  92459. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModesCreateInfoEXT & setPresentModeCount( uint32_t presentModeCount_ ) VULKAN_HPP_NOEXCEPT
  92460. {
  92461. presentModeCount = presentModeCount_;
  92462. return *this;
  92463. }
  92464. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentModesCreateInfoEXT &
  92465. setPPresentModes( const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes_ ) VULKAN_HPP_NOEXCEPT
  92466. {
  92467. pPresentModes = pPresentModes_;
  92468. return *this;
  92469. }
  92470. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  92471. SwapchainPresentModesCreateInfoEXT &
  92472. setPresentModes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PresentModeKHR> const & presentModes_ ) VULKAN_HPP_NOEXCEPT
  92473. {
  92474. presentModeCount = static_cast<uint32_t>( presentModes_.size() );
  92475. pPresentModes = presentModes_.data();
  92476. return *this;
  92477. }
  92478. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  92479. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  92480. operator VkSwapchainPresentModesCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  92481. {
  92482. return *reinterpret_cast<const VkSwapchainPresentModesCreateInfoEXT *>( this );
  92483. }
  92484. operator VkSwapchainPresentModesCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  92485. {
  92486. return *reinterpret_cast<VkSwapchainPresentModesCreateInfoEXT *>( this );
  92487. }
  92488. #if defined( VULKAN_HPP_USE_REFLECT )
  92489. # if 14 <= VULKAN_HPP_CPP_VERSION
  92490. auto
  92491. # else
  92492. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::PresentModeKHR * const &>
  92493. # endif
  92494. reflect() const VULKAN_HPP_NOEXCEPT
  92495. {
  92496. return std::tie( sType, pNext, presentModeCount, pPresentModes );
  92497. }
  92498. #endif
  92499. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  92500. auto operator<=>( SwapchainPresentModesCreateInfoEXT const & ) const = default;
  92501. #else
  92502. bool operator==( SwapchainPresentModesCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  92503. {
  92504. # if defined( VULKAN_HPP_USE_REFLECT )
  92505. return this->reflect() == rhs.reflect();
  92506. # else
  92507. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentModeCount == rhs.presentModeCount ) && ( pPresentModes == rhs.pPresentModes );
  92508. # endif
  92509. }
  92510. bool operator!=( SwapchainPresentModesCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  92511. {
  92512. return !operator==( rhs );
  92513. }
  92514. #endif
  92515. public:
  92516. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainPresentModesCreateInfoEXT;
  92517. const void * pNext = {};
  92518. uint32_t presentModeCount = {};
  92519. const VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes = {};
  92520. };
  92521. template <>
  92522. struct CppType<StructureType, StructureType::eSwapchainPresentModesCreateInfoEXT>
  92523. {
  92524. using Type = SwapchainPresentModesCreateInfoEXT;
  92525. };
  92526. struct SwapchainPresentScalingCreateInfoEXT
  92527. {
  92528. using NativeType = VkSwapchainPresentScalingCreateInfoEXT;
  92529. static const bool allowDuplicate = false;
  92530. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainPresentScalingCreateInfoEXT;
  92531. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  92532. VULKAN_HPP_CONSTEXPR SwapchainPresentScalingCreateInfoEXT( VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT scalingBehavior_ = {},
  92533. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityX_ = {},
  92534. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityY_ = {},
  92535. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  92536. : pNext( pNext_ )
  92537. , scalingBehavior( scalingBehavior_ )
  92538. , presentGravityX( presentGravityX_ )
  92539. , presentGravityY( presentGravityY_ )
  92540. {
  92541. }
  92542. VULKAN_HPP_CONSTEXPR SwapchainPresentScalingCreateInfoEXT( SwapchainPresentScalingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92543. SwapchainPresentScalingCreateInfoEXT( VkSwapchainPresentScalingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  92544. : SwapchainPresentScalingCreateInfoEXT( *reinterpret_cast<SwapchainPresentScalingCreateInfoEXT const *>( &rhs ) )
  92545. {
  92546. }
  92547. SwapchainPresentScalingCreateInfoEXT & operator=( SwapchainPresentScalingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92548. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  92549. SwapchainPresentScalingCreateInfoEXT & operator=( VkSwapchainPresentScalingCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  92550. {
  92551. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT const *>( &rhs );
  92552. return *this;
  92553. }
  92554. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  92555. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentScalingCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  92556. {
  92557. pNext = pNext_;
  92558. return *this;
  92559. }
  92560. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentScalingCreateInfoEXT &
  92561. setScalingBehavior( VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT scalingBehavior_ ) VULKAN_HPP_NOEXCEPT
  92562. {
  92563. scalingBehavior = scalingBehavior_;
  92564. return *this;
  92565. }
  92566. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentScalingCreateInfoEXT &
  92567. setPresentGravityX( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityX_ ) VULKAN_HPP_NOEXCEPT
  92568. {
  92569. presentGravityX = presentGravityX_;
  92570. return *this;
  92571. }
  92572. VULKAN_HPP_CONSTEXPR_14 SwapchainPresentScalingCreateInfoEXT &
  92573. setPresentGravityY( VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityY_ ) VULKAN_HPP_NOEXCEPT
  92574. {
  92575. presentGravityY = presentGravityY_;
  92576. return *this;
  92577. }
  92578. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  92579. operator VkSwapchainPresentScalingCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  92580. {
  92581. return *reinterpret_cast<const VkSwapchainPresentScalingCreateInfoEXT *>( this );
  92582. }
  92583. operator VkSwapchainPresentScalingCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  92584. {
  92585. return *reinterpret_cast<VkSwapchainPresentScalingCreateInfoEXT *>( this );
  92586. }
  92587. #if defined( VULKAN_HPP_USE_REFLECT )
  92588. # if 14 <= VULKAN_HPP_CPP_VERSION
  92589. auto
  92590. # else
  92591. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  92592. const void * const &,
  92593. VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT const &,
  92594. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT const &,
  92595. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT const &>
  92596. # endif
  92597. reflect() const VULKAN_HPP_NOEXCEPT
  92598. {
  92599. return std::tie( sType, pNext, scalingBehavior, presentGravityX, presentGravityY );
  92600. }
  92601. #endif
  92602. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  92603. auto operator<=>( SwapchainPresentScalingCreateInfoEXT const & ) const = default;
  92604. #else
  92605. bool operator==( SwapchainPresentScalingCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  92606. {
  92607. # if defined( VULKAN_HPP_USE_REFLECT )
  92608. return this->reflect() == rhs.reflect();
  92609. # else
  92610. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( scalingBehavior == rhs.scalingBehavior ) && ( presentGravityX == rhs.presentGravityX ) &&
  92611. ( presentGravityY == rhs.presentGravityY );
  92612. # endif
  92613. }
  92614. bool operator!=( SwapchainPresentScalingCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  92615. {
  92616. return !operator==( rhs );
  92617. }
  92618. #endif
  92619. public:
  92620. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainPresentScalingCreateInfoEXT;
  92621. const void * pNext = {};
  92622. VULKAN_HPP_NAMESPACE::PresentScalingFlagsEXT scalingBehavior = {};
  92623. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityX = {};
  92624. VULKAN_HPP_NAMESPACE::PresentGravityFlagsEXT presentGravityY = {};
  92625. };
  92626. template <>
  92627. struct CppType<StructureType, StructureType::eSwapchainPresentScalingCreateInfoEXT>
  92628. {
  92629. using Type = SwapchainPresentScalingCreateInfoEXT;
  92630. };
  92631. struct TextureLODGatherFormatPropertiesAMD
  92632. {
  92633. using NativeType = VkTextureLODGatherFormatPropertiesAMD;
  92634. static const bool allowDuplicate = false;
  92635. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTextureLodGatherFormatPropertiesAMD;
  92636. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  92637. VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {},
  92638. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  92639. : pNext( pNext_ )
  92640. , supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ )
  92641. {
  92642. }
  92643. VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92644. TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  92645. : TextureLODGatherFormatPropertiesAMD( *reinterpret_cast<TextureLODGatherFormatPropertiesAMD const *>( &rhs ) )
  92646. {
  92647. }
  92648. TextureLODGatherFormatPropertiesAMD & operator=( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92649. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  92650. TextureLODGatherFormatPropertiesAMD & operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT
  92651. {
  92652. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const *>( &rhs );
  92653. return *this;
  92654. }
  92655. operator VkTextureLODGatherFormatPropertiesAMD const &() const VULKAN_HPP_NOEXCEPT
  92656. {
  92657. return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD *>( this );
  92658. }
  92659. operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT
  92660. {
  92661. return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD *>( this );
  92662. }
  92663. #if defined( VULKAN_HPP_USE_REFLECT )
  92664. # if 14 <= VULKAN_HPP_CPP_VERSION
  92665. auto
  92666. # else
  92667. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  92668. # endif
  92669. reflect() const VULKAN_HPP_NOEXCEPT
  92670. {
  92671. return std::tie( sType, pNext, supportsTextureGatherLODBiasAMD );
  92672. }
  92673. #endif
  92674. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  92675. auto operator<=>( TextureLODGatherFormatPropertiesAMD const & ) const = default;
  92676. #else
  92677. bool operator==( TextureLODGatherFormatPropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  92678. {
  92679. # if defined( VULKAN_HPP_USE_REFLECT )
  92680. return this->reflect() == rhs.reflect();
  92681. # else
  92682. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD );
  92683. # endif
  92684. }
  92685. bool operator!=( TextureLODGatherFormatPropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT
  92686. {
  92687. return !operator==( rhs );
  92688. }
  92689. #endif
  92690. public:
  92691. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD;
  92692. void * pNext = {};
  92693. VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {};
  92694. };
  92695. template <>
  92696. struct CppType<StructureType, StructureType::eTextureLodGatherFormatPropertiesAMD>
  92697. {
  92698. using Type = TextureLODGatherFormatPropertiesAMD;
  92699. };
  92700. struct TilePropertiesQCOM
  92701. {
  92702. using NativeType = VkTilePropertiesQCOM;
  92703. static const bool allowDuplicate = false;
  92704. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTilePropertiesQCOM;
  92705. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  92706. VULKAN_HPP_CONSTEXPR TilePropertiesQCOM( VULKAN_HPP_NAMESPACE::Extent3D tileSize_ = {},
  92707. VULKAN_HPP_NAMESPACE::Extent2D apronSize_ = {},
  92708. VULKAN_HPP_NAMESPACE::Offset2D origin_ = {},
  92709. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  92710. : pNext( pNext_ )
  92711. , tileSize( tileSize_ )
  92712. , apronSize( apronSize_ )
  92713. , origin( origin_ )
  92714. {
  92715. }
  92716. VULKAN_HPP_CONSTEXPR TilePropertiesQCOM( TilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92717. TilePropertiesQCOM( VkTilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT : TilePropertiesQCOM( *reinterpret_cast<TilePropertiesQCOM const *>( &rhs ) ) {}
  92718. TilePropertiesQCOM & operator=( TilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92719. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  92720. TilePropertiesQCOM & operator=( VkTilePropertiesQCOM const & rhs ) VULKAN_HPP_NOEXCEPT
  92721. {
  92722. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM const *>( &rhs );
  92723. return *this;
  92724. }
  92725. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  92726. VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  92727. {
  92728. pNext = pNext_;
  92729. return *this;
  92730. }
  92731. VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setTileSize( VULKAN_HPP_NAMESPACE::Extent3D const & tileSize_ ) VULKAN_HPP_NOEXCEPT
  92732. {
  92733. tileSize = tileSize_;
  92734. return *this;
  92735. }
  92736. VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setApronSize( VULKAN_HPP_NAMESPACE::Extent2D const & apronSize_ ) VULKAN_HPP_NOEXCEPT
  92737. {
  92738. apronSize = apronSize_;
  92739. return *this;
  92740. }
  92741. VULKAN_HPP_CONSTEXPR_14 TilePropertiesQCOM & setOrigin( VULKAN_HPP_NAMESPACE::Offset2D const & origin_ ) VULKAN_HPP_NOEXCEPT
  92742. {
  92743. origin = origin_;
  92744. return *this;
  92745. }
  92746. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  92747. operator VkTilePropertiesQCOM const &() const VULKAN_HPP_NOEXCEPT
  92748. {
  92749. return *reinterpret_cast<const VkTilePropertiesQCOM *>( this );
  92750. }
  92751. operator VkTilePropertiesQCOM &() VULKAN_HPP_NOEXCEPT
  92752. {
  92753. return *reinterpret_cast<VkTilePropertiesQCOM *>( this );
  92754. }
  92755. #if defined( VULKAN_HPP_USE_REFLECT )
  92756. # if 14 <= VULKAN_HPP_CPP_VERSION
  92757. auto
  92758. # else
  92759. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  92760. void * const &,
  92761. VULKAN_HPP_NAMESPACE::Extent3D const &,
  92762. VULKAN_HPP_NAMESPACE::Extent2D const &,
  92763. VULKAN_HPP_NAMESPACE::Offset2D const &>
  92764. # endif
  92765. reflect() const VULKAN_HPP_NOEXCEPT
  92766. {
  92767. return std::tie( sType, pNext, tileSize, apronSize, origin );
  92768. }
  92769. #endif
  92770. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  92771. auto operator<=>( TilePropertiesQCOM const & ) const = default;
  92772. #else
  92773. bool operator==( TilePropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  92774. {
  92775. # if defined( VULKAN_HPP_USE_REFLECT )
  92776. return this->reflect() == rhs.reflect();
  92777. # else
  92778. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( tileSize == rhs.tileSize ) && ( apronSize == rhs.apronSize ) && ( origin == rhs.origin );
  92779. # endif
  92780. }
  92781. bool operator!=( TilePropertiesQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT
  92782. {
  92783. return !operator==( rhs );
  92784. }
  92785. #endif
  92786. public:
  92787. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTilePropertiesQCOM;
  92788. void * pNext = {};
  92789. VULKAN_HPP_NAMESPACE::Extent3D tileSize = {};
  92790. VULKAN_HPP_NAMESPACE::Extent2D apronSize = {};
  92791. VULKAN_HPP_NAMESPACE::Offset2D origin = {};
  92792. };
  92793. template <>
  92794. struct CppType<StructureType, StructureType::eTilePropertiesQCOM>
  92795. {
  92796. using Type = TilePropertiesQCOM;
  92797. };
  92798. struct TimelineSemaphoreSubmitInfo
  92799. {
  92800. using NativeType = VkTimelineSemaphoreSubmitInfo;
  92801. static const bool allowDuplicate = false;
  92802. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTimelineSemaphoreSubmitInfo;
  92803. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  92804. VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( uint32_t waitSemaphoreValueCount_ = {},
  92805. const uint64_t * pWaitSemaphoreValues_ = {},
  92806. uint32_t signalSemaphoreValueCount_ = {},
  92807. const uint64_t * pSignalSemaphoreValues_ = {},
  92808. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  92809. : pNext( pNext_ )
  92810. , waitSemaphoreValueCount( waitSemaphoreValueCount_ )
  92811. , pWaitSemaphoreValues( pWaitSemaphoreValues_ )
  92812. , signalSemaphoreValueCount( signalSemaphoreValueCount_ )
  92813. , pSignalSemaphoreValues( pSignalSemaphoreValues_ )
  92814. {
  92815. }
  92816. VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92817. TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  92818. : TimelineSemaphoreSubmitInfo( *reinterpret_cast<TimelineSemaphoreSubmitInfo const *>( &rhs ) )
  92819. {
  92820. }
  92821. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  92822. TimelineSemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_,
  92823. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ = {},
  92824. const void * pNext_ = nullptr )
  92825. : pNext( pNext_ )
  92826. , waitSemaphoreValueCount( static_cast<uint32_t>( waitSemaphoreValues_.size() ) )
  92827. , pWaitSemaphoreValues( waitSemaphoreValues_.data() )
  92828. , signalSemaphoreValueCount( static_cast<uint32_t>( signalSemaphoreValues_.size() ) )
  92829. , pSignalSemaphoreValues( signalSemaphoreValues_.data() )
  92830. {
  92831. }
  92832. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  92833. TimelineSemaphoreSubmitInfo & operator=( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92834. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  92835. TimelineSemaphoreSubmitInfo & operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT
  92836. {
  92837. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo const *>( &rhs );
  92838. return *this;
  92839. }
  92840. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  92841. VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  92842. {
  92843. pNext = pNext_;
  92844. return *this;
  92845. }
  92846. VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
  92847. {
  92848. waitSemaphoreValueCount = waitSemaphoreValueCount_;
  92849. return *this;
  92850. }
  92851. VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t * pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  92852. {
  92853. pWaitSemaphoreValues = pWaitSemaphoreValues_;
  92854. return *this;
  92855. }
  92856. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  92857. TimelineSemaphoreSubmitInfo &
  92858. setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  92859. {
  92860. waitSemaphoreValueCount = static_cast<uint32_t>( waitSemaphoreValues_.size() );
  92861. pWaitSemaphoreValues = waitSemaphoreValues_.data();
  92862. return *this;
  92863. }
  92864. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  92865. VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT
  92866. {
  92867. signalSemaphoreValueCount = signalSemaphoreValueCount_;
  92868. return *this;
  92869. }
  92870. VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & setPSignalSemaphoreValues( const uint64_t * pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  92871. {
  92872. pSignalSemaphoreValues = pSignalSemaphoreValues_;
  92873. return *this;
  92874. }
  92875. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  92876. TimelineSemaphoreSubmitInfo &
  92877. setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT
  92878. {
  92879. signalSemaphoreValueCount = static_cast<uint32_t>( signalSemaphoreValues_.size() );
  92880. pSignalSemaphoreValues = signalSemaphoreValues_.data();
  92881. return *this;
  92882. }
  92883. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  92884. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  92885. operator VkTimelineSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT
  92886. {
  92887. return *reinterpret_cast<const VkTimelineSemaphoreSubmitInfo *>( this );
  92888. }
  92889. operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT
  92890. {
  92891. return *reinterpret_cast<VkTimelineSemaphoreSubmitInfo *>( this );
  92892. }
  92893. #if defined( VULKAN_HPP_USE_REFLECT )
  92894. # if 14 <= VULKAN_HPP_CPP_VERSION
  92895. auto
  92896. # else
  92897. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  92898. const void * const &,
  92899. uint32_t const &,
  92900. const uint64_t * const &,
  92901. uint32_t const &,
  92902. const uint64_t * const &>
  92903. # endif
  92904. reflect() const VULKAN_HPP_NOEXCEPT
  92905. {
  92906. return std::tie( sType, pNext, waitSemaphoreValueCount, pWaitSemaphoreValues, signalSemaphoreValueCount, pSignalSemaphoreValues );
  92907. }
  92908. #endif
  92909. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  92910. auto operator<=>( TimelineSemaphoreSubmitInfo const & ) const = default;
  92911. #else
  92912. bool operator==( TimelineSemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  92913. {
  92914. # if defined( VULKAN_HPP_USE_REFLECT )
  92915. return this->reflect() == rhs.reflect();
  92916. # else
  92917. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount ) &&
  92918. ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) && ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount ) &&
  92919. ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
  92920. # endif
  92921. }
  92922. bool operator!=( TimelineSemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT
  92923. {
  92924. return !operator==( rhs );
  92925. }
  92926. #endif
  92927. public:
  92928. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo;
  92929. const void * pNext = {};
  92930. uint32_t waitSemaphoreValueCount = {};
  92931. const uint64_t * pWaitSemaphoreValues = {};
  92932. uint32_t signalSemaphoreValueCount = {};
  92933. const uint64_t * pSignalSemaphoreValues = {};
  92934. };
  92935. template <>
  92936. struct CppType<StructureType, StructureType::eTimelineSemaphoreSubmitInfo>
  92937. {
  92938. using Type = TimelineSemaphoreSubmitInfo;
  92939. };
  92940. using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
  92941. struct TraceRaysIndirectCommand2KHR
  92942. {
  92943. using NativeType = VkTraceRaysIndirectCommand2KHR;
  92944. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  92945. VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommand2KHR( VULKAN_HPP_NAMESPACE::DeviceAddress raygenShaderRecordAddress_ = {},
  92946. VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderRecordSize_ = {},
  92947. VULKAN_HPP_NAMESPACE::DeviceAddress missShaderBindingTableAddress_ = {},
  92948. VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableSize_ = {},
  92949. VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableStride_ = {},
  92950. VULKAN_HPP_NAMESPACE::DeviceAddress hitShaderBindingTableAddress_ = {},
  92951. VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableSize_ = {},
  92952. VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableStride_ = {},
  92953. VULKAN_HPP_NAMESPACE::DeviceAddress callableShaderBindingTableAddress_ = {},
  92954. VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableSize_ = {},
  92955. VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableStride_ = {},
  92956. uint32_t width_ = {},
  92957. uint32_t height_ = {},
  92958. uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT
  92959. : raygenShaderRecordAddress( raygenShaderRecordAddress_ )
  92960. , raygenShaderRecordSize( raygenShaderRecordSize_ )
  92961. , missShaderBindingTableAddress( missShaderBindingTableAddress_ )
  92962. , missShaderBindingTableSize( missShaderBindingTableSize_ )
  92963. , missShaderBindingTableStride( missShaderBindingTableStride_ )
  92964. , hitShaderBindingTableAddress( hitShaderBindingTableAddress_ )
  92965. , hitShaderBindingTableSize( hitShaderBindingTableSize_ )
  92966. , hitShaderBindingTableStride( hitShaderBindingTableStride_ )
  92967. , callableShaderBindingTableAddress( callableShaderBindingTableAddress_ )
  92968. , callableShaderBindingTableSize( callableShaderBindingTableSize_ )
  92969. , callableShaderBindingTableStride( callableShaderBindingTableStride_ )
  92970. , width( width_ )
  92971. , height( height_ )
  92972. , depth( depth_ )
  92973. {
  92974. }
  92975. VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommand2KHR( TraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92976. TraceRaysIndirectCommand2KHR( VkTraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  92977. : TraceRaysIndirectCommand2KHR( *reinterpret_cast<TraceRaysIndirectCommand2KHR const *>( &rhs ) )
  92978. {
  92979. }
  92980. TraceRaysIndirectCommand2KHR & operator=( TraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  92981. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  92982. TraceRaysIndirectCommand2KHR & operator=( VkTraceRaysIndirectCommand2KHR const & rhs ) VULKAN_HPP_NOEXCEPT
  92983. {
  92984. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR const *>( &rhs );
  92985. return *this;
  92986. }
  92987. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  92988. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  92989. setRaygenShaderRecordAddress( VULKAN_HPP_NAMESPACE::DeviceAddress raygenShaderRecordAddress_ ) VULKAN_HPP_NOEXCEPT
  92990. {
  92991. raygenShaderRecordAddress = raygenShaderRecordAddress_;
  92992. return *this;
  92993. }
  92994. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  92995. setRaygenShaderRecordSize( VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderRecordSize_ ) VULKAN_HPP_NOEXCEPT
  92996. {
  92997. raygenShaderRecordSize = raygenShaderRecordSize_;
  92998. return *this;
  92999. }
  93000. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  93001. setMissShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress missShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
  93002. {
  93003. missShaderBindingTableAddress = missShaderBindingTableAddress_;
  93004. return *this;
  93005. }
  93006. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  93007. setMissShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
  93008. {
  93009. missShaderBindingTableSize = missShaderBindingTableSize_;
  93010. return *this;
  93011. }
  93012. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  93013. setMissShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
  93014. {
  93015. missShaderBindingTableStride = missShaderBindingTableStride_;
  93016. return *this;
  93017. }
  93018. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  93019. setHitShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress hitShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
  93020. {
  93021. hitShaderBindingTableAddress = hitShaderBindingTableAddress_;
  93022. return *this;
  93023. }
  93024. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  93025. setHitShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
  93026. {
  93027. hitShaderBindingTableSize = hitShaderBindingTableSize_;
  93028. return *this;
  93029. }
  93030. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  93031. setHitShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
  93032. {
  93033. hitShaderBindingTableStride = hitShaderBindingTableStride_;
  93034. return *this;
  93035. }
  93036. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  93037. setCallableShaderBindingTableAddress( VULKAN_HPP_NAMESPACE::DeviceAddress callableShaderBindingTableAddress_ ) VULKAN_HPP_NOEXCEPT
  93038. {
  93039. callableShaderBindingTableAddress = callableShaderBindingTableAddress_;
  93040. return *this;
  93041. }
  93042. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  93043. setCallableShaderBindingTableSize( VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableSize_ ) VULKAN_HPP_NOEXCEPT
  93044. {
  93045. callableShaderBindingTableSize = callableShaderBindingTableSize_;
  93046. return *this;
  93047. }
  93048. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR &
  93049. setCallableShaderBindingTableStride( VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableStride_ ) VULKAN_HPP_NOEXCEPT
  93050. {
  93051. callableShaderBindingTableStride = callableShaderBindingTableStride_;
  93052. return *this;
  93053. }
  93054. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  93055. {
  93056. width = width_;
  93057. return *this;
  93058. }
  93059. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  93060. {
  93061. height = height_;
  93062. return *this;
  93063. }
  93064. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommand2KHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
  93065. {
  93066. depth = depth_;
  93067. return *this;
  93068. }
  93069. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  93070. operator VkTraceRaysIndirectCommand2KHR const &() const VULKAN_HPP_NOEXCEPT
  93071. {
  93072. return *reinterpret_cast<const VkTraceRaysIndirectCommand2KHR *>( this );
  93073. }
  93074. operator VkTraceRaysIndirectCommand2KHR &() VULKAN_HPP_NOEXCEPT
  93075. {
  93076. return *reinterpret_cast<VkTraceRaysIndirectCommand2KHR *>( this );
  93077. }
  93078. #if defined( VULKAN_HPP_USE_REFLECT )
  93079. # if 14 <= VULKAN_HPP_CPP_VERSION
  93080. auto
  93081. # else
  93082. std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  93083. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  93084. VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  93085. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  93086. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  93087. VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  93088. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  93089. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  93090. VULKAN_HPP_NAMESPACE::DeviceAddress const &,
  93091. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  93092. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  93093. uint32_t const &,
  93094. uint32_t const &,
  93095. uint32_t const &>
  93096. # endif
  93097. reflect() const VULKAN_HPP_NOEXCEPT
  93098. {
  93099. return std::tie( raygenShaderRecordAddress,
  93100. raygenShaderRecordSize,
  93101. missShaderBindingTableAddress,
  93102. missShaderBindingTableSize,
  93103. missShaderBindingTableStride,
  93104. hitShaderBindingTableAddress,
  93105. hitShaderBindingTableSize,
  93106. hitShaderBindingTableStride,
  93107. callableShaderBindingTableAddress,
  93108. callableShaderBindingTableSize,
  93109. callableShaderBindingTableStride,
  93110. width,
  93111. height,
  93112. depth );
  93113. }
  93114. #endif
  93115. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  93116. auto operator<=>( TraceRaysIndirectCommand2KHR const & ) const = default;
  93117. #else
  93118. bool operator==( TraceRaysIndirectCommand2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  93119. {
  93120. # if defined( VULKAN_HPP_USE_REFLECT )
  93121. return this->reflect() == rhs.reflect();
  93122. # else
  93123. return ( raygenShaderRecordAddress == rhs.raygenShaderRecordAddress ) && ( raygenShaderRecordSize == rhs.raygenShaderRecordSize ) &&
  93124. ( missShaderBindingTableAddress == rhs.missShaderBindingTableAddress ) && ( missShaderBindingTableSize == rhs.missShaderBindingTableSize ) &&
  93125. ( missShaderBindingTableStride == rhs.missShaderBindingTableStride ) && ( hitShaderBindingTableAddress == rhs.hitShaderBindingTableAddress ) &&
  93126. ( hitShaderBindingTableSize == rhs.hitShaderBindingTableSize ) && ( hitShaderBindingTableStride == rhs.hitShaderBindingTableStride ) &&
  93127. ( callableShaderBindingTableAddress == rhs.callableShaderBindingTableAddress ) &&
  93128. ( callableShaderBindingTableSize == rhs.callableShaderBindingTableSize ) &&
  93129. ( callableShaderBindingTableStride == rhs.callableShaderBindingTableStride ) && ( width == rhs.width ) && ( height == rhs.height ) &&
  93130. ( depth == rhs.depth );
  93131. # endif
  93132. }
  93133. bool operator!=( TraceRaysIndirectCommand2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  93134. {
  93135. return !operator==( rhs );
  93136. }
  93137. #endif
  93138. public:
  93139. VULKAN_HPP_NAMESPACE::DeviceAddress raygenShaderRecordAddress = {};
  93140. VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderRecordSize = {};
  93141. VULKAN_HPP_NAMESPACE::DeviceAddress missShaderBindingTableAddress = {};
  93142. VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableSize = {};
  93143. VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingTableStride = {};
  93144. VULKAN_HPP_NAMESPACE::DeviceAddress hitShaderBindingTableAddress = {};
  93145. VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableSize = {};
  93146. VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingTableStride = {};
  93147. VULKAN_HPP_NAMESPACE::DeviceAddress callableShaderBindingTableAddress = {};
  93148. VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableSize = {};
  93149. VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingTableStride = {};
  93150. uint32_t width = {};
  93151. uint32_t height = {};
  93152. uint32_t depth = {};
  93153. };
  93154. struct TraceRaysIndirectCommandKHR
  93155. {
  93156. using NativeType = VkTraceRaysIndirectCommandKHR;
  93157. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  93158. VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT
  93159. : width( width_ )
  93160. , height( height_ )
  93161. , depth( depth_ )
  93162. {
  93163. }
  93164. VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93165. TraceRaysIndirectCommandKHR( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  93166. : TraceRaysIndirectCommandKHR( *reinterpret_cast<TraceRaysIndirectCommandKHR const *>( &rhs ) )
  93167. {
  93168. }
  93169. explicit TraceRaysIndirectCommandKHR( Extent2D const & extent2D, uint32_t depth_ = {} )
  93170. : width( extent2D.width ), height( extent2D.height ), depth( depth_ )
  93171. {
  93172. }
  93173. TraceRaysIndirectCommandKHR & operator=( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93174. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  93175. TraceRaysIndirectCommandKHR & operator=( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  93176. {
  93177. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR const *>( &rhs );
  93178. return *this;
  93179. }
  93180. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  93181. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT
  93182. {
  93183. width = width_;
  93184. return *this;
  93185. }
  93186. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT
  93187. {
  93188. height = height_;
  93189. return *this;
  93190. }
  93191. VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT
  93192. {
  93193. depth = depth_;
  93194. return *this;
  93195. }
  93196. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  93197. operator VkTraceRaysIndirectCommandKHR const &() const VULKAN_HPP_NOEXCEPT
  93198. {
  93199. return *reinterpret_cast<const VkTraceRaysIndirectCommandKHR *>( this );
  93200. }
  93201. operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT
  93202. {
  93203. return *reinterpret_cast<VkTraceRaysIndirectCommandKHR *>( this );
  93204. }
  93205. #if defined( VULKAN_HPP_USE_REFLECT )
  93206. # if 14 <= VULKAN_HPP_CPP_VERSION
  93207. auto
  93208. # else
  93209. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  93210. # endif
  93211. reflect() const VULKAN_HPP_NOEXCEPT
  93212. {
  93213. return std::tie( width, height, depth );
  93214. }
  93215. #endif
  93216. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  93217. auto operator<=>( TraceRaysIndirectCommandKHR const & ) const = default;
  93218. #else
  93219. bool operator==( TraceRaysIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  93220. {
  93221. # if defined( VULKAN_HPP_USE_REFLECT )
  93222. return this->reflect() == rhs.reflect();
  93223. # else
  93224. return ( width == rhs.width ) && ( height == rhs.height ) && ( depth == rhs.depth );
  93225. # endif
  93226. }
  93227. bool operator!=( TraceRaysIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  93228. {
  93229. return !operator==( rhs );
  93230. }
  93231. #endif
  93232. public:
  93233. uint32_t width = {};
  93234. uint32_t height = {};
  93235. uint32_t depth = {};
  93236. };
  93237. struct ValidationCacheCreateInfoEXT
  93238. {
  93239. using NativeType = VkValidationCacheCreateInfoEXT;
  93240. static const bool allowDuplicate = false;
  93241. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationCacheCreateInfoEXT;
  93242. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  93243. VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {},
  93244. size_t initialDataSize_ = {},
  93245. const void * pInitialData_ = {},
  93246. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  93247. : pNext( pNext_ )
  93248. , flags( flags_ )
  93249. , initialDataSize( initialDataSize_ )
  93250. , pInitialData( pInitialData_ )
  93251. {
  93252. }
  93253. VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93254. ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  93255. : ValidationCacheCreateInfoEXT( *reinterpret_cast<ValidationCacheCreateInfoEXT const *>( &rhs ) )
  93256. {
  93257. }
  93258. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  93259. template <typename T>
  93260. ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_,
  93261. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_,
  93262. const void * pNext_ = nullptr )
  93263. : pNext( pNext_ ), flags( flags_ ), initialDataSize( initialData_.size() * sizeof( T ) ), pInitialData( initialData_.data() )
  93264. {
  93265. }
  93266. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  93267. ValidationCacheCreateInfoEXT & operator=( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93268. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  93269. ValidationCacheCreateInfoEXT & operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  93270. {
  93271. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const *>( &rhs );
  93272. return *this;
  93273. }
  93274. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  93275. VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  93276. {
  93277. pNext = pNext_;
  93278. return *this;
  93279. }
  93280. VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  93281. {
  93282. flags = flags_;
  93283. return *this;
  93284. }
  93285. VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT
  93286. {
  93287. initialDataSize = initialDataSize_;
  93288. return *this;
  93289. }
  93290. VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & setPInitialData( const void * pInitialData_ ) VULKAN_HPP_NOEXCEPT
  93291. {
  93292. pInitialData = pInitialData_;
  93293. return *this;
  93294. }
  93295. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  93296. template <typename T>
  93297. ValidationCacheCreateInfoEXT & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & initialData_ ) VULKAN_HPP_NOEXCEPT
  93298. {
  93299. initialDataSize = initialData_.size() * sizeof( T );
  93300. pInitialData = initialData_.data();
  93301. return *this;
  93302. }
  93303. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  93304. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  93305. operator VkValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  93306. {
  93307. return *reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( this );
  93308. }
  93309. operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  93310. {
  93311. return *reinterpret_cast<VkValidationCacheCreateInfoEXT *>( this );
  93312. }
  93313. #if defined( VULKAN_HPP_USE_REFLECT )
  93314. # if 14 <= VULKAN_HPP_CPP_VERSION
  93315. auto
  93316. # else
  93317. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  93318. const void * const &,
  93319. VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT const &,
  93320. size_t const &,
  93321. const void * const &>
  93322. # endif
  93323. reflect() const VULKAN_HPP_NOEXCEPT
  93324. {
  93325. return std::tie( sType, pNext, flags, initialDataSize, pInitialData );
  93326. }
  93327. #endif
  93328. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  93329. auto operator<=>( ValidationCacheCreateInfoEXT const & ) const = default;
  93330. #else
  93331. bool operator==( ValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  93332. {
  93333. # if defined( VULKAN_HPP_USE_REFLECT )
  93334. return this->reflect() == rhs.reflect();
  93335. # else
  93336. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( initialDataSize == rhs.initialDataSize ) &&
  93337. ( pInitialData == rhs.pInitialData );
  93338. # endif
  93339. }
  93340. bool operator!=( ValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  93341. {
  93342. return !operator==( rhs );
  93343. }
  93344. #endif
  93345. public:
  93346. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT;
  93347. const void * pNext = {};
  93348. VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {};
  93349. size_t initialDataSize = {};
  93350. const void * pInitialData = {};
  93351. };
  93352. template <>
  93353. struct CppType<StructureType, StructureType::eValidationCacheCreateInfoEXT>
  93354. {
  93355. using Type = ValidationCacheCreateInfoEXT;
  93356. };
  93357. struct ValidationFeaturesEXT
  93358. {
  93359. using NativeType = VkValidationFeaturesEXT;
  93360. static const bool allowDuplicate = false;
  93361. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFeaturesEXT;
  93362. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  93363. VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( uint32_t enabledValidationFeatureCount_ = {},
  93364. const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures_ = {},
  93365. uint32_t disabledValidationFeatureCount_ = {},
  93366. const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures_ = {},
  93367. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  93368. : pNext( pNext_ )
  93369. , enabledValidationFeatureCount( enabledValidationFeatureCount_ )
  93370. , pEnabledValidationFeatures( pEnabledValidationFeatures_ )
  93371. , disabledValidationFeatureCount( disabledValidationFeatureCount_ )
  93372. , pDisabledValidationFeatures( pDisabledValidationFeatures_ )
  93373. {
  93374. }
  93375. VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93376. ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  93377. : ValidationFeaturesEXT( *reinterpret_cast<ValidationFeaturesEXT const *>( &rhs ) )
  93378. {
  93379. }
  93380. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  93381. ValidationFeaturesEXT(
  93382. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_,
  93383. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ = {},
  93384. const void * pNext_ = nullptr )
  93385. : pNext( pNext_ )
  93386. , enabledValidationFeatureCount( static_cast<uint32_t>( enabledValidationFeatures_.size() ) )
  93387. , pEnabledValidationFeatures( enabledValidationFeatures_.data() )
  93388. , disabledValidationFeatureCount( static_cast<uint32_t>( disabledValidationFeatures_.size() ) )
  93389. , pDisabledValidationFeatures( disabledValidationFeatures_.data() )
  93390. {
  93391. }
  93392. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  93393. ValidationFeaturesEXT & operator=( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93394. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  93395. ValidationFeaturesEXT & operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  93396. {
  93397. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT const *>( &rhs );
  93398. return *this;
  93399. }
  93400. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  93401. VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  93402. {
  93403. pNext = pNext_;
  93404. return *this;
  93405. }
  93406. VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
  93407. {
  93408. enabledValidationFeatureCount = enabledValidationFeatureCount_;
  93409. return *this;
  93410. }
  93411. VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT &
  93412. setPEnabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
  93413. {
  93414. pEnabledValidationFeatures = pEnabledValidationFeatures_;
  93415. return *this;
  93416. }
  93417. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  93418. ValidationFeaturesEXT & setEnabledValidationFeatures(
  93419. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT> const & enabledValidationFeatures_ )
  93420. VULKAN_HPP_NOEXCEPT
  93421. {
  93422. enabledValidationFeatureCount = static_cast<uint32_t>( enabledValidationFeatures_.size() );
  93423. pEnabledValidationFeatures = enabledValidationFeatures_.data();
  93424. return *this;
  93425. }
  93426. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  93427. VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT
  93428. {
  93429. disabledValidationFeatureCount = disabledValidationFeatureCount_;
  93430. return *this;
  93431. }
  93432. VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT &
  93433. setPDisabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT
  93434. {
  93435. pDisabledValidationFeatures = pDisabledValidationFeatures_;
  93436. return *this;
  93437. }
  93438. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  93439. ValidationFeaturesEXT & setDisabledValidationFeatures(
  93440. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT> const & disabledValidationFeatures_ )
  93441. VULKAN_HPP_NOEXCEPT
  93442. {
  93443. disabledValidationFeatureCount = static_cast<uint32_t>( disabledValidationFeatures_.size() );
  93444. pDisabledValidationFeatures = disabledValidationFeatures_.data();
  93445. return *this;
  93446. }
  93447. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  93448. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  93449. operator VkValidationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
  93450. {
  93451. return *reinterpret_cast<const VkValidationFeaturesEXT *>( this );
  93452. }
  93453. operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT
  93454. {
  93455. return *reinterpret_cast<VkValidationFeaturesEXT *>( this );
  93456. }
  93457. #if defined( VULKAN_HPP_USE_REFLECT )
  93458. # if 14 <= VULKAN_HPP_CPP_VERSION
  93459. auto
  93460. # else
  93461. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  93462. const void * const &,
  93463. uint32_t const &,
  93464. const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * const &,
  93465. uint32_t const &,
  93466. const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * const &>
  93467. # endif
  93468. reflect() const VULKAN_HPP_NOEXCEPT
  93469. {
  93470. return std::tie( sType, pNext, enabledValidationFeatureCount, pEnabledValidationFeatures, disabledValidationFeatureCount, pDisabledValidationFeatures );
  93471. }
  93472. #endif
  93473. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  93474. auto operator<=>( ValidationFeaturesEXT const & ) const = default;
  93475. #else
  93476. bool operator==( ValidationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  93477. {
  93478. # if defined( VULKAN_HPP_USE_REFLECT )
  93479. return this->reflect() == rhs.reflect();
  93480. # else
  93481. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount ) &&
  93482. ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures ) && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount ) &&
  93483. ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures );
  93484. # endif
  93485. }
  93486. bool operator!=( ValidationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  93487. {
  93488. return !operator==( rhs );
  93489. }
  93490. #endif
  93491. public:
  93492. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT;
  93493. const void * pNext = {};
  93494. uint32_t enabledValidationFeatureCount = {};
  93495. const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures = {};
  93496. uint32_t disabledValidationFeatureCount = {};
  93497. const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures = {};
  93498. };
  93499. template <>
  93500. struct CppType<StructureType, StructureType::eValidationFeaturesEXT>
  93501. {
  93502. using Type = ValidationFeaturesEXT;
  93503. };
  93504. struct ValidationFlagsEXT
  93505. {
  93506. using NativeType = VkValidationFlagsEXT;
  93507. static const bool allowDuplicate = false;
  93508. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFlagsEXT;
  93509. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  93510. VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( uint32_t disabledValidationCheckCount_ = {},
  93511. const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks_ = {},
  93512. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  93513. : pNext( pNext_ )
  93514. , disabledValidationCheckCount( disabledValidationCheckCount_ )
  93515. , pDisabledValidationChecks( pDisabledValidationChecks_ )
  93516. {
  93517. }
  93518. VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93519. ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT : ValidationFlagsEXT( *reinterpret_cast<ValidationFlagsEXT const *>( &rhs ) ) {}
  93520. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  93521. ValidationFlagsEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_,
  93522. const void * pNext_ = nullptr )
  93523. : pNext( pNext_ )
  93524. , disabledValidationCheckCount( static_cast<uint32_t>( disabledValidationChecks_.size() ) )
  93525. , pDisabledValidationChecks( disabledValidationChecks_.data() )
  93526. {
  93527. }
  93528. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  93529. ValidationFlagsEXT & operator=( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93530. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  93531. ValidationFlagsEXT & operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  93532. {
  93533. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ValidationFlagsEXT const *>( &rhs );
  93534. return *this;
  93535. }
  93536. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  93537. VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  93538. {
  93539. pNext = pNext_;
  93540. return *this;
  93541. }
  93542. VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT
  93543. {
  93544. disabledValidationCheckCount = disabledValidationCheckCount_;
  93545. return *this;
  93546. }
  93547. VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT &
  93548. setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
  93549. {
  93550. pDisabledValidationChecks = pDisabledValidationChecks_;
  93551. return *this;
  93552. }
  93553. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  93554. ValidationFlagsEXT & setDisabledValidationChecks(
  93555. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ValidationCheckEXT> const & disabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT
  93556. {
  93557. disabledValidationCheckCount = static_cast<uint32_t>( disabledValidationChecks_.size() );
  93558. pDisabledValidationChecks = disabledValidationChecks_.data();
  93559. return *this;
  93560. }
  93561. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  93562. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  93563. operator VkValidationFlagsEXT const &() const VULKAN_HPP_NOEXCEPT
  93564. {
  93565. return *reinterpret_cast<const VkValidationFlagsEXT *>( this );
  93566. }
  93567. operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT
  93568. {
  93569. return *reinterpret_cast<VkValidationFlagsEXT *>( this );
  93570. }
  93571. #if defined( VULKAN_HPP_USE_REFLECT )
  93572. # if 14 <= VULKAN_HPP_CPP_VERSION
  93573. auto
  93574. # else
  93575. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * const &>
  93576. # endif
  93577. reflect() const VULKAN_HPP_NOEXCEPT
  93578. {
  93579. return std::tie( sType, pNext, disabledValidationCheckCount, pDisabledValidationChecks );
  93580. }
  93581. #endif
  93582. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  93583. auto operator<=>( ValidationFlagsEXT const & ) const = default;
  93584. #else
  93585. bool operator==( ValidationFlagsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  93586. {
  93587. # if defined( VULKAN_HPP_USE_REFLECT )
  93588. return this->reflect() == rhs.reflect();
  93589. # else
  93590. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount ) &&
  93591. ( pDisabledValidationChecks == rhs.pDisabledValidationChecks );
  93592. # endif
  93593. }
  93594. bool operator!=( ValidationFlagsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  93595. {
  93596. return !operator==( rhs );
  93597. }
  93598. #endif
  93599. public:
  93600. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT;
  93601. const void * pNext = {};
  93602. uint32_t disabledValidationCheckCount = {};
  93603. const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks = {};
  93604. };
  93605. template <>
  93606. struct CppType<StructureType, StructureType::eValidationFlagsEXT>
  93607. {
  93608. using Type = ValidationFlagsEXT;
  93609. };
  93610. struct VertexInputAttributeDescription2EXT
  93611. {
  93612. using NativeType = VkVertexInputAttributeDescription2EXT;
  93613. static const bool allowDuplicate = false;
  93614. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVertexInputAttributeDescription2EXT;
  93615. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  93616. VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription2EXT( uint32_t location_ = {},
  93617. uint32_t binding_ = {},
  93618. VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  93619. uint32_t offset_ = {},
  93620. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  93621. : pNext( pNext_ )
  93622. , location( location_ )
  93623. , binding( binding_ )
  93624. , format( format_ )
  93625. , offset( offset_ )
  93626. {
  93627. }
  93628. VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription2EXT( VertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93629. VertexInputAttributeDescription2EXT( VkVertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  93630. : VertexInputAttributeDescription2EXT( *reinterpret_cast<VertexInputAttributeDescription2EXT const *>( &rhs ) )
  93631. {
  93632. }
  93633. VertexInputAttributeDescription2EXT & operator=( VertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93634. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  93635. VertexInputAttributeDescription2EXT & operator=( VkVertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  93636. {
  93637. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT const *>( &rhs );
  93638. return *this;
  93639. }
  93640. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  93641. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  93642. {
  93643. pNext = pNext_;
  93644. return *this;
  93645. }
  93646. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT
  93647. {
  93648. location = location_;
  93649. return *this;
  93650. }
  93651. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  93652. {
  93653. binding = binding_;
  93654. return *this;
  93655. }
  93656. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT
  93657. {
  93658. format = format_;
  93659. return *this;
  93660. }
  93661. VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
  93662. {
  93663. offset = offset_;
  93664. return *this;
  93665. }
  93666. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  93667. operator VkVertexInputAttributeDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
  93668. {
  93669. return *reinterpret_cast<const VkVertexInputAttributeDescription2EXT *>( this );
  93670. }
  93671. operator VkVertexInputAttributeDescription2EXT &() VULKAN_HPP_NOEXCEPT
  93672. {
  93673. return *reinterpret_cast<VkVertexInputAttributeDescription2EXT *>( this );
  93674. }
  93675. #if defined( VULKAN_HPP_USE_REFLECT )
  93676. # if 14 <= VULKAN_HPP_CPP_VERSION
  93677. auto
  93678. # else
  93679. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  93680. void * const &,
  93681. uint32_t const &,
  93682. uint32_t const &,
  93683. VULKAN_HPP_NAMESPACE::Format const &,
  93684. uint32_t const &>
  93685. # endif
  93686. reflect() const VULKAN_HPP_NOEXCEPT
  93687. {
  93688. return std::tie( sType, pNext, location, binding, format, offset );
  93689. }
  93690. #endif
  93691. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  93692. auto operator<=>( VertexInputAttributeDescription2EXT const & ) const = default;
  93693. #else
  93694. bool operator==( VertexInputAttributeDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  93695. {
  93696. # if defined( VULKAN_HPP_USE_REFLECT )
  93697. return this->reflect() == rhs.reflect();
  93698. # else
  93699. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( location == rhs.location ) && ( binding == rhs.binding ) && ( format == rhs.format ) &&
  93700. ( offset == rhs.offset );
  93701. # endif
  93702. }
  93703. bool operator!=( VertexInputAttributeDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  93704. {
  93705. return !operator==( rhs );
  93706. }
  93707. #endif
  93708. public:
  93709. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVertexInputAttributeDescription2EXT;
  93710. void * pNext = {};
  93711. uint32_t location = {};
  93712. uint32_t binding = {};
  93713. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  93714. uint32_t offset = {};
  93715. };
  93716. template <>
  93717. struct CppType<StructureType, StructureType::eVertexInputAttributeDescription2EXT>
  93718. {
  93719. using Type = VertexInputAttributeDescription2EXT;
  93720. };
  93721. struct VertexInputBindingDescription2EXT
  93722. {
  93723. using NativeType = VkVertexInputBindingDescription2EXT;
  93724. static const bool allowDuplicate = false;
  93725. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVertexInputBindingDescription2EXT;
  93726. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  93727. VULKAN_HPP_CONSTEXPR VertexInputBindingDescription2EXT( uint32_t binding_ = {},
  93728. uint32_t stride_ = {},
  93729. VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex,
  93730. uint32_t divisor_ = {},
  93731. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  93732. : pNext( pNext_ )
  93733. , binding( binding_ )
  93734. , stride( stride_ )
  93735. , inputRate( inputRate_ )
  93736. , divisor( divisor_ )
  93737. {
  93738. }
  93739. VULKAN_HPP_CONSTEXPR VertexInputBindingDescription2EXT( VertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93740. VertexInputBindingDescription2EXT( VkVertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  93741. : VertexInputBindingDescription2EXT( *reinterpret_cast<VertexInputBindingDescription2EXT const *>( &rhs ) )
  93742. {
  93743. }
  93744. VertexInputBindingDescription2EXT & operator=( VertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93745. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  93746. VertexInputBindingDescription2EXT & operator=( VkVertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT
  93747. {
  93748. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT const *>( &rhs );
  93749. return *this;
  93750. }
  93751. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  93752. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
  93753. {
  93754. pNext = pNext_;
  93755. return *this;
  93756. }
  93757. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT
  93758. {
  93759. binding = binding_;
  93760. return *this;
  93761. }
  93762. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
  93763. {
  93764. stride = stride_;
  93765. return *this;
  93766. }
  93767. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT
  93768. {
  93769. inputRate = inputRate_;
  93770. return *this;
  93771. }
  93772. VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT
  93773. {
  93774. divisor = divisor_;
  93775. return *this;
  93776. }
  93777. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  93778. operator VkVertexInputBindingDescription2EXT const &() const VULKAN_HPP_NOEXCEPT
  93779. {
  93780. return *reinterpret_cast<const VkVertexInputBindingDescription2EXT *>( this );
  93781. }
  93782. operator VkVertexInputBindingDescription2EXT &() VULKAN_HPP_NOEXCEPT
  93783. {
  93784. return *reinterpret_cast<VkVertexInputBindingDescription2EXT *>( this );
  93785. }
  93786. #if defined( VULKAN_HPP_USE_REFLECT )
  93787. # if 14 <= VULKAN_HPP_CPP_VERSION
  93788. auto
  93789. # else
  93790. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  93791. void * const &,
  93792. uint32_t const &,
  93793. uint32_t const &,
  93794. VULKAN_HPP_NAMESPACE::VertexInputRate const &,
  93795. uint32_t const &>
  93796. # endif
  93797. reflect() const VULKAN_HPP_NOEXCEPT
  93798. {
  93799. return std::tie( sType, pNext, binding, stride, inputRate, divisor );
  93800. }
  93801. #endif
  93802. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  93803. auto operator<=>( VertexInputBindingDescription2EXT const & ) const = default;
  93804. #else
  93805. bool operator==( VertexInputBindingDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  93806. {
  93807. # if defined( VULKAN_HPP_USE_REFLECT )
  93808. return this->reflect() == rhs.reflect();
  93809. # else
  93810. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( binding == rhs.binding ) && ( stride == rhs.stride ) && ( inputRate == rhs.inputRate ) &&
  93811. ( divisor == rhs.divisor );
  93812. # endif
  93813. }
  93814. bool operator!=( VertexInputBindingDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  93815. {
  93816. return !operator==( rhs );
  93817. }
  93818. #endif
  93819. public:
  93820. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVertexInputBindingDescription2EXT;
  93821. void * pNext = {};
  93822. uint32_t binding = {};
  93823. uint32_t stride = {};
  93824. VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex;
  93825. uint32_t divisor = {};
  93826. };
  93827. template <>
  93828. struct CppType<StructureType, StructureType::eVertexInputBindingDescription2EXT>
  93829. {
  93830. using Type = VertexInputBindingDescription2EXT;
  93831. };
  93832. #if defined( VK_USE_PLATFORM_VI_NN )
  93833. struct ViSurfaceCreateInfoNN
  93834. {
  93835. using NativeType = VkViSurfaceCreateInfoNN;
  93836. static const bool allowDuplicate = false;
  93837. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eViSurfaceCreateInfoNN;
  93838. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  93839. VULKAN_HPP_CONSTEXPR
  93840. ViSurfaceCreateInfoNN( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, void * window_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  93841. : pNext( pNext_ )
  93842. , flags( flags_ )
  93843. , window( window_ )
  93844. {
  93845. }
  93846. VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93847. ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
  93848. : ViSurfaceCreateInfoNN( *reinterpret_cast<ViSurfaceCreateInfoNN const *>( &rhs ) )
  93849. {
  93850. }
  93851. ViSurfaceCreateInfoNN & operator=( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93852. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  93853. ViSurfaceCreateInfoNN & operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT
  93854. {
  93855. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const *>( &rhs );
  93856. return *this;
  93857. }
  93858. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  93859. VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  93860. {
  93861. pNext = pNext_;
  93862. return *this;
  93863. }
  93864. VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT
  93865. {
  93866. flags = flags_;
  93867. return *this;
  93868. }
  93869. VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & setWindow( void * window_ ) VULKAN_HPP_NOEXCEPT
  93870. {
  93871. window = window_;
  93872. return *this;
  93873. }
  93874. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  93875. operator VkViSurfaceCreateInfoNN const &() const VULKAN_HPP_NOEXCEPT
  93876. {
  93877. return *reinterpret_cast<const VkViSurfaceCreateInfoNN *>( this );
  93878. }
  93879. operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT
  93880. {
  93881. return *reinterpret_cast<VkViSurfaceCreateInfoNN *>( this );
  93882. }
  93883. # if defined( VULKAN_HPP_USE_REFLECT )
  93884. # if 14 <= VULKAN_HPP_CPP_VERSION
  93885. auto
  93886. # else
  93887. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN const &, void * const &>
  93888. # endif
  93889. reflect() const VULKAN_HPP_NOEXCEPT
  93890. {
  93891. return std::tie( sType, pNext, flags, window );
  93892. }
  93893. # endif
  93894. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  93895. auto operator<=>( ViSurfaceCreateInfoNN const & ) const = default;
  93896. # else
  93897. bool operator==( ViSurfaceCreateInfoNN const & rhs ) const VULKAN_HPP_NOEXCEPT
  93898. {
  93899. # if defined( VULKAN_HPP_USE_REFLECT )
  93900. return this->reflect() == rhs.reflect();
  93901. # else
  93902. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( window == rhs.window );
  93903. # endif
  93904. }
  93905. bool operator!=( ViSurfaceCreateInfoNN const & rhs ) const VULKAN_HPP_NOEXCEPT
  93906. {
  93907. return !operator==( rhs );
  93908. }
  93909. # endif
  93910. public:
  93911. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN;
  93912. const void * pNext = {};
  93913. VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {};
  93914. void * window = {};
  93915. };
  93916. template <>
  93917. struct CppType<StructureType, StructureType::eViSurfaceCreateInfoNN>
  93918. {
  93919. using Type = ViSurfaceCreateInfoNN;
  93920. };
  93921. #endif /*VK_USE_PLATFORM_VI_NN*/
  93922. struct VideoPictureResourceInfoKHR
  93923. {
  93924. using NativeType = VkVideoPictureResourceInfoKHR;
  93925. static const bool allowDuplicate = false;
  93926. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoPictureResourceInfoKHR;
  93927. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  93928. VULKAN_HPP_CONSTEXPR VideoPictureResourceInfoKHR( VULKAN_HPP_NAMESPACE::Offset2D codedOffset_ = {},
  93929. VULKAN_HPP_NAMESPACE::Extent2D codedExtent_ = {},
  93930. uint32_t baseArrayLayer_ = {},
  93931. VULKAN_HPP_NAMESPACE::ImageView imageViewBinding_ = {},
  93932. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  93933. : pNext( pNext_ )
  93934. , codedOffset( codedOffset_ )
  93935. , codedExtent( codedExtent_ )
  93936. , baseArrayLayer( baseArrayLayer_ )
  93937. , imageViewBinding( imageViewBinding_ )
  93938. {
  93939. }
  93940. VULKAN_HPP_CONSTEXPR VideoPictureResourceInfoKHR( VideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93941. VideoPictureResourceInfoKHR( VkVideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  93942. : VideoPictureResourceInfoKHR( *reinterpret_cast<VideoPictureResourceInfoKHR const *>( &rhs ) )
  93943. {
  93944. }
  93945. VideoPictureResourceInfoKHR & operator=( VideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  93946. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  93947. VideoPictureResourceInfoKHR & operator=( VkVideoPictureResourceInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  93948. {
  93949. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const *>( &rhs );
  93950. return *this;
  93951. }
  93952. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  93953. VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  93954. {
  93955. pNext = pNext_;
  93956. return *this;
  93957. }
  93958. VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setCodedOffset( VULKAN_HPP_NAMESPACE::Offset2D const & codedOffset_ ) VULKAN_HPP_NOEXCEPT
  93959. {
  93960. codedOffset = codedOffset_;
  93961. return *this;
  93962. }
  93963. VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setCodedExtent( VULKAN_HPP_NAMESPACE::Extent2D const & codedExtent_ ) VULKAN_HPP_NOEXCEPT
  93964. {
  93965. codedExtent = codedExtent_;
  93966. return *this;
  93967. }
  93968. VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT
  93969. {
  93970. baseArrayLayer = baseArrayLayer_;
  93971. return *this;
  93972. }
  93973. VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceInfoKHR & setImageViewBinding( VULKAN_HPP_NAMESPACE::ImageView imageViewBinding_ ) VULKAN_HPP_NOEXCEPT
  93974. {
  93975. imageViewBinding = imageViewBinding_;
  93976. return *this;
  93977. }
  93978. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  93979. operator VkVideoPictureResourceInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  93980. {
  93981. return *reinterpret_cast<const VkVideoPictureResourceInfoKHR *>( this );
  93982. }
  93983. operator VkVideoPictureResourceInfoKHR &() VULKAN_HPP_NOEXCEPT
  93984. {
  93985. return *reinterpret_cast<VkVideoPictureResourceInfoKHR *>( this );
  93986. }
  93987. #if defined( VULKAN_HPP_USE_REFLECT )
  93988. # if 14 <= VULKAN_HPP_CPP_VERSION
  93989. auto
  93990. # else
  93991. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  93992. const void * const &,
  93993. VULKAN_HPP_NAMESPACE::Offset2D const &,
  93994. VULKAN_HPP_NAMESPACE::Extent2D const &,
  93995. uint32_t const &,
  93996. VULKAN_HPP_NAMESPACE::ImageView const &>
  93997. # endif
  93998. reflect() const VULKAN_HPP_NOEXCEPT
  93999. {
  94000. return std::tie( sType, pNext, codedOffset, codedExtent, baseArrayLayer, imageViewBinding );
  94001. }
  94002. #endif
  94003. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  94004. auto operator<=>( VideoPictureResourceInfoKHR const & ) const = default;
  94005. #else
  94006. bool operator==( VideoPictureResourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94007. {
  94008. # if defined( VULKAN_HPP_USE_REFLECT )
  94009. return this->reflect() == rhs.reflect();
  94010. # else
  94011. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( codedOffset == rhs.codedOffset ) && ( codedExtent == rhs.codedExtent ) &&
  94012. ( baseArrayLayer == rhs.baseArrayLayer ) && ( imageViewBinding == rhs.imageViewBinding );
  94013. # endif
  94014. }
  94015. bool operator!=( VideoPictureResourceInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94016. {
  94017. return !operator==( rhs );
  94018. }
  94019. #endif
  94020. public:
  94021. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoPictureResourceInfoKHR;
  94022. const void * pNext = {};
  94023. VULKAN_HPP_NAMESPACE::Offset2D codedOffset = {};
  94024. VULKAN_HPP_NAMESPACE::Extent2D codedExtent = {};
  94025. uint32_t baseArrayLayer = {};
  94026. VULKAN_HPP_NAMESPACE::ImageView imageViewBinding = {};
  94027. };
  94028. template <>
  94029. struct CppType<StructureType, StructureType::eVideoPictureResourceInfoKHR>
  94030. {
  94031. using Type = VideoPictureResourceInfoKHR;
  94032. };
  94033. struct VideoReferenceSlotInfoKHR
  94034. {
  94035. using NativeType = VkVideoReferenceSlotInfoKHR;
  94036. static const bool allowDuplicate = false;
  94037. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoReferenceSlotInfoKHR;
  94038. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  94039. VULKAN_HPP_CONSTEXPR VideoReferenceSlotInfoKHR( int32_t slotIndex_ = {},
  94040. const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource_ = {},
  94041. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  94042. : pNext( pNext_ )
  94043. , slotIndex( slotIndex_ )
  94044. , pPictureResource( pPictureResource_ )
  94045. {
  94046. }
  94047. VULKAN_HPP_CONSTEXPR VideoReferenceSlotInfoKHR( VideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94048. VideoReferenceSlotInfoKHR( VkVideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94049. : VideoReferenceSlotInfoKHR( *reinterpret_cast<VideoReferenceSlotInfoKHR const *>( &rhs ) )
  94050. {
  94051. }
  94052. VideoReferenceSlotInfoKHR & operator=( VideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94053. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  94054. VideoReferenceSlotInfoKHR & operator=( VkVideoReferenceSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94055. {
  94056. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR const *>( &rhs );
  94057. return *this;
  94058. }
  94059. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  94060. VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  94061. {
  94062. pNext = pNext_;
  94063. return *this;
  94064. }
  94065. VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotInfoKHR & setSlotIndex( int32_t slotIndex_ ) VULKAN_HPP_NOEXCEPT
  94066. {
  94067. slotIndex = slotIndex_;
  94068. return *this;
  94069. }
  94070. VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotInfoKHR &
  94071. setPPictureResource( const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource_ ) VULKAN_HPP_NOEXCEPT
  94072. {
  94073. pPictureResource = pPictureResource_;
  94074. return *this;
  94075. }
  94076. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  94077. operator VkVideoReferenceSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  94078. {
  94079. return *reinterpret_cast<const VkVideoReferenceSlotInfoKHR *>( this );
  94080. }
  94081. operator VkVideoReferenceSlotInfoKHR &() VULKAN_HPP_NOEXCEPT
  94082. {
  94083. return *reinterpret_cast<VkVideoReferenceSlotInfoKHR *>( this );
  94084. }
  94085. #if defined( VULKAN_HPP_USE_REFLECT )
  94086. # if 14 <= VULKAN_HPP_CPP_VERSION
  94087. auto
  94088. # else
  94089. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  94090. const void * const &,
  94091. int32_t const &,
  94092. const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * const &>
  94093. # endif
  94094. reflect() const VULKAN_HPP_NOEXCEPT
  94095. {
  94096. return std::tie( sType, pNext, slotIndex, pPictureResource );
  94097. }
  94098. #endif
  94099. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  94100. auto operator<=>( VideoReferenceSlotInfoKHR const & ) const = default;
  94101. #else
  94102. bool operator==( VideoReferenceSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94103. {
  94104. # if defined( VULKAN_HPP_USE_REFLECT )
  94105. return this->reflect() == rhs.reflect();
  94106. # else
  94107. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( slotIndex == rhs.slotIndex ) && ( pPictureResource == rhs.pPictureResource );
  94108. # endif
  94109. }
  94110. bool operator!=( VideoReferenceSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94111. {
  94112. return !operator==( rhs );
  94113. }
  94114. #endif
  94115. public:
  94116. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoReferenceSlotInfoKHR;
  94117. const void * pNext = {};
  94118. int32_t slotIndex = {};
  94119. const VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR * pPictureResource = {};
  94120. };
  94121. template <>
  94122. struct CppType<StructureType, StructureType::eVideoReferenceSlotInfoKHR>
  94123. {
  94124. using Type = VideoReferenceSlotInfoKHR;
  94125. };
  94126. struct VideoBeginCodingInfoKHR
  94127. {
  94128. using NativeType = VkVideoBeginCodingInfoKHR;
  94129. static const bool allowDuplicate = false;
  94130. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoBeginCodingInfoKHR;
  94131. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  94132. VULKAN_HPP_CONSTEXPR VideoBeginCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_ = {},
  94133. VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ = {},
  94134. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ = {},
  94135. uint32_t referenceSlotCount_ = {},
  94136. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {},
  94137. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  94138. : pNext( pNext_ )
  94139. , flags( flags_ )
  94140. , videoSession( videoSession_ )
  94141. , videoSessionParameters( videoSessionParameters_ )
  94142. , referenceSlotCount( referenceSlotCount_ )
  94143. , pReferenceSlots( pReferenceSlots_ )
  94144. {
  94145. }
  94146. VULKAN_HPP_CONSTEXPR VideoBeginCodingInfoKHR( VideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94147. VideoBeginCodingInfoKHR( VkVideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94148. : VideoBeginCodingInfoKHR( *reinterpret_cast<VideoBeginCodingInfoKHR const *>( &rhs ) )
  94149. {
  94150. }
  94151. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  94152. VideoBeginCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_,
  94153. VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_,
  94154. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_,
  94155. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_,
  94156. const void * pNext_ = nullptr )
  94157. : pNext( pNext_ )
  94158. , flags( flags_ )
  94159. , videoSession( videoSession_ )
  94160. , videoSessionParameters( videoSessionParameters_ )
  94161. , referenceSlotCount( static_cast<uint32_t>( referenceSlots_.size() ) )
  94162. , pReferenceSlots( referenceSlots_.data() )
  94163. {
  94164. }
  94165. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  94166. VideoBeginCodingInfoKHR & operator=( VideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94167. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  94168. VideoBeginCodingInfoKHR & operator=( VkVideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94169. {
  94170. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR const *>( &rhs );
  94171. return *this;
  94172. }
  94173. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  94174. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  94175. {
  94176. pNext = pNext_;
  94177. return *this;
  94178. }
  94179. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  94180. {
  94181. flags = flags_;
  94182. return *this;
  94183. }
  94184. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setVideoSession( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ ) VULKAN_HPP_NOEXCEPT
  94185. {
  94186. videoSession = videoSession_;
  94187. return *this;
  94188. }
  94189. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR &
  94190. setVideoSessionParameters( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ ) VULKAN_HPP_NOEXCEPT
  94191. {
  94192. videoSessionParameters = videoSessionParameters_;
  94193. return *this;
  94194. }
  94195. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT
  94196. {
  94197. referenceSlotCount = referenceSlotCount_;
  94198. return *this;
  94199. }
  94200. VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR &
  94201. setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
  94202. {
  94203. pReferenceSlots = pReferenceSlots_;
  94204. return *this;
  94205. }
  94206. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  94207. VideoBeginCodingInfoKHR & setReferenceSlots(
  94208. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
  94209. {
  94210. referenceSlotCount = static_cast<uint32_t>( referenceSlots_.size() );
  94211. pReferenceSlots = referenceSlots_.data();
  94212. return *this;
  94213. }
  94214. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  94215. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  94216. operator VkVideoBeginCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  94217. {
  94218. return *reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( this );
  94219. }
  94220. operator VkVideoBeginCodingInfoKHR &() VULKAN_HPP_NOEXCEPT
  94221. {
  94222. return *reinterpret_cast<VkVideoBeginCodingInfoKHR *>( this );
  94223. }
  94224. #if defined( VULKAN_HPP_USE_REFLECT )
  94225. # if 14 <= VULKAN_HPP_CPP_VERSION
  94226. auto
  94227. # else
  94228. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  94229. const void * const &,
  94230. VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR const &,
  94231. VULKAN_HPP_NAMESPACE::VideoSessionKHR const &,
  94232. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &,
  94233. uint32_t const &,
  94234. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &>
  94235. # endif
  94236. reflect() const VULKAN_HPP_NOEXCEPT
  94237. {
  94238. return std::tie( sType, pNext, flags, videoSession, videoSessionParameters, referenceSlotCount, pReferenceSlots );
  94239. }
  94240. #endif
  94241. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  94242. auto operator<=>( VideoBeginCodingInfoKHR const & ) const = default;
  94243. #else
  94244. bool operator==( VideoBeginCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94245. {
  94246. # if defined( VULKAN_HPP_USE_REFLECT )
  94247. return this->reflect() == rhs.reflect();
  94248. # else
  94249. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( videoSession == rhs.videoSession ) &&
  94250. ( videoSessionParameters == rhs.videoSessionParameters ) && ( referenceSlotCount == rhs.referenceSlotCount ) &&
  94251. ( pReferenceSlots == rhs.pReferenceSlots );
  94252. # endif
  94253. }
  94254. bool operator!=( VideoBeginCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94255. {
  94256. return !operator==( rhs );
  94257. }
  94258. #endif
  94259. public:
  94260. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoBeginCodingInfoKHR;
  94261. const void * pNext = {};
  94262. VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags = {};
  94263. VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession = {};
  94264. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters = {};
  94265. uint32_t referenceSlotCount = {};
  94266. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots = {};
  94267. };
  94268. template <>
  94269. struct CppType<StructureType, StructureType::eVideoBeginCodingInfoKHR>
  94270. {
  94271. using Type = VideoBeginCodingInfoKHR;
  94272. };
  94273. struct VideoCapabilitiesKHR
  94274. {
  94275. using NativeType = VkVideoCapabilitiesKHR;
  94276. static const bool allowDuplicate = false;
  94277. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoCapabilitiesKHR;
  94278. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  94279. VULKAN_HPP_CONSTEXPR_14 VideoCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR flags_ = {},
  94280. VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferOffsetAlignment_ = {},
  94281. VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferSizeAlignment_ = {},
  94282. VULKAN_HPP_NAMESPACE::Extent2D pictureAccessGranularity_ = {},
  94283. VULKAN_HPP_NAMESPACE::Extent2D minCodedExtent_ = {},
  94284. VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent_ = {},
  94285. uint32_t maxDpbSlots_ = {},
  94286. uint32_t maxActiveReferencePictures_ = {},
  94287. VULKAN_HPP_NAMESPACE::ExtensionProperties stdHeaderVersion_ = {},
  94288. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  94289. : pNext( pNext_ )
  94290. , flags( flags_ )
  94291. , minBitstreamBufferOffsetAlignment( minBitstreamBufferOffsetAlignment_ )
  94292. , minBitstreamBufferSizeAlignment( minBitstreamBufferSizeAlignment_ )
  94293. , pictureAccessGranularity( pictureAccessGranularity_ )
  94294. , minCodedExtent( minCodedExtent_ )
  94295. , maxCodedExtent( maxCodedExtent_ )
  94296. , maxDpbSlots( maxDpbSlots_ )
  94297. , maxActiveReferencePictures( maxActiveReferencePictures_ )
  94298. , stdHeaderVersion( stdHeaderVersion_ )
  94299. {
  94300. }
  94301. VULKAN_HPP_CONSTEXPR_14 VideoCapabilitiesKHR( VideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94302. VideoCapabilitiesKHR( VkVideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94303. : VideoCapabilitiesKHR( *reinterpret_cast<VideoCapabilitiesKHR const *>( &rhs ) )
  94304. {
  94305. }
  94306. VideoCapabilitiesKHR & operator=( VideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94307. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  94308. VideoCapabilitiesKHR & operator=( VkVideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94309. {
  94310. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR const *>( &rhs );
  94311. return *this;
  94312. }
  94313. operator VkVideoCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  94314. {
  94315. return *reinterpret_cast<const VkVideoCapabilitiesKHR *>( this );
  94316. }
  94317. operator VkVideoCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  94318. {
  94319. return *reinterpret_cast<VkVideoCapabilitiesKHR *>( this );
  94320. }
  94321. #if defined( VULKAN_HPP_USE_REFLECT )
  94322. # if 14 <= VULKAN_HPP_CPP_VERSION
  94323. auto
  94324. # else
  94325. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  94326. void * const &,
  94327. VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR const &,
  94328. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  94329. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  94330. VULKAN_HPP_NAMESPACE::Extent2D const &,
  94331. VULKAN_HPP_NAMESPACE::Extent2D const &,
  94332. VULKAN_HPP_NAMESPACE::Extent2D const &,
  94333. uint32_t const &,
  94334. uint32_t const &,
  94335. VULKAN_HPP_NAMESPACE::ExtensionProperties const &>
  94336. # endif
  94337. reflect() const VULKAN_HPP_NOEXCEPT
  94338. {
  94339. return std::tie( sType,
  94340. pNext,
  94341. flags,
  94342. minBitstreamBufferOffsetAlignment,
  94343. minBitstreamBufferSizeAlignment,
  94344. pictureAccessGranularity,
  94345. minCodedExtent,
  94346. maxCodedExtent,
  94347. maxDpbSlots,
  94348. maxActiveReferencePictures,
  94349. stdHeaderVersion );
  94350. }
  94351. #endif
  94352. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  94353. auto operator<=>( VideoCapabilitiesKHR const & ) const = default;
  94354. #else
  94355. bool operator==( VideoCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94356. {
  94357. # if defined( VULKAN_HPP_USE_REFLECT )
  94358. return this->reflect() == rhs.reflect();
  94359. # else
  94360. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  94361. ( minBitstreamBufferOffsetAlignment == rhs.minBitstreamBufferOffsetAlignment ) &&
  94362. ( minBitstreamBufferSizeAlignment == rhs.minBitstreamBufferSizeAlignment ) && ( pictureAccessGranularity == rhs.pictureAccessGranularity ) &&
  94363. ( minCodedExtent == rhs.minCodedExtent ) && ( maxCodedExtent == rhs.maxCodedExtent ) && ( maxDpbSlots == rhs.maxDpbSlots ) &&
  94364. ( maxActiveReferencePictures == rhs.maxActiveReferencePictures ) && ( stdHeaderVersion == rhs.stdHeaderVersion );
  94365. # endif
  94366. }
  94367. bool operator!=( VideoCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94368. {
  94369. return !operator==( rhs );
  94370. }
  94371. #endif
  94372. public:
  94373. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoCapabilitiesKHR;
  94374. void * pNext = {};
  94375. VULKAN_HPP_NAMESPACE::VideoCapabilityFlagsKHR flags = {};
  94376. VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferOffsetAlignment = {};
  94377. VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferSizeAlignment = {};
  94378. VULKAN_HPP_NAMESPACE::Extent2D pictureAccessGranularity = {};
  94379. VULKAN_HPP_NAMESPACE::Extent2D minCodedExtent = {};
  94380. VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent = {};
  94381. uint32_t maxDpbSlots = {};
  94382. uint32_t maxActiveReferencePictures = {};
  94383. VULKAN_HPP_NAMESPACE::ExtensionProperties stdHeaderVersion = {};
  94384. };
  94385. template <>
  94386. struct CppType<StructureType, StructureType::eVideoCapabilitiesKHR>
  94387. {
  94388. using Type = VideoCapabilitiesKHR;
  94389. };
  94390. struct VideoCodingControlInfoKHR
  94391. {
  94392. using NativeType = VkVideoCodingControlInfoKHR;
  94393. static const bool allowDuplicate = false;
  94394. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoCodingControlInfoKHR;
  94395. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  94396. VULKAN_HPP_CONSTEXPR VideoCodingControlInfoKHR( VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags_ = {},
  94397. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  94398. : pNext( pNext_ )
  94399. , flags( flags_ )
  94400. {
  94401. }
  94402. VULKAN_HPP_CONSTEXPR VideoCodingControlInfoKHR( VideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94403. VideoCodingControlInfoKHR( VkVideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94404. : VideoCodingControlInfoKHR( *reinterpret_cast<VideoCodingControlInfoKHR const *>( &rhs ) )
  94405. {
  94406. }
  94407. VideoCodingControlInfoKHR & operator=( VideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94408. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  94409. VideoCodingControlInfoKHR & operator=( VkVideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94410. {
  94411. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR const *>( &rhs );
  94412. return *this;
  94413. }
  94414. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  94415. VULKAN_HPP_CONSTEXPR_14 VideoCodingControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  94416. {
  94417. pNext = pNext_;
  94418. return *this;
  94419. }
  94420. VULKAN_HPP_CONSTEXPR_14 VideoCodingControlInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  94421. {
  94422. flags = flags_;
  94423. return *this;
  94424. }
  94425. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  94426. operator VkVideoCodingControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  94427. {
  94428. return *reinterpret_cast<const VkVideoCodingControlInfoKHR *>( this );
  94429. }
  94430. operator VkVideoCodingControlInfoKHR &() VULKAN_HPP_NOEXCEPT
  94431. {
  94432. return *reinterpret_cast<VkVideoCodingControlInfoKHR *>( this );
  94433. }
  94434. #if defined( VULKAN_HPP_USE_REFLECT )
  94435. # if 14 <= VULKAN_HPP_CPP_VERSION
  94436. auto
  94437. # else
  94438. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR const &>
  94439. # endif
  94440. reflect() const VULKAN_HPP_NOEXCEPT
  94441. {
  94442. return std::tie( sType, pNext, flags );
  94443. }
  94444. #endif
  94445. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  94446. auto operator<=>( VideoCodingControlInfoKHR const & ) const = default;
  94447. #else
  94448. bool operator==( VideoCodingControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94449. {
  94450. # if defined( VULKAN_HPP_USE_REFLECT )
  94451. return this->reflect() == rhs.reflect();
  94452. # else
  94453. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  94454. # endif
  94455. }
  94456. bool operator!=( VideoCodingControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94457. {
  94458. return !operator==( rhs );
  94459. }
  94460. #endif
  94461. public:
  94462. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoCodingControlInfoKHR;
  94463. const void * pNext = {};
  94464. VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags = {};
  94465. };
  94466. template <>
  94467. struct CppType<StructureType, StructureType::eVideoCodingControlInfoKHR>
  94468. {
  94469. using Type = VideoCodingControlInfoKHR;
  94470. };
  94471. struct VideoDecodeCapabilitiesKHR
  94472. {
  94473. using NativeType = VkVideoDecodeCapabilitiesKHR;
  94474. static const bool allowDuplicate = false;
  94475. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeCapabilitiesKHR;
  94476. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  94477. VULKAN_HPP_CONSTEXPR VideoDecodeCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR flags_ = {},
  94478. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  94479. : pNext( pNext_ )
  94480. , flags( flags_ )
  94481. {
  94482. }
  94483. VULKAN_HPP_CONSTEXPR VideoDecodeCapabilitiesKHR( VideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94484. VideoDecodeCapabilitiesKHR( VkVideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94485. : VideoDecodeCapabilitiesKHR( *reinterpret_cast<VideoDecodeCapabilitiesKHR const *>( &rhs ) )
  94486. {
  94487. }
  94488. VideoDecodeCapabilitiesKHR & operator=( VideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94489. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  94490. VideoDecodeCapabilitiesKHR & operator=( VkVideoDecodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94491. {
  94492. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR const *>( &rhs );
  94493. return *this;
  94494. }
  94495. operator VkVideoDecodeCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  94496. {
  94497. return *reinterpret_cast<const VkVideoDecodeCapabilitiesKHR *>( this );
  94498. }
  94499. operator VkVideoDecodeCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  94500. {
  94501. return *reinterpret_cast<VkVideoDecodeCapabilitiesKHR *>( this );
  94502. }
  94503. #if defined( VULKAN_HPP_USE_REFLECT )
  94504. # if 14 <= VULKAN_HPP_CPP_VERSION
  94505. auto
  94506. # else
  94507. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR const &>
  94508. # endif
  94509. reflect() const VULKAN_HPP_NOEXCEPT
  94510. {
  94511. return std::tie( sType, pNext, flags );
  94512. }
  94513. #endif
  94514. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  94515. auto operator<=>( VideoDecodeCapabilitiesKHR const & ) const = default;
  94516. #else
  94517. bool operator==( VideoDecodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94518. {
  94519. # if defined( VULKAN_HPP_USE_REFLECT )
  94520. return this->reflect() == rhs.reflect();
  94521. # else
  94522. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  94523. # endif
  94524. }
  94525. bool operator!=( VideoDecodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94526. {
  94527. return !operator==( rhs );
  94528. }
  94529. #endif
  94530. public:
  94531. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeCapabilitiesKHR;
  94532. void * pNext = {};
  94533. VULKAN_HPP_NAMESPACE::VideoDecodeCapabilityFlagsKHR flags = {};
  94534. };
  94535. template <>
  94536. struct CppType<StructureType, StructureType::eVideoDecodeCapabilitiesKHR>
  94537. {
  94538. using Type = VideoDecodeCapabilitiesKHR;
  94539. };
  94540. struct VideoDecodeH264CapabilitiesKHR
  94541. {
  94542. using NativeType = VkVideoDecodeH264CapabilitiesKHR;
  94543. static const bool allowDuplicate = false;
  94544. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264CapabilitiesKHR;
  94545. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  94546. VULKAN_HPP_CONSTEXPR VideoDecodeH264CapabilitiesKHR( StdVideoH264LevelIdc maxLevelIdc_ = {},
  94547. VULKAN_HPP_NAMESPACE::Offset2D fieldOffsetGranularity_ = {},
  94548. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  94549. : pNext( pNext_ )
  94550. , maxLevelIdc( maxLevelIdc_ )
  94551. , fieldOffsetGranularity( fieldOffsetGranularity_ )
  94552. {
  94553. }
  94554. VULKAN_HPP_CONSTEXPR VideoDecodeH264CapabilitiesKHR( VideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94555. VideoDecodeH264CapabilitiesKHR( VkVideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94556. : VideoDecodeH264CapabilitiesKHR( *reinterpret_cast<VideoDecodeH264CapabilitiesKHR const *>( &rhs ) )
  94557. {
  94558. }
  94559. VideoDecodeH264CapabilitiesKHR & operator=( VideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94560. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  94561. VideoDecodeH264CapabilitiesKHR & operator=( VkVideoDecodeH264CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94562. {
  94563. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR const *>( &rhs );
  94564. return *this;
  94565. }
  94566. operator VkVideoDecodeH264CapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  94567. {
  94568. return *reinterpret_cast<const VkVideoDecodeH264CapabilitiesKHR *>( this );
  94569. }
  94570. operator VkVideoDecodeH264CapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  94571. {
  94572. return *reinterpret_cast<VkVideoDecodeH264CapabilitiesKHR *>( this );
  94573. }
  94574. #if defined( VULKAN_HPP_USE_REFLECT )
  94575. # if 14 <= VULKAN_HPP_CPP_VERSION
  94576. auto
  94577. # else
  94578. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, StdVideoH264LevelIdc const &, VULKAN_HPP_NAMESPACE::Offset2D const &>
  94579. # endif
  94580. reflect() const VULKAN_HPP_NOEXCEPT
  94581. {
  94582. return std::tie( sType, pNext, maxLevelIdc, fieldOffsetGranularity );
  94583. }
  94584. #endif
  94585. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  94586. std::strong_ordering operator<=>( VideoDecodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94587. {
  94588. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  94589. return cmp;
  94590. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  94591. return cmp;
  94592. if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ); cmp != 0 )
  94593. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  94594. if ( auto cmp = fieldOffsetGranularity <=> rhs.fieldOffsetGranularity; cmp != 0 )
  94595. return cmp;
  94596. return std::strong_ordering::equivalent;
  94597. }
  94598. #endif
  94599. bool operator==( VideoDecodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94600. {
  94601. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ) == 0 ) &&
  94602. ( fieldOffsetGranularity == rhs.fieldOffsetGranularity );
  94603. }
  94604. bool operator!=( VideoDecodeH264CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94605. {
  94606. return !operator==( rhs );
  94607. }
  94608. public:
  94609. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264CapabilitiesKHR;
  94610. void * pNext = {};
  94611. StdVideoH264LevelIdc maxLevelIdc = {};
  94612. VULKAN_HPP_NAMESPACE::Offset2D fieldOffsetGranularity = {};
  94613. };
  94614. template <>
  94615. struct CppType<StructureType, StructureType::eVideoDecodeH264CapabilitiesKHR>
  94616. {
  94617. using Type = VideoDecodeH264CapabilitiesKHR;
  94618. };
  94619. struct VideoDecodeH264DpbSlotInfoKHR
  94620. {
  94621. using NativeType = VkVideoDecodeH264DpbSlotInfoKHR;
  94622. static const bool allowDuplicate = false;
  94623. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264DpbSlotInfoKHR;
  94624. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  94625. VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoKHR( const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ = {},
  94626. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  94627. : pNext( pNext_ )
  94628. , pStdReferenceInfo( pStdReferenceInfo_ )
  94629. {
  94630. }
  94631. VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoKHR( VideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94632. VideoDecodeH264DpbSlotInfoKHR( VkVideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94633. : VideoDecodeH264DpbSlotInfoKHR( *reinterpret_cast<VideoDecodeH264DpbSlotInfoKHR const *>( &rhs ) )
  94634. {
  94635. }
  94636. VideoDecodeH264DpbSlotInfoKHR & operator=( VideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94637. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  94638. VideoDecodeH264DpbSlotInfoKHR & operator=( VkVideoDecodeH264DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94639. {
  94640. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR const *>( &rhs );
  94641. return *this;
  94642. }
  94643. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  94644. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264DpbSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  94645. {
  94646. pNext = pNext_;
  94647. return *this;
  94648. }
  94649. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264DpbSlotInfoKHR &
  94650. setPStdReferenceInfo( const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
  94651. {
  94652. pStdReferenceInfo = pStdReferenceInfo_;
  94653. return *this;
  94654. }
  94655. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  94656. operator VkVideoDecodeH264DpbSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  94657. {
  94658. return *reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoKHR *>( this );
  94659. }
  94660. operator VkVideoDecodeH264DpbSlotInfoKHR &() VULKAN_HPP_NOEXCEPT
  94661. {
  94662. return *reinterpret_cast<VkVideoDecodeH264DpbSlotInfoKHR *>( this );
  94663. }
  94664. #if defined( VULKAN_HPP_USE_REFLECT )
  94665. # if 14 <= VULKAN_HPP_CPP_VERSION
  94666. auto
  94667. # else
  94668. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoDecodeH264ReferenceInfo * const &>
  94669. # endif
  94670. reflect() const VULKAN_HPP_NOEXCEPT
  94671. {
  94672. return std::tie( sType, pNext, pStdReferenceInfo );
  94673. }
  94674. #endif
  94675. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  94676. auto operator<=>( VideoDecodeH264DpbSlotInfoKHR const & ) const = default;
  94677. #else
  94678. bool operator==( VideoDecodeH264DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94679. {
  94680. # if defined( VULKAN_HPP_USE_REFLECT )
  94681. return this->reflect() == rhs.reflect();
  94682. # else
  94683. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
  94684. # endif
  94685. }
  94686. bool operator!=( VideoDecodeH264DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94687. {
  94688. return !operator==( rhs );
  94689. }
  94690. #endif
  94691. public:
  94692. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264DpbSlotInfoKHR;
  94693. const void * pNext = {};
  94694. const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo = {};
  94695. };
  94696. template <>
  94697. struct CppType<StructureType, StructureType::eVideoDecodeH264DpbSlotInfoKHR>
  94698. {
  94699. using Type = VideoDecodeH264DpbSlotInfoKHR;
  94700. };
  94701. struct VideoDecodeH264PictureInfoKHR
  94702. {
  94703. using NativeType = VkVideoDecodeH264PictureInfoKHR;
  94704. static const bool allowDuplicate = false;
  94705. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264PictureInfoKHR;
  94706. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  94707. VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureInfoKHR( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ = {},
  94708. uint32_t sliceCount_ = {},
  94709. const uint32_t * pSliceOffsets_ = {},
  94710. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  94711. : pNext( pNext_ )
  94712. , pStdPictureInfo( pStdPictureInfo_ )
  94713. , sliceCount( sliceCount_ )
  94714. , pSliceOffsets( pSliceOffsets_ )
  94715. {
  94716. }
  94717. VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureInfoKHR( VideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94718. VideoDecodeH264PictureInfoKHR( VkVideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94719. : VideoDecodeH264PictureInfoKHR( *reinterpret_cast<VideoDecodeH264PictureInfoKHR const *>( &rhs ) )
  94720. {
  94721. }
  94722. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  94723. VideoDecodeH264PictureInfoKHR( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_,
  94724. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceOffsets_,
  94725. const void * pNext_ = nullptr )
  94726. : pNext( pNext_ ), pStdPictureInfo( pStdPictureInfo_ ), sliceCount( static_cast<uint32_t>( sliceOffsets_.size() ) ), pSliceOffsets( sliceOffsets_.data() )
  94727. {
  94728. }
  94729. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  94730. VideoDecodeH264PictureInfoKHR & operator=( VideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94731. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  94732. VideoDecodeH264PictureInfoKHR & operator=( VkVideoDecodeH264PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94733. {
  94734. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR const *>( &rhs );
  94735. return *this;
  94736. }
  94737. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  94738. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  94739. {
  94740. pNext = pNext_;
  94741. return *this;
  94742. }
  94743. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setPStdPictureInfo( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
  94744. {
  94745. pStdPictureInfo = pStdPictureInfo_;
  94746. return *this;
  94747. }
  94748. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setSliceCount( uint32_t sliceCount_ ) VULKAN_HPP_NOEXCEPT
  94749. {
  94750. sliceCount = sliceCount_;
  94751. return *this;
  94752. }
  94753. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoKHR & setPSliceOffsets( const uint32_t * pSliceOffsets_ ) VULKAN_HPP_NOEXCEPT
  94754. {
  94755. pSliceOffsets = pSliceOffsets_;
  94756. return *this;
  94757. }
  94758. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  94759. VideoDecodeH264PictureInfoKHR & setSliceOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceOffsets_ ) VULKAN_HPP_NOEXCEPT
  94760. {
  94761. sliceCount = static_cast<uint32_t>( sliceOffsets_.size() );
  94762. pSliceOffsets = sliceOffsets_.data();
  94763. return *this;
  94764. }
  94765. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  94766. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  94767. operator VkVideoDecodeH264PictureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  94768. {
  94769. return *reinterpret_cast<const VkVideoDecodeH264PictureInfoKHR *>( this );
  94770. }
  94771. operator VkVideoDecodeH264PictureInfoKHR &() VULKAN_HPP_NOEXCEPT
  94772. {
  94773. return *reinterpret_cast<VkVideoDecodeH264PictureInfoKHR *>( this );
  94774. }
  94775. #if defined( VULKAN_HPP_USE_REFLECT )
  94776. # if 14 <= VULKAN_HPP_CPP_VERSION
  94777. auto
  94778. # else
  94779. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  94780. const void * const &,
  94781. const StdVideoDecodeH264PictureInfo * const &,
  94782. uint32_t const &,
  94783. const uint32_t * const &>
  94784. # endif
  94785. reflect() const VULKAN_HPP_NOEXCEPT
  94786. {
  94787. return std::tie( sType, pNext, pStdPictureInfo, sliceCount, pSliceOffsets );
  94788. }
  94789. #endif
  94790. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  94791. auto operator<=>( VideoDecodeH264PictureInfoKHR const & ) const = default;
  94792. #else
  94793. bool operator==( VideoDecodeH264PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94794. {
  94795. # if defined( VULKAN_HPP_USE_REFLECT )
  94796. return this->reflect() == rhs.reflect();
  94797. # else
  94798. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdPictureInfo == rhs.pStdPictureInfo ) && ( sliceCount == rhs.sliceCount ) &&
  94799. ( pSliceOffsets == rhs.pSliceOffsets );
  94800. # endif
  94801. }
  94802. bool operator!=( VideoDecodeH264PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94803. {
  94804. return !operator==( rhs );
  94805. }
  94806. #endif
  94807. public:
  94808. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264PictureInfoKHR;
  94809. const void * pNext = {};
  94810. const StdVideoDecodeH264PictureInfo * pStdPictureInfo = {};
  94811. uint32_t sliceCount = {};
  94812. const uint32_t * pSliceOffsets = {};
  94813. };
  94814. template <>
  94815. struct CppType<StructureType, StructureType::eVideoDecodeH264PictureInfoKHR>
  94816. {
  94817. using Type = VideoDecodeH264PictureInfoKHR;
  94818. };
  94819. struct VideoDecodeH264ProfileInfoKHR
  94820. {
  94821. using NativeType = VkVideoDecodeH264ProfileInfoKHR;
  94822. static const bool allowDuplicate = false;
  94823. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264ProfileInfoKHR;
  94824. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  94825. VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileInfoKHR( StdVideoH264ProfileIdc stdProfileIdc_ = {},
  94826. VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout_ =
  94827. VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR::eProgressive,
  94828. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  94829. : pNext( pNext_ )
  94830. , stdProfileIdc( stdProfileIdc_ )
  94831. , pictureLayout( pictureLayout_ )
  94832. {
  94833. }
  94834. VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileInfoKHR( VideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94835. VideoDecodeH264ProfileInfoKHR( VkVideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94836. : VideoDecodeH264ProfileInfoKHR( *reinterpret_cast<VideoDecodeH264ProfileInfoKHR const *>( &rhs ) )
  94837. {
  94838. }
  94839. VideoDecodeH264ProfileInfoKHR & operator=( VideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94840. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  94841. VideoDecodeH264ProfileInfoKHR & operator=( VkVideoDecodeH264ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94842. {
  94843. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR const *>( &rhs );
  94844. return *this;
  94845. }
  94846. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  94847. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  94848. {
  94849. pNext = pNext_;
  94850. return *this;
  94851. }
  94852. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoKHR & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
  94853. {
  94854. stdProfileIdc = stdProfileIdc_;
  94855. return *this;
  94856. }
  94857. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileInfoKHR &
  94858. setPictureLayout( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout_ ) VULKAN_HPP_NOEXCEPT
  94859. {
  94860. pictureLayout = pictureLayout_;
  94861. return *this;
  94862. }
  94863. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  94864. operator VkVideoDecodeH264ProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  94865. {
  94866. return *reinterpret_cast<const VkVideoDecodeH264ProfileInfoKHR *>( this );
  94867. }
  94868. operator VkVideoDecodeH264ProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
  94869. {
  94870. return *reinterpret_cast<VkVideoDecodeH264ProfileInfoKHR *>( this );
  94871. }
  94872. #if defined( VULKAN_HPP_USE_REFLECT )
  94873. # if 14 <= VULKAN_HPP_CPP_VERSION
  94874. auto
  94875. # else
  94876. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  94877. const void * const &,
  94878. StdVideoH264ProfileIdc const &,
  94879. VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR const &>
  94880. # endif
  94881. reflect() const VULKAN_HPP_NOEXCEPT
  94882. {
  94883. return std::tie( sType, pNext, stdProfileIdc, pictureLayout );
  94884. }
  94885. #endif
  94886. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  94887. std::strong_ordering operator<=>( VideoDecodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94888. {
  94889. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  94890. return cmp;
  94891. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  94892. return cmp;
  94893. if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ); cmp != 0 )
  94894. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  94895. if ( auto cmp = pictureLayout <=> rhs.pictureLayout; cmp != 0 )
  94896. return cmp;
  94897. return std::strong_ordering::equivalent;
  94898. }
  94899. #endif
  94900. bool operator==( VideoDecodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94901. {
  94902. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ) == 0 ) &&
  94903. ( pictureLayout == rhs.pictureLayout );
  94904. }
  94905. bool operator!=( VideoDecodeH264ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  94906. {
  94907. return !operator==( rhs );
  94908. }
  94909. public:
  94910. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264ProfileInfoKHR;
  94911. const void * pNext = {};
  94912. StdVideoH264ProfileIdc stdProfileIdc = {};
  94913. VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout = VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureLayoutFlagBitsKHR::eProgressive;
  94914. };
  94915. template <>
  94916. struct CppType<StructureType, StructureType::eVideoDecodeH264ProfileInfoKHR>
  94917. {
  94918. using Type = VideoDecodeH264ProfileInfoKHR;
  94919. };
  94920. struct VideoDecodeH264SessionParametersAddInfoKHR
  94921. {
  94922. using NativeType = VkVideoDecodeH264SessionParametersAddInfoKHR;
  94923. static const bool allowDuplicate = false;
  94924. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264SessionParametersAddInfoKHR;
  94925. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  94926. VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoKHR( uint32_t stdSPSCount_ = {},
  94927. const StdVideoH264SequenceParameterSet * pStdSPSs_ = {},
  94928. uint32_t stdPPSCount_ = {},
  94929. const StdVideoH264PictureParameterSet * pStdPPSs_ = {},
  94930. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  94931. : pNext( pNext_ )
  94932. , stdSPSCount( stdSPSCount_ )
  94933. , pStdSPSs( pStdSPSs_ )
  94934. , stdPPSCount( stdPPSCount_ )
  94935. , pStdPPSs( pStdPPSs_ )
  94936. {
  94937. }
  94938. VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoKHR( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94939. VideoDecodeH264SessionParametersAddInfoKHR( VkVideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94940. : VideoDecodeH264SessionParametersAddInfoKHR( *reinterpret_cast<VideoDecodeH264SessionParametersAddInfoKHR const *>( &rhs ) )
  94941. {
  94942. }
  94943. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  94944. VideoDecodeH264SessionParametersAddInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_,
  94945. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & stdPPSs_ = {},
  94946. const void * pNext_ = nullptr )
  94947. : pNext( pNext_ )
  94948. , stdSPSCount( static_cast<uint32_t>( stdSPSs_.size() ) )
  94949. , pStdSPSs( stdSPSs_.data() )
  94950. , stdPPSCount( static_cast<uint32_t>( stdPPSs_.size() ) )
  94951. , pStdPPSs( stdPPSs_.data() )
  94952. {
  94953. }
  94954. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  94955. VideoDecodeH264SessionParametersAddInfoKHR & operator=( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  94956. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  94957. VideoDecodeH264SessionParametersAddInfoKHR & operator=( VkVideoDecodeH264SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  94958. {
  94959. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR const *>( &rhs );
  94960. return *this;
  94961. }
  94962. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  94963. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  94964. {
  94965. pNext = pNext_;
  94966. return *this;
  94967. }
  94968. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
  94969. {
  94970. stdSPSCount = stdSPSCount_;
  94971. return *this;
  94972. }
  94973. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setPStdSPSs( const StdVideoH264SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
  94974. {
  94975. pStdSPSs = pStdSPSs_;
  94976. return *this;
  94977. }
  94978. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  94979. VideoDecodeH264SessionParametersAddInfoKHR &
  94980. setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
  94981. {
  94982. stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
  94983. pStdSPSs = stdSPSs_.data();
  94984. return *this;
  94985. }
  94986. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  94987. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
  94988. {
  94989. stdPPSCount = stdPPSCount_;
  94990. return *this;
  94991. }
  94992. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoKHR & setPStdPPSs( const StdVideoH264PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
  94993. {
  94994. pStdPPSs = pStdPPSs_;
  94995. return *this;
  94996. }
  94997. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  94998. VideoDecodeH264SessionParametersAddInfoKHR &
  94999. setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
  95000. {
  95001. stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
  95002. pStdPPSs = stdPPSs_.data();
  95003. return *this;
  95004. }
  95005. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  95006. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  95007. operator VkVideoDecodeH264SessionParametersAddInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  95008. {
  95009. return *reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoKHR *>( this );
  95010. }
  95011. operator VkVideoDecodeH264SessionParametersAddInfoKHR &() VULKAN_HPP_NOEXCEPT
  95012. {
  95013. return *reinterpret_cast<VkVideoDecodeH264SessionParametersAddInfoKHR *>( this );
  95014. }
  95015. #if defined( VULKAN_HPP_USE_REFLECT )
  95016. # if 14 <= VULKAN_HPP_CPP_VERSION
  95017. auto
  95018. # else
  95019. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  95020. const void * const &,
  95021. uint32_t const &,
  95022. const StdVideoH264SequenceParameterSet * const &,
  95023. uint32_t const &,
  95024. const StdVideoH264PictureParameterSet * const &>
  95025. # endif
  95026. reflect() const VULKAN_HPP_NOEXCEPT
  95027. {
  95028. return std::tie( sType, pNext, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
  95029. }
  95030. #endif
  95031. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  95032. auto operator<=>( VideoDecodeH264SessionParametersAddInfoKHR const & ) const = default;
  95033. #else
  95034. bool operator==( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95035. {
  95036. # if defined( VULKAN_HPP_USE_REFLECT )
  95037. return this->reflect() == rhs.reflect();
  95038. # else
  95039. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stdSPSCount == rhs.stdSPSCount ) && ( pStdSPSs == rhs.pStdSPSs ) &&
  95040. ( stdPPSCount == rhs.stdPPSCount ) && ( pStdPPSs == rhs.pStdPPSs );
  95041. # endif
  95042. }
  95043. bool operator!=( VideoDecodeH264SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95044. {
  95045. return !operator==( rhs );
  95046. }
  95047. #endif
  95048. public:
  95049. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264SessionParametersAddInfoKHR;
  95050. const void * pNext = {};
  95051. uint32_t stdSPSCount = {};
  95052. const StdVideoH264SequenceParameterSet * pStdSPSs = {};
  95053. uint32_t stdPPSCount = {};
  95054. const StdVideoH264PictureParameterSet * pStdPPSs = {};
  95055. };
  95056. template <>
  95057. struct CppType<StructureType, StructureType::eVideoDecodeH264SessionParametersAddInfoKHR>
  95058. {
  95059. using Type = VideoDecodeH264SessionParametersAddInfoKHR;
  95060. };
  95061. struct VideoDecodeH264SessionParametersCreateInfoKHR
  95062. {
  95063. using NativeType = VkVideoDecodeH264SessionParametersCreateInfoKHR;
  95064. static const bool allowDuplicate = false;
  95065. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264SessionParametersCreateInfoKHR;
  95066. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  95067. VULKAN_HPP_CONSTEXPR
  95068. VideoDecodeH264SessionParametersCreateInfoKHR( uint32_t maxStdSPSCount_ = {},
  95069. uint32_t maxStdPPSCount_ = {},
  95070. const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * pParametersAddInfo_ = {},
  95071. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  95072. : pNext( pNext_ )
  95073. , maxStdSPSCount( maxStdSPSCount_ )
  95074. , maxStdPPSCount( maxStdPPSCount_ )
  95075. , pParametersAddInfo( pParametersAddInfo_ )
  95076. {
  95077. }
  95078. VULKAN_HPP_CONSTEXPR
  95079. VideoDecodeH264SessionParametersCreateInfoKHR( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95080. VideoDecodeH264SessionParametersCreateInfoKHR( VkVideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95081. : VideoDecodeH264SessionParametersCreateInfoKHR( *reinterpret_cast<VideoDecodeH264SessionParametersCreateInfoKHR const *>( &rhs ) )
  95082. {
  95083. }
  95084. VideoDecodeH264SessionParametersCreateInfoKHR & operator=( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95085. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  95086. VideoDecodeH264SessionParametersCreateInfoKHR & operator=( VkVideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95087. {
  95088. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR const *>( &rhs );
  95089. return *this;
  95090. }
  95091. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  95092. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  95093. {
  95094. pNext = pNext_;
  95095. return *this;
  95096. }
  95097. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
  95098. {
  95099. maxStdSPSCount = maxStdSPSCount_;
  95100. return *this;
  95101. }
  95102. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
  95103. {
  95104. maxStdPPSCount = maxStdPPSCount_;
  95105. return *this;
  95106. }
  95107. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoKHR &
  95108. setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
  95109. {
  95110. pParametersAddInfo = pParametersAddInfo_;
  95111. return *this;
  95112. }
  95113. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  95114. operator VkVideoDecodeH264SessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  95115. {
  95116. return *reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoKHR *>( this );
  95117. }
  95118. operator VkVideoDecodeH264SessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  95119. {
  95120. return *reinterpret_cast<VkVideoDecodeH264SessionParametersCreateInfoKHR *>( this );
  95121. }
  95122. #if defined( VULKAN_HPP_USE_REFLECT )
  95123. # if 14 <= VULKAN_HPP_CPP_VERSION
  95124. auto
  95125. # else
  95126. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  95127. const void * const &,
  95128. uint32_t const &,
  95129. uint32_t const &,
  95130. const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * const &>
  95131. # endif
  95132. reflect() const VULKAN_HPP_NOEXCEPT
  95133. {
  95134. return std::tie( sType, pNext, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
  95135. }
  95136. #endif
  95137. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  95138. auto operator<=>( VideoDecodeH264SessionParametersCreateInfoKHR const & ) const = default;
  95139. #else
  95140. bool operator==( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95141. {
  95142. # if defined( VULKAN_HPP_USE_REFLECT )
  95143. return this->reflect() == rhs.reflect();
  95144. # else
  95145. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxStdSPSCount == rhs.maxStdSPSCount ) && ( maxStdPPSCount == rhs.maxStdPPSCount ) &&
  95146. ( pParametersAddInfo == rhs.pParametersAddInfo );
  95147. # endif
  95148. }
  95149. bool operator!=( VideoDecodeH264SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95150. {
  95151. return !operator==( rhs );
  95152. }
  95153. #endif
  95154. public:
  95155. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264SessionParametersCreateInfoKHR;
  95156. const void * pNext = {};
  95157. uint32_t maxStdSPSCount = {};
  95158. uint32_t maxStdPPSCount = {};
  95159. const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR * pParametersAddInfo = {};
  95160. };
  95161. template <>
  95162. struct CppType<StructureType, StructureType::eVideoDecodeH264SessionParametersCreateInfoKHR>
  95163. {
  95164. using Type = VideoDecodeH264SessionParametersCreateInfoKHR;
  95165. };
  95166. struct VideoDecodeH265CapabilitiesKHR
  95167. {
  95168. using NativeType = VkVideoDecodeH265CapabilitiesKHR;
  95169. static const bool allowDuplicate = false;
  95170. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265CapabilitiesKHR;
  95171. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  95172. VULKAN_HPP_CONSTEXPR VideoDecodeH265CapabilitiesKHR( StdVideoH265LevelIdc maxLevelIdc_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  95173. : pNext( pNext_ )
  95174. , maxLevelIdc( maxLevelIdc_ )
  95175. {
  95176. }
  95177. VULKAN_HPP_CONSTEXPR VideoDecodeH265CapabilitiesKHR( VideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95178. VideoDecodeH265CapabilitiesKHR( VkVideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95179. : VideoDecodeH265CapabilitiesKHR( *reinterpret_cast<VideoDecodeH265CapabilitiesKHR const *>( &rhs ) )
  95180. {
  95181. }
  95182. VideoDecodeH265CapabilitiesKHR & operator=( VideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95183. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  95184. VideoDecodeH265CapabilitiesKHR & operator=( VkVideoDecodeH265CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95185. {
  95186. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR const *>( &rhs );
  95187. return *this;
  95188. }
  95189. operator VkVideoDecodeH265CapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  95190. {
  95191. return *reinterpret_cast<const VkVideoDecodeH265CapabilitiesKHR *>( this );
  95192. }
  95193. operator VkVideoDecodeH265CapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  95194. {
  95195. return *reinterpret_cast<VkVideoDecodeH265CapabilitiesKHR *>( this );
  95196. }
  95197. #if defined( VULKAN_HPP_USE_REFLECT )
  95198. # if 14 <= VULKAN_HPP_CPP_VERSION
  95199. auto
  95200. # else
  95201. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, StdVideoH265LevelIdc const &>
  95202. # endif
  95203. reflect() const VULKAN_HPP_NOEXCEPT
  95204. {
  95205. return std::tie( sType, pNext, maxLevelIdc );
  95206. }
  95207. #endif
  95208. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  95209. std::strong_ordering operator<=>( VideoDecodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95210. {
  95211. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  95212. return cmp;
  95213. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  95214. return cmp;
  95215. if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ); cmp != 0 )
  95216. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  95217. return std::strong_ordering::equivalent;
  95218. }
  95219. #endif
  95220. bool operator==( VideoDecodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95221. {
  95222. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ) == 0 );
  95223. }
  95224. bool operator!=( VideoDecodeH265CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95225. {
  95226. return !operator==( rhs );
  95227. }
  95228. public:
  95229. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265CapabilitiesKHR;
  95230. void * pNext = {};
  95231. StdVideoH265LevelIdc maxLevelIdc = {};
  95232. };
  95233. template <>
  95234. struct CppType<StructureType, StructureType::eVideoDecodeH265CapabilitiesKHR>
  95235. {
  95236. using Type = VideoDecodeH265CapabilitiesKHR;
  95237. };
  95238. struct VideoDecodeH265DpbSlotInfoKHR
  95239. {
  95240. using NativeType = VkVideoDecodeH265DpbSlotInfoKHR;
  95241. static const bool allowDuplicate = false;
  95242. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265DpbSlotInfoKHR;
  95243. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  95244. VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoKHR( const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ = {},
  95245. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  95246. : pNext( pNext_ )
  95247. , pStdReferenceInfo( pStdReferenceInfo_ )
  95248. {
  95249. }
  95250. VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoKHR( VideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95251. VideoDecodeH265DpbSlotInfoKHR( VkVideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95252. : VideoDecodeH265DpbSlotInfoKHR( *reinterpret_cast<VideoDecodeH265DpbSlotInfoKHR const *>( &rhs ) )
  95253. {
  95254. }
  95255. VideoDecodeH265DpbSlotInfoKHR & operator=( VideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95256. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  95257. VideoDecodeH265DpbSlotInfoKHR & operator=( VkVideoDecodeH265DpbSlotInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95258. {
  95259. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR const *>( &rhs );
  95260. return *this;
  95261. }
  95262. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  95263. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265DpbSlotInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  95264. {
  95265. pNext = pNext_;
  95266. return *this;
  95267. }
  95268. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265DpbSlotInfoKHR &
  95269. setPStdReferenceInfo( const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
  95270. {
  95271. pStdReferenceInfo = pStdReferenceInfo_;
  95272. return *this;
  95273. }
  95274. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  95275. operator VkVideoDecodeH265DpbSlotInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  95276. {
  95277. return *reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoKHR *>( this );
  95278. }
  95279. operator VkVideoDecodeH265DpbSlotInfoKHR &() VULKAN_HPP_NOEXCEPT
  95280. {
  95281. return *reinterpret_cast<VkVideoDecodeH265DpbSlotInfoKHR *>( this );
  95282. }
  95283. #if defined( VULKAN_HPP_USE_REFLECT )
  95284. # if 14 <= VULKAN_HPP_CPP_VERSION
  95285. auto
  95286. # else
  95287. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoDecodeH265ReferenceInfo * const &>
  95288. # endif
  95289. reflect() const VULKAN_HPP_NOEXCEPT
  95290. {
  95291. return std::tie( sType, pNext, pStdReferenceInfo );
  95292. }
  95293. #endif
  95294. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  95295. auto operator<=>( VideoDecodeH265DpbSlotInfoKHR const & ) const = default;
  95296. #else
  95297. bool operator==( VideoDecodeH265DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95298. {
  95299. # if defined( VULKAN_HPP_USE_REFLECT )
  95300. return this->reflect() == rhs.reflect();
  95301. # else
  95302. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
  95303. # endif
  95304. }
  95305. bool operator!=( VideoDecodeH265DpbSlotInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95306. {
  95307. return !operator==( rhs );
  95308. }
  95309. #endif
  95310. public:
  95311. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265DpbSlotInfoKHR;
  95312. const void * pNext = {};
  95313. const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo = {};
  95314. };
  95315. template <>
  95316. struct CppType<StructureType, StructureType::eVideoDecodeH265DpbSlotInfoKHR>
  95317. {
  95318. using Type = VideoDecodeH265DpbSlotInfoKHR;
  95319. };
  95320. struct VideoDecodeH265PictureInfoKHR
  95321. {
  95322. using NativeType = VkVideoDecodeH265PictureInfoKHR;
  95323. static const bool allowDuplicate = false;
  95324. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265PictureInfoKHR;
  95325. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  95326. VULKAN_HPP_CONSTEXPR VideoDecodeH265PictureInfoKHR( const StdVideoDecodeH265PictureInfo * pStdPictureInfo_ = {},
  95327. uint32_t sliceSegmentCount_ = {},
  95328. const uint32_t * pSliceSegmentOffsets_ = {},
  95329. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  95330. : pNext( pNext_ )
  95331. , pStdPictureInfo( pStdPictureInfo_ )
  95332. , sliceSegmentCount( sliceSegmentCount_ )
  95333. , pSliceSegmentOffsets( pSliceSegmentOffsets_ )
  95334. {
  95335. }
  95336. VULKAN_HPP_CONSTEXPR VideoDecodeH265PictureInfoKHR( VideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95337. VideoDecodeH265PictureInfoKHR( VkVideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95338. : VideoDecodeH265PictureInfoKHR( *reinterpret_cast<VideoDecodeH265PictureInfoKHR const *>( &rhs ) )
  95339. {
  95340. }
  95341. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  95342. VideoDecodeH265PictureInfoKHR( const StdVideoDecodeH265PictureInfo * pStdPictureInfo_,
  95343. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceSegmentOffsets_,
  95344. const void * pNext_ = nullptr )
  95345. : pNext( pNext_ )
  95346. , pStdPictureInfo( pStdPictureInfo_ )
  95347. , sliceSegmentCount( static_cast<uint32_t>( sliceSegmentOffsets_.size() ) )
  95348. , pSliceSegmentOffsets( sliceSegmentOffsets_.data() )
  95349. {
  95350. }
  95351. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  95352. VideoDecodeH265PictureInfoKHR & operator=( VideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95353. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  95354. VideoDecodeH265PictureInfoKHR & operator=( VkVideoDecodeH265PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95355. {
  95356. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR const *>( &rhs );
  95357. return *this;
  95358. }
  95359. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  95360. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  95361. {
  95362. pNext = pNext_;
  95363. return *this;
  95364. }
  95365. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setPStdPictureInfo( const StdVideoDecodeH265PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
  95366. {
  95367. pStdPictureInfo = pStdPictureInfo_;
  95368. return *this;
  95369. }
  95370. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setSliceSegmentCount( uint32_t sliceSegmentCount_ ) VULKAN_HPP_NOEXCEPT
  95371. {
  95372. sliceSegmentCount = sliceSegmentCount_;
  95373. return *this;
  95374. }
  95375. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoKHR & setPSliceSegmentOffsets( const uint32_t * pSliceSegmentOffsets_ ) VULKAN_HPP_NOEXCEPT
  95376. {
  95377. pSliceSegmentOffsets = pSliceSegmentOffsets_;
  95378. return *this;
  95379. }
  95380. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  95381. VideoDecodeH265PictureInfoKHR &
  95382. setSliceSegmentOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & sliceSegmentOffsets_ ) VULKAN_HPP_NOEXCEPT
  95383. {
  95384. sliceSegmentCount = static_cast<uint32_t>( sliceSegmentOffsets_.size() );
  95385. pSliceSegmentOffsets = sliceSegmentOffsets_.data();
  95386. return *this;
  95387. }
  95388. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  95389. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  95390. operator VkVideoDecodeH265PictureInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  95391. {
  95392. return *reinterpret_cast<const VkVideoDecodeH265PictureInfoKHR *>( this );
  95393. }
  95394. operator VkVideoDecodeH265PictureInfoKHR &() VULKAN_HPP_NOEXCEPT
  95395. {
  95396. return *reinterpret_cast<VkVideoDecodeH265PictureInfoKHR *>( this );
  95397. }
  95398. #if defined( VULKAN_HPP_USE_REFLECT )
  95399. # if 14 <= VULKAN_HPP_CPP_VERSION
  95400. auto
  95401. # else
  95402. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  95403. const void * const &,
  95404. const StdVideoDecodeH265PictureInfo * const &,
  95405. uint32_t const &,
  95406. const uint32_t * const &>
  95407. # endif
  95408. reflect() const VULKAN_HPP_NOEXCEPT
  95409. {
  95410. return std::tie( sType, pNext, pStdPictureInfo, sliceSegmentCount, pSliceSegmentOffsets );
  95411. }
  95412. #endif
  95413. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  95414. auto operator<=>( VideoDecodeH265PictureInfoKHR const & ) const = default;
  95415. #else
  95416. bool operator==( VideoDecodeH265PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95417. {
  95418. # if defined( VULKAN_HPP_USE_REFLECT )
  95419. return this->reflect() == rhs.reflect();
  95420. # else
  95421. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdPictureInfo == rhs.pStdPictureInfo ) && ( sliceSegmentCount == rhs.sliceSegmentCount ) &&
  95422. ( pSliceSegmentOffsets == rhs.pSliceSegmentOffsets );
  95423. # endif
  95424. }
  95425. bool operator!=( VideoDecodeH265PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95426. {
  95427. return !operator==( rhs );
  95428. }
  95429. #endif
  95430. public:
  95431. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265PictureInfoKHR;
  95432. const void * pNext = {};
  95433. const StdVideoDecodeH265PictureInfo * pStdPictureInfo = {};
  95434. uint32_t sliceSegmentCount = {};
  95435. const uint32_t * pSliceSegmentOffsets = {};
  95436. };
  95437. template <>
  95438. struct CppType<StructureType, StructureType::eVideoDecodeH265PictureInfoKHR>
  95439. {
  95440. using Type = VideoDecodeH265PictureInfoKHR;
  95441. };
  95442. struct VideoDecodeH265ProfileInfoKHR
  95443. {
  95444. using NativeType = VkVideoDecodeH265ProfileInfoKHR;
  95445. static const bool allowDuplicate = false;
  95446. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265ProfileInfoKHR;
  95447. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  95448. VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileInfoKHR( StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  95449. : pNext( pNext_ )
  95450. , stdProfileIdc( stdProfileIdc_ )
  95451. {
  95452. }
  95453. VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileInfoKHR( VideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95454. VideoDecodeH265ProfileInfoKHR( VkVideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95455. : VideoDecodeH265ProfileInfoKHR( *reinterpret_cast<VideoDecodeH265ProfileInfoKHR const *>( &rhs ) )
  95456. {
  95457. }
  95458. VideoDecodeH265ProfileInfoKHR & operator=( VideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95459. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  95460. VideoDecodeH265ProfileInfoKHR & operator=( VkVideoDecodeH265ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95461. {
  95462. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR const *>( &rhs );
  95463. return *this;
  95464. }
  95465. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  95466. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265ProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  95467. {
  95468. pNext = pNext_;
  95469. return *this;
  95470. }
  95471. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265ProfileInfoKHR & setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
  95472. {
  95473. stdProfileIdc = stdProfileIdc_;
  95474. return *this;
  95475. }
  95476. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  95477. operator VkVideoDecodeH265ProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  95478. {
  95479. return *reinterpret_cast<const VkVideoDecodeH265ProfileInfoKHR *>( this );
  95480. }
  95481. operator VkVideoDecodeH265ProfileInfoKHR &() VULKAN_HPP_NOEXCEPT
  95482. {
  95483. return *reinterpret_cast<VkVideoDecodeH265ProfileInfoKHR *>( this );
  95484. }
  95485. #if defined( VULKAN_HPP_USE_REFLECT )
  95486. # if 14 <= VULKAN_HPP_CPP_VERSION
  95487. auto
  95488. # else
  95489. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH265ProfileIdc const &>
  95490. # endif
  95491. reflect() const VULKAN_HPP_NOEXCEPT
  95492. {
  95493. return std::tie( sType, pNext, stdProfileIdc );
  95494. }
  95495. #endif
  95496. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  95497. std::strong_ordering operator<=>( VideoDecodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95498. {
  95499. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  95500. return cmp;
  95501. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  95502. return cmp;
  95503. if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ); cmp != 0 )
  95504. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  95505. return std::strong_ordering::equivalent;
  95506. }
  95507. #endif
  95508. bool operator==( VideoDecodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95509. {
  95510. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ) == 0 );
  95511. }
  95512. bool operator!=( VideoDecodeH265ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95513. {
  95514. return !operator==( rhs );
  95515. }
  95516. public:
  95517. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265ProfileInfoKHR;
  95518. const void * pNext = {};
  95519. StdVideoH265ProfileIdc stdProfileIdc = {};
  95520. };
  95521. template <>
  95522. struct CppType<StructureType, StructureType::eVideoDecodeH265ProfileInfoKHR>
  95523. {
  95524. using Type = VideoDecodeH265ProfileInfoKHR;
  95525. };
  95526. struct VideoDecodeH265SessionParametersAddInfoKHR
  95527. {
  95528. using NativeType = VkVideoDecodeH265SessionParametersAddInfoKHR;
  95529. static const bool allowDuplicate = false;
  95530. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265SessionParametersAddInfoKHR;
  95531. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  95532. VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoKHR( uint32_t stdVPSCount_ = {},
  95533. const StdVideoH265VideoParameterSet * pStdVPSs_ = {},
  95534. uint32_t stdSPSCount_ = {},
  95535. const StdVideoH265SequenceParameterSet * pStdSPSs_ = {},
  95536. uint32_t stdPPSCount_ = {},
  95537. const StdVideoH265PictureParameterSet * pStdPPSs_ = {},
  95538. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  95539. : pNext( pNext_ )
  95540. , stdVPSCount( stdVPSCount_ )
  95541. , pStdVPSs( pStdVPSs_ )
  95542. , stdSPSCount( stdSPSCount_ )
  95543. , pStdSPSs( pStdSPSs_ )
  95544. , stdPPSCount( stdPPSCount_ )
  95545. , pStdPPSs( pStdPPSs_ )
  95546. {
  95547. }
  95548. VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoKHR( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95549. VideoDecodeH265SessionParametersAddInfoKHR( VkVideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95550. : VideoDecodeH265SessionParametersAddInfoKHR( *reinterpret_cast<VideoDecodeH265SessionParametersAddInfoKHR const *>( &rhs ) )
  95551. {
  95552. }
  95553. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  95554. VideoDecodeH265SessionParametersAddInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & stdVPSs_,
  95555. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ = {},
  95556. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & stdPPSs_ = {},
  95557. const void * pNext_ = nullptr )
  95558. : pNext( pNext_ )
  95559. , stdVPSCount( static_cast<uint32_t>( stdVPSs_.size() ) )
  95560. , pStdVPSs( stdVPSs_.data() )
  95561. , stdSPSCount( static_cast<uint32_t>( stdSPSs_.size() ) )
  95562. , pStdSPSs( stdSPSs_.data() )
  95563. , stdPPSCount( static_cast<uint32_t>( stdPPSs_.size() ) )
  95564. , pStdPPSs( stdPPSs_.data() )
  95565. {
  95566. }
  95567. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  95568. VideoDecodeH265SessionParametersAddInfoKHR & operator=( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95569. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  95570. VideoDecodeH265SessionParametersAddInfoKHR & operator=( VkVideoDecodeH265SessionParametersAddInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95571. {
  95572. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR const *>( &rhs );
  95573. return *this;
  95574. }
  95575. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  95576. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  95577. {
  95578. pNext = pNext_;
  95579. return *this;
  95580. }
  95581. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setStdVPSCount( uint32_t stdVPSCount_ ) VULKAN_HPP_NOEXCEPT
  95582. {
  95583. stdVPSCount = stdVPSCount_;
  95584. return *this;
  95585. }
  95586. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPStdVPSs( const StdVideoH265VideoParameterSet * pStdVPSs_ ) VULKAN_HPP_NOEXCEPT
  95587. {
  95588. pStdVPSs = pStdVPSs_;
  95589. return *this;
  95590. }
  95591. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  95592. VideoDecodeH265SessionParametersAddInfoKHR &
  95593. setStdVPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & stdVPSs_ ) VULKAN_HPP_NOEXCEPT
  95594. {
  95595. stdVPSCount = static_cast<uint32_t>( stdVPSs_.size() );
  95596. pStdVPSs = stdVPSs_.data();
  95597. return *this;
  95598. }
  95599. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  95600. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
  95601. {
  95602. stdSPSCount = stdSPSCount_;
  95603. return *this;
  95604. }
  95605. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPStdSPSs( const StdVideoH265SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
  95606. {
  95607. pStdSPSs = pStdSPSs_;
  95608. return *this;
  95609. }
  95610. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  95611. VideoDecodeH265SessionParametersAddInfoKHR &
  95612. setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
  95613. {
  95614. stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
  95615. pStdSPSs = stdSPSs_.data();
  95616. return *this;
  95617. }
  95618. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  95619. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
  95620. {
  95621. stdPPSCount = stdPPSCount_;
  95622. return *this;
  95623. }
  95624. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoKHR & setPStdPPSs( const StdVideoH265PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
  95625. {
  95626. pStdPPSs = pStdPPSs_;
  95627. return *this;
  95628. }
  95629. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  95630. VideoDecodeH265SessionParametersAddInfoKHR &
  95631. setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
  95632. {
  95633. stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
  95634. pStdPPSs = stdPPSs_.data();
  95635. return *this;
  95636. }
  95637. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  95638. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  95639. operator VkVideoDecodeH265SessionParametersAddInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  95640. {
  95641. return *reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoKHR *>( this );
  95642. }
  95643. operator VkVideoDecodeH265SessionParametersAddInfoKHR &() VULKAN_HPP_NOEXCEPT
  95644. {
  95645. return *reinterpret_cast<VkVideoDecodeH265SessionParametersAddInfoKHR *>( this );
  95646. }
  95647. #if defined( VULKAN_HPP_USE_REFLECT )
  95648. # if 14 <= VULKAN_HPP_CPP_VERSION
  95649. auto
  95650. # else
  95651. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  95652. const void * const &,
  95653. uint32_t const &,
  95654. const StdVideoH265VideoParameterSet * const &,
  95655. uint32_t const &,
  95656. const StdVideoH265SequenceParameterSet * const &,
  95657. uint32_t const &,
  95658. const StdVideoH265PictureParameterSet * const &>
  95659. # endif
  95660. reflect() const VULKAN_HPP_NOEXCEPT
  95661. {
  95662. return std::tie( sType, pNext, stdVPSCount, pStdVPSs, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
  95663. }
  95664. #endif
  95665. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  95666. auto operator<=>( VideoDecodeH265SessionParametersAddInfoKHR const & ) const = default;
  95667. #else
  95668. bool operator==( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95669. {
  95670. # if defined( VULKAN_HPP_USE_REFLECT )
  95671. return this->reflect() == rhs.reflect();
  95672. # else
  95673. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stdVPSCount == rhs.stdVPSCount ) && ( pStdVPSs == rhs.pStdVPSs ) &&
  95674. ( stdSPSCount == rhs.stdSPSCount ) && ( pStdSPSs == rhs.pStdSPSs ) && ( stdPPSCount == rhs.stdPPSCount ) && ( pStdPPSs == rhs.pStdPPSs );
  95675. # endif
  95676. }
  95677. bool operator!=( VideoDecodeH265SessionParametersAddInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95678. {
  95679. return !operator==( rhs );
  95680. }
  95681. #endif
  95682. public:
  95683. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265SessionParametersAddInfoKHR;
  95684. const void * pNext = {};
  95685. uint32_t stdVPSCount = {};
  95686. const StdVideoH265VideoParameterSet * pStdVPSs = {};
  95687. uint32_t stdSPSCount = {};
  95688. const StdVideoH265SequenceParameterSet * pStdSPSs = {};
  95689. uint32_t stdPPSCount = {};
  95690. const StdVideoH265PictureParameterSet * pStdPPSs = {};
  95691. };
  95692. template <>
  95693. struct CppType<StructureType, StructureType::eVideoDecodeH265SessionParametersAddInfoKHR>
  95694. {
  95695. using Type = VideoDecodeH265SessionParametersAddInfoKHR;
  95696. };
  95697. struct VideoDecodeH265SessionParametersCreateInfoKHR
  95698. {
  95699. using NativeType = VkVideoDecodeH265SessionParametersCreateInfoKHR;
  95700. static const bool allowDuplicate = false;
  95701. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265SessionParametersCreateInfoKHR;
  95702. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  95703. VULKAN_HPP_CONSTEXPR
  95704. VideoDecodeH265SessionParametersCreateInfoKHR( uint32_t maxStdVPSCount_ = {},
  95705. uint32_t maxStdSPSCount_ = {},
  95706. uint32_t maxStdPPSCount_ = {},
  95707. const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * pParametersAddInfo_ = {},
  95708. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  95709. : pNext( pNext_ )
  95710. , maxStdVPSCount( maxStdVPSCount_ )
  95711. , maxStdSPSCount( maxStdSPSCount_ )
  95712. , maxStdPPSCount( maxStdPPSCount_ )
  95713. , pParametersAddInfo( pParametersAddInfo_ )
  95714. {
  95715. }
  95716. VULKAN_HPP_CONSTEXPR
  95717. VideoDecodeH265SessionParametersCreateInfoKHR( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95718. VideoDecodeH265SessionParametersCreateInfoKHR( VkVideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95719. : VideoDecodeH265SessionParametersCreateInfoKHR( *reinterpret_cast<VideoDecodeH265SessionParametersCreateInfoKHR const *>( &rhs ) )
  95720. {
  95721. }
  95722. VideoDecodeH265SessionParametersCreateInfoKHR & operator=( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95723. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  95724. VideoDecodeH265SessionParametersCreateInfoKHR & operator=( VkVideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95725. {
  95726. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR const *>( &rhs );
  95727. return *this;
  95728. }
  95729. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  95730. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  95731. {
  95732. pNext = pNext_;
  95733. return *this;
  95734. }
  95735. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setMaxStdVPSCount( uint32_t maxStdVPSCount_ ) VULKAN_HPP_NOEXCEPT
  95736. {
  95737. maxStdVPSCount = maxStdVPSCount_;
  95738. return *this;
  95739. }
  95740. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
  95741. {
  95742. maxStdSPSCount = maxStdSPSCount_;
  95743. return *this;
  95744. }
  95745. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
  95746. {
  95747. maxStdPPSCount = maxStdPPSCount_;
  95748. return *this;
  95749. }
  95750. VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoKHR &
  95751. setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
  95752. {
  95753. pParametersAddInfo = pParametersAddInfo_;
  95754. return *this;
  95755. }
  95756. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  95757. operator VkVideoDecodeH265SessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  95758. {
  95759. return *reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoKHR *>( this );
  95760. }
  95761. operator VkVideoDecodeH265SessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  95762. {
  95763. return *reinterpret_cast<VkVideoDecodeH265SessionParametersCreateInfoKHR *>( this );
  95764. }
  95765. #if defined( VULKAN_HPP_USE_REFLECT )
  95766. # if 14 <= VULKAN_HPP_CPP_VERSION
  95767. auto
  95768. # else
  95769. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  95770. const void * const &,
  95771. uint32_t const &,
  95772. uint32_t const &,
  95773. uint32_t const &,
  95774. const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * const &>
  95775. # endif
  95776. reflect() const VULKAN_HPP_NOEXCEPT
  95777. {
  95778. return std::tie( sType, pNext, maxStdVPSCount, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
  95779. }
  95780. #endif
  95781. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  95782. auto operator<=>( VideoDecodeH265SessionParametersCreateInfoKHR const & ) const = default;
  95783. #else
  95784. bool operator==( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95785. {
  95786. # if defined( VULKAN_HPP_USE_REFLECT )
  95787. return this->reflect() == rhs.reflect();
  95788. # else
  95789. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxStdVPSCount == rhs.maxStdVPSCount ) && ( maxStdSPSCount == rhs.maxStdSPSCount ) &&
  95790. ( maxStdPPSCount == rhs.maxStdPPSCount ) && ( pParametersAddInfo == rhs.pParametersAddInfo );
  95791. # endif
  95792. }
  95793. bool operator!=( VideoDecodeH265SessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95794. {
  95795. return !operator==( rhs );
  95796. }
  95797. #endif
  95798. public:
  95799. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265SessionParametersCreateInfoKHR;
  95800. const void * pNext = {};
  95801. uint32_t maxStdVPSCount = {};
  95802. uint32_t maxStdSPSCount = {};
  95803. uint32_t maxStdPPSCount = {};
  95804. const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR * pParametersAddInfo = {};
  95805. };
  95806. template <>
  95807. struct CppType<StructureType, StructureType::eVideoDecodeH265SessionParametersCreateInfoKHR>
  95808. {
  95809. using Type = VideoDecodeH265SessionParametersCreateInfoKHR;
  95810. };
  95811. struct VideoDecodeInfoKHR
  95812. {
  95813. using NativeType = VkVideoDecodeInfoKHR;
  95814. static const bool allowDuplicate = false;
  95815. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeInfoKHR;
  95816. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  95817. VULKAN_HPP_CONSTEXPR VideoDecodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_ = {},
  95818. VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {},
  95819. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_ = {},
  95820. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_ = {},
  95821. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR dstPictureResource_ = {},
  95822. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ = {},
  95823. uint32_t referenceSlotCount_ = {},
  95824. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {},
  95825. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  95826. : pNext( pNext_ )
  95827. , flags( flags_ )
  95828. , srcBuffer( srcBuffer_ )
  95829. , srcBufferOffset( srcBufferOffset_ )
  95830. , srcBufferRange( srcBufferRange_ )
  95831. , dstPictureResource( dstPictureResource_ )
  95832. , pSetupReferenceSlot( pSetupReferenceSlot_ )
  95833. , referenceSlotCount( referenceSlotCount_ )
  95834. , pReferenceSlots( pReferenceSlots_ )
  95835. {
  95836. }
  95837. VULKAN_HPP_CONSTEXPR VideoDecodeInfoKHR( VideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95838. VideoDecodeInfoKHR( VkVideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : VideoDecodeInfoKHR( *reinterpret_cast<VideoDecodeInfoKHR const *>( &rhs ) ) {}
  95839. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  95840. VideoDecodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_,
  95841. VULKAN_HPP_NAMESPACE::Buffer srcBuffer_,
  95842. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_,
  95843. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_,
  95844. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR dstPictureResource_,
  95845. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_,
  95846. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_,
  95847. const void * pNext_ = nullptr )
  95848. : pNext( pNext_ )
  95849. , flags( flags_ )
  95850. , srcBuffer( srcBuffer_ )
  95851. , srcBufferOffset( srcBufferOffset_ )
  95852. , srcBufferRange( srcBufferRange_ )
  95853. , dstPictureResource( dstPictureResource_ )
  95854. , pSetupReferenceSlot( pSetupReferenceSlot_ )
  95855. , referenceSlotCount( static_cast<uint32_t>( referenceSlots_.size() ) )
  95856. , pReferenceSlots( referenceSlots_.data() )
  95857. {
  95858. }
  95859. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  95860. VideoDecodeInfoKHR & operator=( VideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  95861. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  95862. VideoDecodeInfoKHR & operator=( VkVideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  95863. {
  95864. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR const *>( &rhs );
  95865. return *this;
  95866. }
  95867. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  95868. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  95869. {
  95870. pNext = pNext_;
  95871. return *this;
  95872. }
  95873. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  95874. {
  95875. flags = flags_;
  95876. return *this;
  95877. }
  95878. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT
  95879. {
  95880. srcBuffer = srcBuffer_;
  95881. return *this;
  95882. }
  95883. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setSrcBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_ ) VULKAN_HPP_NOEXCEPT
  95884. {
  95885. srcBufferOffset = srcBufferOffset_;
  95886. return *this;
  95887. }
  95888. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setSrcBufferRange( VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_ ) VULKAN_HPP_NOEXCEPT
  95889. {
  95890. srcBufferRange = srcBufferRange_;
  95891. return *this;
  95892. }
  95893. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR &
  95894. setDstPictureResource( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & dstPictureResource_ ) VULKAN_HPP_NOEXCEPT
  95895. {
  95896. dstPictureResource = dstPictureResource_;
  95897. return *this;
  95898. }
  95899. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR &
  95900. setPSetupReferenceSlot( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT
  95901. {
  95902. pSetupReferenceSlot = pSetupReferenceSlot_;
  95903. return *this;
  95904. }
  95905. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT
  95906. {
  95907. referenceSlotCount = referenceSlotCount_;
  95908. return *this;
  95909. }
  95910. VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR &
  95911. setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
  95912. {
  95913. pReferenceSlots = pReferenceSlots_;
  95914. return *this;
  95915. }
  95916. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  95917. VideoDecodeInfoKHR & setReferenceSlots(
  95918. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
  95919. {
  95920. referenceSlotCount = static_cast<uint32_t>( referenceSlots_.size() );
  95921. pReferenceSlots = referenceSlots_.data();
  95922. return *this;
  95923. }
  95924. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  95925. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  95926. operator VkVideoDecodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  95927. {
  95928. return *reinterpret_cast<const VkVideoDecodeInfoKHR *>( this );
  95929. }
  95930. operator VkVideoDecodeInfoKHR &() VULKAN_HPP_NOEXCEPT
  95931. {
  95932. return *reinterpret_cast<VkVideoDecodeInfoKHR *>( this );
  95933. }
  95934. #if defined( VULKAN_HPP_USE_REFLECT )
  95935. # if 14 <= VULKAN_HPP_CPP_VERSION
  95936. auto
  95937. # else
  95938. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  95939. const void * const &,
  95940. VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR const &,
  95941. VULKAN_HPP_NAMESPACE::Buffer const &,
  95942. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  95943. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  95944. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const &,
  95945. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &,
  95946. uint32_t const &,
  95947. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &>
  95948. # endif
  95949. reflect() const VULKAN_HPP_NOEXCEPT
  95950. {
  95951. return std::tie(
  95952. sType, pNext, flags, srcBuffer, srcBufferOffset, srcBufferRange, dstPictureResource, pSetupReferenceSlot, referenceSlotCount, pReferenceSlots );
  95953. }
  95954. #endif
  95955. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  95956. auto operator<=>( VideoDecodeInfoKHR const & ) const = default;
  95957. #else
  95958. bool operator==( VideoDecodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95959. {
  95960. # if defined( VULKAN_HPP_USE_REFLECT )
  95961. return this->reflect() == rhs.reflect();
  95962. # else
  95963. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( srcBuffer == rhs.srcBuffer ) &&
  95964. ( srcBufferOffset == rhs.srcBufferOffset ) && ( srcBufferRange == rhs.srcBufferRange ) && ( dstPictureResource == rhs.dstPictureResource ) &&
  95965. ( pSetupReferenceSlot == rhs.pSetupReferenceSlot ) && ( referenceSlotCount == rhs.referenceSlotCount ) &&
  95966. ( pReferenceSlots == rhs.pReferenceSlots );
  95967. # endif
  95968. }
  95969. bool operator!=( VideoDecodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  95970. {
  95971. return !operator==( rhs );
  95972. }
  95973. #endif
  95974. public:
  95975. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeInfoKHR;
  95976. const void * pNext = {};
  95977. VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags = {};
  95978. VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {};
  95979. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset = {};
  95980. VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange = {};
  95981. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR dstPictureResource = {};
  95982. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot = {};
  95983. uint32_t referenceSlotCount = {};
  95984. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots = {};
  95985. };
  95986. template <>
  95987. struct CppType<StructureType, StructureType::eVideoDecodeInfoKHR>
  95988. {
  95989. using Type = VideoDecodeInfoKHR;
  95990. };
  95991. struct VideoDecodeUsageInfoKHR
  95992. {
  95993. using NativeType = VkVideoDecodeUsageInfoKHR;
  95994. static const bool allowDuplicate = false;
  95995. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeUsageInfoKHR;
  95996. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  95997. VULKAN_HPP_CONSTEXPR VideoDecodeUsageInfoKHR( VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR videoUsageHints_ = {},
  95998. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  95999. : pNext( pNext_ )
  96000. , videoUsageHints( videoUsageHints_ )
  96001. {
  96002. }
  96003. VULKAN_HPP_CONSTEXPR VideoDecodeUsageInfoKHR( VideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96004. VideoDecodeUsageInfoKHR( VkVideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  96005. : VideoDecodeUsageInfoKHR( *reinterpret_cast<VideoDecodeUsageInfoKHR const *>( &rhs ) )
  96006. {
  96007. }
  96008. VideoDecodeUsageInfoKHR & operator=( VideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96009. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  96010. VideoDecodeUsageInfoKHR & operator=( VkVideoDecodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  96011. {
  96012. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR const *>( &rhs );
  96013. return *this;
  96014. }
  96015. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  96016. VULKAN_HPP_CONSTEXPR_14 VideoDecodeUsageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  96017. {
  96018. pNext = pNext_;
  96019. return *this;
  96020. }
  96021. VULKAN_HPP_CONSTEXPR_14 VideoDecodeUsageInfoKHR & setVideoUsageHints( VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR videoUsageHints_ ) VULKAN_HPP_NOEXCEPT
  96022. {
  96023. videoUsageHints = videoUsageHints_;
  96024. return *this;
  96025. }
  96026. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  96027. operator VkVideoDecodeUsageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  96028. {
  96029. return *reinterpret_cast<const VkVideoDecodeUsageInfoKHR *>( this );
  96030. }
  96031. operator VkVideoDecodeUsageInfoKHR &() VULKAN_HPP_NOEXCEPT
  96032. {
  96033. return *reinterpret_cast<VkVideoDecodeUsageInfoKHR *>( this );
  96034. }
  96035. #if defined( VULKAN_HPP_USE_REFLECT )
  96036. # if 14 <= VULKAN_HPP_CPP_VERSION
  96037. auto
  96038. # else
  96039. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR const &>
  96040. # endif
  96041. reflect() const VULKAN_HPP_NOEXCEPT
  96042. {
  96043. return std::tie( sType, pNext, videoUsageHints );
  96044. }
  96045. #endif
  96046. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  96047. auto operator<=>( VideoDecodeUsageInfoKHR const & ) const = default;
  96048. #else
  96049. bool operator==( VideoDecodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  96050. {
  96051. # if defined( VULKAN_HPP_USE_REFLECT )
  96052. return this->reflect() == rhs.reflect();
  96053. # else
  96054. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoUsageHints == rhs.videoUsageHints );
  96055. # endif
  96056. }
  96057. bool operator!=( VideoDecodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  96058. {
  96059. return !operator==( rhs );
  96060. }
  96061. #endif
  96062. public:
  96063. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeUsageInfoKHR;
  96064. const void * pNext = {};
  96065. VULKAN_HPP_NAMESPACE::VideoDecodeUsageFlagsKHR videoUsageHints = {};
  96066. };
  96067. template <>
  96068. struct CppType<StructureType, StructureType::eVideoDecodeUsageInfoKHR>
  96069. {
  96070. using Type = VideoDecodeUsageInfoKHR;
  96071. };
  96072. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  96073. struct VideoEncodeCapabilitiesKHR
  96074. {
  96075. using NativeType = VkVideoEncodeCapabilitiesKHR;
  96076. static const bool allowDuplicate = false;
  96077. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeCapabilitiesKHR;
  96078. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  96079. VULKAN_HPP_CONSTEXPR VideoEncodeCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR flags_ = {},
  96080. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR rateControlModes_ = {},
  96081. uint32_t maxRateControlLayers_ = {},
  96082. uint64_t maxBitrate_ = {},
  96083. uint32_t maxQualityLevels_ = {},
  96084. VULKAN_HPP_NAMESPACE::Extent2D encodeInputPictureGranularity_ = {},
  96085. VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags_ = {},
  96086. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  96087. : pNext( pNext_ )
  96088. , flags( flags_ )
  96089. , rateControlModes( rateControlModes_ )
  96090. , maxRateControlLayers( maxRateControlLayers_ )
  96091. , maxBitrate( maxBitrate_ )
  96092. , maxQualityLevels( maxQualityLevels_ )
  96093. , encodeInputPictureGranularity( encodeInputPictureGranularity_ )
  96094. , supportedEncodeFeedbackFlags( supportedEncodeFeedbackFlags_ )
  96095. {
  96096. }
  96097. VULKAN_HPP_CONSTEXPR VideoEncodeCapabilitiesKHR( VideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96098. VideoEncodeCapabilitiesKHR( VkVideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  96099. : VideoEncodeCapabilitiesKHR( *reinterpret_cast<VideoEncodeCapabilitiesKHR const *>( &rhs ) )
  96100. {
  96101. }
  96102. VideoEncodeCapabilitiesKHR & operator=( VideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96103. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  96104. VideoEncodeCapabilitiesKHR & operator=( VkVideoEncodeCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  96105. {
  96106. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR const *>( &rhs );
  96107. return *this;
  96108. }
  96109. operator VkVideoEncodeCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT
  96110. {
  96111. return *reinterpret_cast<const VkVideoEncodeCapabilitiesKHR *>( this );
  96112. }
  96113. operator VkVideoEncodeCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT
  96114. {
  96115. return *reinterpret_cast<VkVideoEncodeCapabilitiesKHR *>( this );
  96116. }
  96117. # if defined( VULKAN_HPP_USE_REFLECT )
  96118. # if 14 <= VULKAN_HPP_CPP_VERSION
  96119. auto
  96120. # else
  96121. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  96122. void * const &,
  96123. VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR const &,
  96124. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR const &,
  96125. uint32_t const &,
  96126. uint64_t const &,
  96127. uint32_t const &,
  96128. VULKAN_HPP_NAMESPACE::Extent2D const &,
  96129. VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR const &>
  96130. # endif
  96131. reflect() const VULKAN_HPP_NOEXCEPT
  96132. {
  96133. return std::tie( sType,
  96134. pNext,
  96135. flags,
  96136. rateControlModes,
  96137. maxRateControlLayers,
  96138. maxBitrate,
  96139. maxQualityLevels,
  96140. encodeInputPictureGranularity,
  96141. supportedEncodeFeedbackFlags );
  96142. }
  96143. # endif
  96144. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  96145. auto operator<=>( VideoEncodeCapabilitiesKHR const & ) const = default;
  96146. # else
  96147. bool operator==( VideoEncodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  96148. {
  96149. # if defined( VULKAN_HPP_USE_REFLECT )
  96150. return this->reflect() == rhs.reflect();
  96151. # else
  96152. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( rateControlModes == rhs.rateControlModes ) &&
  96153. ( maxRateControlLayers == rhs.maxRateControlLayers ) && ( maxBitrate == rhs.maxBitrate ) && ( maxQualityLevels == rhs.maxQualityLevels ) &&
  96154. ( encodeInputPictureGranularity == rhs.encodeInputPictureGranularity ) && ( supportedEncodeFeedbackFlags == rhs.supportedEncodeFeedbackFlags );
  96155. # endif
  96156. }
  96157. bool operator!=( VideoEncodeCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  96158. {
  96159. return !operator==( rhs );
  96160. }
  96161. # endif
  96162. public:
  96163. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeCapabilitiesKHR;
  96164. void * pNext = {};
  96165. VULKAN_HPP_NAMESPACE::VideoEncodeCapabilityFlagsKHR flags = {};
  96166. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagsKHR rateControlModes = {};
  96167. uint32_t maxRateControlLayers = {};
  96168. uint64_t maxBitrate = {};
  96169. uint32_t maxQualityLevels = {};
  96170. VULKAN_HPP_NAMESPACE::Extent2D encodeInputPictureGranularity = {};
  96171. VULKAN_HPP_NAMESPACE::VideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags = {};
  96172. };
  96173. template <>
  96174. struct CppType<StructureType, StructureType::eVideoEncodeCapabilitiesKHR>
  96175. {
  96176. using Type = VideoEncodeCapabilitiesKHR;
  96177. };
  96178. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  96179. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  96180. struct VideoEncodeH264CapabilitiesEXT
  96181. {
  96182. using NativeType = VkVideoEncodeH264CapabilitiesEXT;
  96183. static const bool allowDuplicate = false;
  96184. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264CapabilitiesEXT;
  96185. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  96186. VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesEXT( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT flags_ = {},
  96187. StdVideoH264LevelIdc maxLevelIdc_ = {},
  96188. uint32_t maxSliceCount_ = {},
  96189. uint32_t maxPPictureL0ReferenceCount_ = {},
  96190. uint32_t maxBPictureL0ReferenceCount_ = {},
  96191. uint32_t maxL1ReferenceCount_ = {},
  96192. uint32_t maxTemporalLayerCount_ = {},
  96193. VULKAN_HPP_NAMESPACE::Bool32 expectDyadicTemporalLayerPattern_ = {},
  96194. int32_t minQp_ = {},
  96195. int32_t maxQp_ = {},
  96196. VULKAN_HPP_NAMESPACE::Bool32 prefersGopRemainingFrames_ = {},
  96197. VULKAN_HPP_NAMESPACE::Bool32 requiresGopRemainingFrames_ = {},
  96198. VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagsEXT stdSyntaxFlags_ = {},
  96199. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  96200. : pNext( pNext_ )
  96201. , flags( flags_ )
  96202. , maxLevelIdc( maxLevelIdc_ )
  96203. , maxSliceCount( maxSliceCount_ )
  96204. , maxPPictureL0ReferenceCount( maxPPictureL0ReferenceCount_ )
  96205. , maxBPictureL0ReferenceCount( maxBPictureL0ReferenceCount_ )
  96206. , maxL1ReferenceCount( maxL1ReferenceCount_ )
  96207. , maxTemporalLayerCount( maxTemporalLayerCount_ )
  96208. , expectDyadicTemporalLayerPattern( expectDyadicTemporalLayerPattern_ )
  96209. , minQp( minQp_ )
  96210. , maxQp( maxQp_ )
  96211. , prefersGopRemainingFrames( prefersGopRemainingFrames_ )
  96212. , requiresGopRemainingFrames( requiresGopRemainingFrames_ )
  96213. , stdSyntaxFlags( stdSyntaxFlags_ )
  96214. {
  96215. }
  96216. VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesEXT( VideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96217. VideoEncodeH264CapabilitiesEXT( VkVideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96218. : VideoEncodeH264CapabilitiesEXT( *reinterpret_cast<VideoEncodeH264CapabilitiesEXT const *>( &rhs ) )
  96219. {
  96220. }
  96221. VideoEncodeH264CapabilitiesEXT & operator=( VideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96222. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  96223. VideoEncodeH264CapabilitiesEXT & operator=( VkVideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96224. {
  96225. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT const *>( &rhs );
  96226. return *this;
  96227. }
  96228. operator VkVideoEncodeH264CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
  96229. {
  96230. return *reinterpret_cast<const VkVideoEncodeH264CapabilitiesEXT *>( this );
  96231. }
  96232. operator VkVideoEncodeH264CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
  96233. {
  96234. return *reinterpret_cast<VkVideoEncodeH264CapabilitiesEXT *>( this );
  96235. }
  96236. # if defined( VULKAN_HPP_USE_REFLECT )
  96237. # if 14 <= VULKAN_HPP_CPP_VERSION
  96238. auto
  96239. # else
  96240. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  96241. void * const &,
  96242. VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT const &,
  96243. StdVideoH264LevelIdc const &,
  96244. uint32_t const &,
  96245. uint32_t const &,
  96246. uint32_t const &,
  96247. uint32_t const &,
  96248. uint32_t const &,
  96249. VULKAN_HPP_NAMESPACE::Bool32 const &,
  96250. int32_t const &,
  96251. int32_t const &,
  96252. VULKAN_HPP_NAMESPACE::Bool32 const &,
  96253. VULKAN_HPP_NAMESPACE::Bool32 const &,
  96254. VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagsEXT const &>
  96255. # endif
  96256. reflect() const VULKAN_HPP_NOEXCEPT
  96257. {
  96258. return std::tie( sType,
  96259. pNext,
  96260. flags,
  96261. maxLevelIdc,
  96262. maxSliceCount,
  96263. maxPPictureL0ReferenceCount,
  96264. maxBPictureL0ReferenceCount,
  96265. maxL1ReferenceCount,
  96266. maxTemporalLayerCount,
  96267. expectDyadicTemporalLayerPattern,
  96268. minQp,
  96269. maxQp,
  96270. prefersGopRemainingFrames,
  96271. requiresGopRemainingFrames,
  96272. stdSyntaxFlags );
  96273. }
  96274. # endif
  96275. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  96276. std::strong_ordering operator<=>( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96277. {
  96278. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  96279. return cmp;
  96280. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  96281. return cmp;
  96282. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  96283. return cmp;
  96284. if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ); cmp != 0 )
  96285. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  96286. if ( auto cmp = maxSliceCount <=> rhs.maxSliceCount; cmp != 0 )
  96287. return cmp;
  96288. if ( auto cmp = maxPPictureL0ReferenceCount <=> rhs.maxPPictureL0ReferenceCount; cmp != 0 )
  96289. return cmp;
  96290. if ( auto cmp = maxBPictureL0ReferenceCount <=> rhs.maxBPictureL0ReferenceCount; cmp != 0 )
  96291. return cmp;
  96292. if ( auto cmp = maxL1ReferenceCount <=> rhs.maxL1ReferenceCount; cmp != 0 )
  96293. return cmp;
  96294. if ( auto cmp = maxTemporalLayerCount <=> rhs.maxTemporalLayerCount; cmp != 0 )
  96295. return cmp;
  96296. if ( auto cmp = expectDyadicTemporalLayerPattern <=> rhs.expectDyadicTemporalLayerPattern; cmp != 0 )
  96297. return cmp;
  96298. if ( auto cmp = minQp <=> rhs.minQp; cmp != 0 )
  96299. return cmp;
  96300. if ( auto cmp = maxQp <=> rhs.maxQp; cmp != 0 )
  96301. return cmp;
  96302. if ( auto cmp = prefersGopRemainingFrames <=> rhs.prefersGopRemainingFrames; cmp != 0 )
  96303. return cmp;
  96304. if ( auto cmp = requiresGopRemainingFrames <=> rhs.requiresGopRemainingFrames; cmp != 0 )
  96305. return cmp;
  96306. if ( auto cmp = stdSyntaxFlags <=> rhs.stdSyntaxFlags; cmp != 0 )
  96307. return cmp;
  96308. return std::strong_ordering::equivalent;
  96309. }
  96310. # endif
  96311. bool operator==( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96312. {
  96313. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  96314. ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ) == 0 ) && ( maxSliceCount == rhs.maxSliceCount ) &&
  96315. ( maxPPictureL0ReferenceCount == rhs.maxPPictureL0ReferenceCount ) && ( maxBPictureL0ReferenceCount == rhs.maxBPictureL0ReferenceCount ) &&
  96316. ( maxL1ReferenceCount == rhs.maxL1ReferenceCount ) && ( maxTemporalLayerCount == rhs.maxTemporalLayerCount ) &&
  96317. ( expectDyadicTemporalLayerPattern == rhs.expectDyadicTemporalLayerPattern ) && ( minQp == rhs.minQp ) && ( maxQp == rhs.maxQp ) &&
  96318. ( prefersGopRemainingFrames == rhs.prefersGopRemainingFrames ) && ( requiresGopRemainingFrames == rhs.requiresGopRemainingFrames ) &&
  96319. ( stdSyntaxFlags == rhs.stdSyntaxFlags );
  96320. }
  96321. bool operator!=( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96322. {
  96323. return !operator==( rhs );
  96324. }
  96325. public:
  96326. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264CapabilitiesEXT;
  96327. void * pNext = {};
  96328. VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilityFlagsEXT flags = {};
  96329. StdVideoH264LevelIdc maxLevelIdc = {};
  96330. uint32_t maxSliceCount = {};
  96331. uint32_t maxPPictureL0ReferenceCount = {};
  96332. uint32_t maxBPictureL0ReferenceCount = {};
  96333. uint32_t maxL1ReferenceCount = {};
  96334. uint32_t maxTemporalLayerCount = {};
  96335. VULKAN_HPP_NAMESPACE::Bool32 expectDyadicTemporalLayerPattern = {};
  96336. int32_t minQp = {};
  96337. int32_t maxQp = {};
  96338. VULKAN_HPP_NAMESPACE::Bool32 prefersGopRemainingFrames = {};
  96339. VULKAN_HPP_NAMESPACE::Bool32 requiresGopRemainingFrames = {};
  96340. VULKAN_HPP_NAMESPACE::VideoEncodeH264StdFlagsEXT stdSyntaxFlags = {};
  96341. };
  96342. template <>
  96343. struct CppType<StructureType, StructureType::eVideoEncodeH264CapabilitiesEXT>
  96344. {
  96345. using Type = VideoEncodeH264CapabilitiesEXT;
  96346. };
  96347. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  96348. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  96349. struct VideoEncodeH264DpbSlotInfoEXT
  96350. {
  96351. using NativeType = VkVideoEncodeH264DpbSlotInfoEXT;
  96352. static const bool allowDuplicate = false;
  96353. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264DpbSlotInfoEXT;
  96354. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  96355. VULKAN_HPP_CONSTEXPR VideoEncodeH264DpbSlotInfoEXT( const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo_ = {},
  96356. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  96357. : pNext( pNext_ )
  96358. , pStdReferenceInfo( pStdReferenceInfo_ )
  96359. {
  96360. }
  96361. VULKAN_HPP_CONSTEXPR VideoEncodeH264DpbSlotInfoEXT( VideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96362. VideoEncodeH264DpbSlotInfoEXT( VkVideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96363. : VideoEncodeH264DpbSlotInfoEXT( *reinterpret_cast<VideoEncodeH264DpbSlotInfoEXT const *>( &rhs ) )
  96364. {
  96365. }
  96366. VideoEncodeH264DpbSlotInfoEXT & operator=( VideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96367. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  96368. VideoEncodeH264DpbSlotInfoEXT & operator=( VkVideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96369. {
  96370. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT const *>( &rhs );
  96371. return *this;
  96372. }
  96373. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  96374. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  96375. {
  96376. pNext = pNext_;
  96377. return *this;
  96378. }
  96379. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoEXT &
  96380. setPStdReferenceInfo( const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
  96381. {
  96382. pStdReferenceInfo = pStdReferenceInfo_;
  96383. return *this;
  96384. }
  96385. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  96386. operator VkVideoEncodeH264DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  96387. {
  96388. return *reinterpret_cast<const VkVideoEncodeH264DpbSlotInfoEXT *>( this );
  96389. }
  96390. operator VkVideoEncodeH264DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
  96391. {
  96392. return *reinterpret_cast<VkVideoEncodeH264DpbSlotInfoEXT *>( this );
  96393. }
  96394. # if defined( VULKAN_HPP_USE_REFLECT )
  96395. # if 14 <= VULKAN_HPP_CPP_VERSION
  96396. auto
  96397. # else
  96398. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoEncodeH264ReferenceInfo * const &>
  96399. # endif
  96400. reflect() const VULKAN_HPP_NOEXCEPT
  96401. {
  96402. return std::tie( sType, pNext, pStdReferenceInfo );
  96403. }
  96404. # endif
  96405. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  96406. auto operator<=>( VideoEncodeH264DpbSlotInfoEXT const & ) const = default;
  96407. # else
  96408. bool operator==( VideoEncodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96409. {
  96410. # if defined( VULKAN_HPP_USE_REFLECT )
  96411. return this->reflect() == rhs.reflect();
  96412. # else
  96413. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
  96414. # endif
  96415. }
  96416. bool operator!=( VideoEncodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96417. {
  96418. return !operator==( rhs );
  96419. }
  96420. # endif
  96421. public:
  96422. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264DpbSlotInfoEXT;
  96423. const void * pNext = {};
  96424. const StdVideoEncodeH264ReferenceInfo * pStdReferenceInfo = {};
  96425. };
  96426. template <>
  96427. struct CppType<StructureType, StructureType::eVideoEncodeH264DpbSlotInfoEXT>
  96428. {
  96429. using Type = VideoEncodeH264DpbSlotInfoEXT;
  96430. };
  96431. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  96432. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  96433. struct VideoEncodeH264FrameSizeEXT
  96434. {
  96435. using NativeType = VkVideoEncodeH264FrameSizeEXT;
  96436. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  96437. VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeEXT( uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
  96438. : frameISize( frameISize_ )
  96439. , framePSize( framePSize_ )
  96440. , frameBSize( frameBSize_ )
  96441. {
  96442. }
  96443. VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeEXT( VideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96444. VideoEncodeH264FrameSizeEXT( VkVideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96445. : VideoEncodeH264FrameSizeEXT( *reinterpret_cast<VideoEncodeH264FrameSizeEXT const *>( &rhs ) )
  96446. {
  96447. }
  96448. VideoEncodeH264FrameSizeEXT & operator=( VideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96449. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  96450. VideoEncodeH264FrameSizeEXT & operator=( VkVideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96451. {
  96452. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const *>( &rhs );
  96453. return *this;
  96454. }
  96455. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  96456. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
  96457. {
  96458. frameISize = frameISize_;
  96459. return *this;
  96460. }
  96461. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
  96462. {
  96463. framePSize = framePSize_;
  96464. return *this;
  96465. }
  96466. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
  96467. {
  96468. frameBSize = frameBSize_;
  96469. return *this;
  96470. }
  96471. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  96472. operator VkVideoEncodeH264FrameSizeEXT const &() const VULKAN_HPP_NOEXCEPT
  96473. {
  96474. return *reinterpret_cast<const VkVideoEncodeH264FrameSizeEXT *>( this );
  96475. }
  96476. operator VkVideoEncodeH264FrameSizeEXT &() VULKAN_HPP_NOEXCEPT
  96477. {
  96478. return *reinterpret_cast<VkVideoEncodeH264FrameSizeEXT *>( this );
  96479. }
  96480. # if defined( VULKAN_HPP_USE_REFLECT )
  96481. # if 14 <= VULKAN_HPP_CPP_VERSION
  96482. auto
  96483. # else
  96484. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  96485. # endif
  96486. reflect() const VULKAN_HPP_NOEXCEPT
  96487. {
  96488. return std::tie( frameISize, framePSize, frameBSize );
  96489. }
  96490. # endif
  96491. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  96492. auto operator<=>( VideoEncodeH264FrameSizeEXT const & ) const = default;
  96493. # else
  96494. bool operator==( VideoEncodeH264FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96495. {
  96496. # if defined( VULKAN_HPP_USE_REFLECT )
  96497. return this->reflect() == rhs.reflect();
  96498. # else
  96499. return ( frameISize == rhs.frameISize ) && ( framePSize == rhs.framePSize ) && ( frameBSize == rhs.frameBSize );
  96500. # endif
  96501. }
  96502. bool operator!=( VideoEncodeH264FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96503. {
  96504. return !operator==( rhs );
  96505. }
  96506. # endif
  96507. public:
  96508. uint32_t frameISize = {};
  96509. uint32_t framePSize = {};
  96510. uint32_t frameBSize = {};
  96511. };
  96512. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  96513. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  96514. struct VideoEncodeH264GopRemainingFrameInfoEXT
  96515. {
  96516. using NativeType = VkVideoEncodeH264GopRemainingFrameInfoEXT;
  96517. static const bool allowDuplicate = false;
  96518. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264GopRemainingFrameInfoEXT;
  96519. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  96520. VULKAN_HPP_CONSTEXPR VideoEncodeH264GopRemainingFrameInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ = {},
  96521. uint32_t gopRemainingI_ = {},
  96522. uint32_t gopRemainingP_ = {},
  96523. uint32_t gopRemainingB_ = {},
  96524. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  96525. : pNext( pNext_ )
  96526. , useGopRemainingFrames( useGopRemainingFrames_ )
  96527. , gopRemainingI( gopRemainingI_ )
  96528. , gopRemainingP( gopRemainingP_ )
  96529. , gopRemainingB( gopRemainingB_ )
  96530. {
  96531. }
  96532. VULKAN_HPP_CONSTEXPR VideoEncodeH264GopRemainingFrameInfoEXT( VideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96533. VideoEncodeH264GopRemainingFrameInfoEXT( VkVideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96534. : VideoEncodeH264GopRemainingFrameInfoEXT( *reinterpret_cast<VideoEncodeH264GopRemainingFrameInfoEXT const *>( &rhs ) )
  96535. {
  96536. }
  96537. VideoEncodeH264GopRemainingFrameInfoEXT & operator=( VideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96538. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  96539. VideoEncodeH264GopRemainingFrameInfoEXT & operator=( VkVideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96540. {
  96541. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoEXT const *>( &rhs );
  96542. return *this;
  96543. }
  96544. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  96545. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  96546. {
  96547. pNext = pNext_;
  96548. return *this;
  96549. }
  96550. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoEXT &
  96551. setUseGopRemainingFrames( VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ ) VULKAN_HPP_NOEXCEPT
  96552. {
  96553. useGopRemainingFrames = useGopRemainingFrames_;
  96554. return *this;
  96555. }
  96556. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoEXT & setGopRemainingI( uint32_t gopRemainingI_ ) VULKAN_HPP_NOEXCEPT
  96557. {
  96558. gopRemainingI = gopRemainingI_;
  96559. return *this;
  96560. }
  96561. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoEXT & setGopRemainingP( uint32_t gopRemainingP_ ) VULKAN_HPP_NOEXCEPT
  96562. {
  96563. gopRemainingP = gopRemainingP_;
  96564. return *this;
  96565. }
  96566. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264GopRemainingFrameInfoEXT & setGopRemainingB( uint32_t gopRemainingB_ ) VULKAN_HPP_NOEXCEPT
  96567. {
  96568. gopRemainingB = gopRemainingB_;
  96569. return *this;
  96570. }
  96571. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  96572. operator VkVideoEncodeH264GopRemainingFrameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  96573. {
  96574. return *reinterpret_cast<const VkVideoEncodeH264GopRemainingFrameInfoEXT *>( this );
  96575. }
  96576. operator VkVideoEncodeH264GopRemainingFrameInfoEXT &() VULKAN_HPP_NOEXCEPT
  96577. {
  96578. return *reinterpret_cast<VkVideoEncodeH264GopRemainingFrameInfoEXT *>( this );
  96579. }
  96580. # if defined( VULKAN_HPP_USE_REFLECT )
  96581. # if 14 <= VULKAN_HPP_CPP_VERSION
  96582. auto
  96583. # else
  96584. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  96585. const void * const &,
  96586. VULKAN_HPP_NAMESPACE::Bool32 const &,
  96587. uint32_t const &,
  96588. uint32_t const &,
  96589. uint32_t const &>
  96590. # endif
  96591. reflect() const VULKAN_HPP_NOEXCEPT
  96592. {
  96593. return std::tie( sType, pNext, useGopRemainingFrames, gopRemainingI, gopRemainingP, gopRemainingB );
  96594. }
  96595. # endif
  96596. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  96597. auto operator<=>( VideoEncodeH264GopRemainingFrameInfoEXT const & ) const = default;
  96598. # else
  96599. bool operator==( VideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96600. {
  96601. # if defined( VULKAN_HPP_USE_REFLECT )
  96602. return this->reflect() == rhs.reflect();
  96603. # else
  96604. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useGopRemainingFrames == rhs.useGopRemainingFrames ) &&
  96605. ( gopRemainingI == rhs.gopRemainingI ) && ( gopRemainingP == rhs.gopRemainingP ) && ( gopRemainingB == rhs.gopRemainingB );
  96606. # endif
  96607. }
  96608. bool operator!=( VideoEncodeH264GopRemainingFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96609. {
  96610. return !operator==( rhs );
  96611. }
  96612. # endif
  96613. public:
  96614. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264GopRemainingFrameInfoEXT;
  96615. const void * pNext = {};
  96616. VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames = {};
  96617. uint32_t gopRemainingI = {};
  96618. uint32_t gopRemainingP = {};
  96619. uint32_t gopRemainingB = {};
  96620. };
  96621. template <>
  96622. struct CppType<StructureType, StructureType::eVideoEncodeH264GopRemainingFrameInfoEXT>
  96623. {
  96624. using Type = VideoEncodeH264GopRemainingFrameInfoEXT;
  96625. };
  96626. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  96627. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  96628. struct VideoEncodeH264NaluSliceInfoEXT
  96629. {
  96630. using NativeType = VkVideoEncodeH264NaluSliceInfoEXT;
  96631. static const bool allowDuplicate = false;
  96632. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264NaluSliceInfoEXT;
  96633. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  96634. VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceInfoEXT( int32_t constantQp_ = {},
  96635. const StdVideoEncodeH264SliceHeader * pStdSliceHeader_ = {},
  96636. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  96637. : pNext( pNext_ )
  96638. , constantQp( constantQp_ )
  96639. , pStdSliceHeader( pStdSliceHeader_ )
  96640. {
  96641. }
  96642. VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceInfoEXT( VideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96643. VideoEncodeH264NaluSliceInfoEXT( VkVideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96644. : VideoEncodeH264NaluSliceInfoEXT( *reinterpret_cast<VideoEncodeH264NaluSliceInfoEXT const *>( &rhs ) )
  96645. {
  96646. }
  96647. VideoEncodeH264NaluSliceInfoEXT & operator=( VideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96648. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  96649. VideoEncodeH264NaluSliceInfoEXT & operator=( VkVideoEncodeH264NaluSliceInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96650. {
  96651. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT const *>( &rhs );
  96652. return *this;
  96653. }
  96654. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  96655. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  96656. {
  96657. pNext = pNext_;
  96658. return *this;
  96659. }
  96660. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setConstantQp( int32_t constantQp_ ) VULKAN_HPP_NOEXCEPT
  96661. {
  96662. constantQp = constantQp_;
  96663. return *this;
  96664. }
  96665. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceInfoEXT & setPStdSliceHeader( const StdVideoEncodeH264SliceHeader * pStdSliceHeader_ ) VULKAN_HPP_NOEXCEPT
  96666. {
  96667. pStdSliceHeader = pStdSliceHeader_;
  96668. return *this;
  96669. }
  96670. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  96671. operator VkVideoEncodeH264NaluSliceInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  96672. {
  96673. return *reinterpret_cast<const VkVideoEncodeH264NaluSliceInfoEXT *>( this );
  96674. }
  96675. operator VkVideoEncodeH264NaluSliceInfoEXT &() VULKAN_HPP_NOEXCEPT
  96676. {
  96677. return *reinterpret_cast<VkVideoEncodeH264NaluSliceInfoEXT *>( this );
  96678. }
  96679. # if defined( VULKAN_HPP_USE_REFLECT )
  96680. # if 14 <= VULKAN_HPP_CPP_VERSION
  96681. auto
  96682. # else
  96683. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, int32_t const &, const StdVideoEncodeH264SliceHeader * const &>
  96684. # endif
  96685. reflect() const VULKAN_HPP_NOEXCEPT
  96686. {
  96687. return std::tie( sType, pNext, constantQp, pStdSliceHeader );
  96688. }
  96689. # endif
  96690. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  96691. auto operator<=>( VideoEncodeH264NaluSliceInfoEXT const & ) const = default;
  96692. # else
  96693. bool operator==( VideoEncodeH264NaluSliceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96694. {
  96695. # if defined( VULKAN_HPP_USE_REFLECT )
  96696. return this->reflect() == rhs.reflect();
  96697. # else
  96698. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( constantQp == rhs.constantQp ) && ( pStdSliceHeader == rhs.pStdSliceHeader );
  96699. # endif
  96700. }
  96701. bool operator!=( VideoEncodeH264NaluSliceInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96702. {
  96703. return !operator==( rhs );
  96704. }
  96705. # endif
  96706. public:
  96707. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264NaluSliceInfoEXT;
  96708. const void * pNext = {};
  96709. int32_t constantQp = {};
  96710. const StdVideoEncodeH264SliceHeader * pStdSliceHeader = {};
  96711. };
  96712. template <>
  96713. struct CppType<StructureType, StructureType::eVideoEncodeH264NaluSliceInfoEXT>
  96714. {
  96715. using Type = VideoEncodeH264NaluSliceInfoEXT;
  96716. };
  96717. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  96718. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  96719. struct VideoEncodeH264PictureInfoEXT
  96720. {
  96721. using NativeType = VkVideoEncodeH264PictureInfoEXT;
  96722. static const bool allowDuplicate = false;
  96723. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264PictureInfoEXT;
  96724. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  96725. VULKAN_HPP_CONSTEXPR VideoEncodeH264PictureInfoEXT( uint32_t naluSliceEntryCount_ = {},
  96726. const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * pNaluSliceEntries_ = {},
  96727. const StdVideoEncodeH264PictureInfo * pStdPictureInfo_ = {},
  96728. VULKAN_HPP_NAMESPACE::Bool32 generatePrefixNalu_ = {},
  96729. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  96730. : pNext( pNext_ )
  96731. , naluSliceEntryCount( naluSliceEntryCount_ )
  96732. , pNaluSliceEntries( pNaluSliceEntries_ )
  96733. , pStdPictureInfo( pStdPictureInfo_ )
  96734. , generatePrefixNalu( generatePrefixNalu_ )
  96735. {
  96736. }
  96737. VULKAN_HPP_CONSTEXPR VideoEncodeH264PictureInfoEXT( VideoEncodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96738. VideoEncodeH264PictureInfoEXT( VkVideoEncodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96739. : VideoEncodeH264PictureInfoEXT( *reinterpret_cast<VideoEncodeH264PictureInfoEXT const *>( &rhs ) )
  96740. {
  96741. }
  96742. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  96743. VideoEncodeH264PictureInfoEXT(
  96744. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT> const & naluSliceEntries_,
  96745. const StdVideoEncodeH264PictureInfo * pStdPictureInfo_ = {},
  96746. VULKAN_HPP_NAMESPACE::Bool32 generatePrefixNalu_ = {},
  96747. const void * pNext_ = nullptr )
  96748. : pNext( pNext_ )
  96749. , naluSliceEntryCount( static_cast<uint32_t>( naluSliceEntries_.size() ) )
  96750. , pNaluSliceEntries( naluSliceEntries_.data() )
  96751. , pStdPictureInfo( pStdPictureInfo_ )
  96752. , generatePrefixNalu( generatePrefixNalu_ )
  96753. {
  96754. }
  96755. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  96756. VideoEncodeH264PictureInfoEXT & operator=( VideoEncodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96757. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  96758. VideoEncodeH264PictureInfoEXT & operator=( VkVideoEncodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96759. {
  96760. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoEXT const *>( &rhs );
  96761. return *this;
  96762. }
  96763. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  96764. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  96765. {
  96766. pNext = pNext_;
  96767. return *this;
  96768. }
  96769. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoEXT & setNaluSliceEntryCount( uint32_t naluSliceEntryCount_ ) VULKAN_HPP_NOEXCEPT
  96770. {
  96771. naluSliceEntryCount = naluSliceEntryCount_;
  96772. return *this;
  96773. }
  96774. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoEXT &
  96775. setPNaluSliceEntries( const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * pNaluSliceEntries_ ) VULKAN_HPP_NOEXCEPT
  96776. {
  96777. pNaluSliceEntries = pNaluSliceEntries_;
  96778. return *this;
  96779. }
  96780. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  96781. VideoEncodeH264PictureInfoEXT & setNaluSliceEntries(
  96782. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT> const & naluSliceEntries_ ) VULKAN_HPP_NOEXCEPT
  96783. {
  96784. naluSliceEntryCount = static_cast<uint32_t>( naluSliceEntries_.size() );
  96785. pNaluSliceEntries = naluSliceEntries_.data();
  96786. return *this;
  96787. }
  96788. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  96789. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoEXT & setPStdPictureInfo( const StdVideoEncodeH264PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
  96790. {
  96791. pStdPictureInfo = pStdPictureInfo_;
  96792. return *this;
  96793. }
  96794. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264PictureInfoEXT & setGeneratePrefixNalu( VULKAN_HPP_NAMESPACE::Bool32 generatePrefixNalu_ ) VULKAN_HPP_NOEXCEPT
  96795. {
  96796. generatePrefixNalu = generatePrefixNalu_;
  96797. return *this;
  96798. }
  96799. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  96800. operator VkVideoEncodeH264PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  96801. {
  96802. return *reinterpret_cast<const VkVideoEncodeH264PictureInfoEXT *>( this );
  96803. }
  96804. operator VkVideoEncodeH264PictureInfoEXT &() VULKAN_HPP_NOEXCEPT
  96805. {
  96806. return *reinterpret_cast<VkVideoEncodeH264PictureInfoEXT *>( this );
  96807. }
  96808. # if defined( VULKAN_HPP_USE_REFLECT )
  96809. # if 14 <= VULKAN_HPP_CPP_VERSION
  96810. auto
  96811. # else
  96812. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  96813. const void * const &,
  96814. uint32_t const &,
  96815. const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * const &,
  96816. const StdVideoEncodeH264PictureInfo * const &,
  96817. VULKAN_HPP_NAMESPACE::Bool32 const &>
  96818. # endif
  96819. reflect() const VULKAN_HPP_NOEXCEPT
  96820. {
  96821. return std::tie( sType, pNext, naluSliceEntryCount, pNaluSliceEntries, pStdPictureInfo, generatePrefixNalu );
  96822. }
  96823. # endif
  96824. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  96825. auto operator<=>( VideoEncodeH264PictureInfoEXT const & ) const = default;
  96826. # else
  96827. bool operator==( VideoEncodeH264PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96828. {
  96829. # if defined( VULKAN_HPP_USE_REFLECT )
  96830. return this->reflect() == rhs.reflect();
  96831. # else
  96832. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( naluSliceEntryCount == rhs.naluSliceEntryCount ) &&
  96833. ( pNaluSliceEntries == rhs.pNaluSliceEntries ) && ( pStdPictureInfo == rhs.pStdPictureInfo ) && ( generatePrefixNalu == rhs.generatePrefixNalu );
  96834. # endif
  96835. }
  96836. bool operator!=( VideoEncodeH264PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96837. {
  96838. return !operator==( rhs );
  96839. }
  96840. # endif
  96841. public:
  96842. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264PictureInfoEXT;
  96843. const void * pNext = {};
  96844. uint32_t naluSliceEntryCount = {};
  96845. const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT * pNaluSliceEntries = {};
  96846. const StdVideoEncodeH264PictureInfo * pStdPictureInfo = {};
  96847. VULKAN_HPP_NAMESPACE::Bool32 generatePrefixNalu = {};
  96848. };
  96849. template <>
  96850. struct CppType<StructureType, StructureType::eVideoEncodeH264PictureInfoEXT>
  96851. {
  96852. using Type = VideoEncodeH264PictureInfoEXT;
  96853. };
  96854. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  96855. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  96856. struct VideoEncodeH264ProfileInfoEXT
  96857. {
  96858. using NativeType = VkVideoEncodeH264ProfileInfoEXT;
  96859. static const bool allowDuplicate = false;
  96860. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264ProfileInfoEXT;
  96861. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  96862. VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileInfoEXT( StdVideoH264ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  96863. : pNext( pNext_ )
  96864. , stdProfileIdc( stdProfileIdc_ )
  96865. {
  96866. }
  96867. VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileInfoEXT( VideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96868. VideoEncodeH264ProfileInfoEXT( VkVideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96869. : VideoEncodeH264ProfileInfoEXT( *reinterpret_cast<VideoEncodeH264ProfileInfoEXT const *>( &rhs ) )
  96870. {
  96871. }
  96872. VideoEncodeH264ProfileInfoEXT & operator=( VideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96873. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  96874. VideoEncodeH264ProfileInfoEXT & operator=( VkVideoEncodeH264ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96875. {
  96876. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT const *>( &rhs );
  96877. return *this;
  96878. }
  96879. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  96880. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  96881. {
  96882. pNext = pNext_;
  96883. return *this;
  96884. }
  96885. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ProfileInfoEXT & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
  96886. {
  96887. stdProfileIdc = stdProfileIdc_;
  96888. return *this;
  96889. }
  96890. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  96891. operator VkVideoEncodeH264ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  96892. {
  96893. return *reinterpret_cast<const VkVideoEncodeH264ProfileInfoEXT *>( this );
  96894. }
  96895. operator VkVideoEncodeH264ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
  96896. {
  96897. return *reinterpret_cast<VkVideoEncodeH264ProfileInfoEXT *>( this );
  96898. }
  96899. # if defined( VULKAN_HPP_USE_REFLECT )
  96900. # if 14 <= VULKAN_HPP_CPP_VERSION
  96901. auto
  96902. # else
  96903. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH264ProfileIdc const &>
  96904. # endif
  96905. reflect() const VULKAN_HPP_NOEXCEPT
  96906. {
  96907. return std::tie( sType, pNext, stdProfileIdc );
  96908. }
  96909. # endif
  96910. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  96911. std::strong_ordering operator<=>( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96912. {
  96913. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  96914. return cmp;
  96915. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  96916. return cmp;
  96917. if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ); cmp != 0 )
  96918. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  96919. return std::strong_ordering::equivalent;
  96920. }
  96921. # endif
  96922. bool operator==( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96923. {
  96924. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ) == 0 );
  96925. }
  96926. bool operator!=( VideoEncodeH264ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  96927. {
  96928. return !operator==( rhs );
  96929. }
  96930. public:
  96931. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264ProfileInfoEXT;
  96932. const void * pNext = {};
  96933. StdVideoH264ProfileIdc stdProfileIdc = {};
  96934. };
  96935. template <>
  96936. struct CppType<StructureType, StructureType::eVideoEncodeH264ProfileInfoEXT>
  96937. {
  96938. using Type = VideoEncodeH264ProfileInfoEXT;
  96939. };
  96940. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  96941. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  96942. struct VideoEncodeH264QpEXT
  96943. {
  96944. using NativeType = VkVideoEncodeH264QpEXT;
  96945. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  96946. VULKAN_HPP_CONSTEXPR VideoEncodeH264QpEXT( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
  96947. : qpI( qpI_ )
  96948. , qpP( qpP_ )
  96949. , qpB( qpB_ )
  96950. {
  96951. }
  96952. VULKAN_HPP_CONSTEXPR VideoEncodeH264QpEXT( VideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96953. VideoEncodeH264QpEXT( VkVideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96954. : VideoEncodeH264QpEXT( *reinterpret_cast<VideoEncodeH264QpEXT const *>( &rhs ) )
  96955. {
  96956. }
  96957. VideoEncodeH264QpEXT & operator=( VideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  96958. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  96959. VideoEncodeH264QpEXT & operator=( VkVideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  96960. {
  96961. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const *>( &rhs );
  96962. return *this;
  96963. }
  96964. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  96965. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
  96966. {
  96967. qpI = qpI_;
  96968. return *this;
  96969. }
  96970. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
  96971. {
  96972. qpP = qpP_;
  96973. return *this;
  96974. }
  96975. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
  96976. {
  96977. qpB = qpB_;
  96978. return *this;
  96979. }
  96980. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  96981. operator VkVideoEncodeH264QpEXT const &() const VULKAN_HPP_NOEXCEPT
  96982. {
  96983. return *reinterpret_cast<const VkVideoEncodeH264QpEXT *>( this );
  96984. }
  96985. operator VkVideoEncodeH264QpEXT &() VULKAN_HPP_NOEXCEPT
  96986. {
  96987. return *reinterpret_cast<VkVideoEncodeH264QpEXT *>( this );
  96988. }
  96989. # if defined( VULKAN_HPP_USE_REFLECT )
  96990. # if 14 <= VULKAN_HPP_CPP_VERSION
  96991. auto
  96992. # else
  96993. std::tuple<int32_t const &, int32_t const &, int32_t const &>
  96994. # endif
  96995. reflect() const VULKAN_HPP_NOEXCEPT
  96996. {
  96997. return std::tie( qpI, qpP, qpB );
  96998. }
  96999. # endif
  97000. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  97001. auto operator<=>( VideoEncodeH264QpEXT const & ) const = default;
  97002. # else
  97003. bool operator==( VideoEncodeH264QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97004. {
  97005. # if defined( VULKAN_HPP_USE_REFLECT )
  97006. return this->reflect() == rhs.reflect();
  97007. # else
  97008. return ( qpI == rhs.qpI ) && ( qpP == rhs.qpP ) && ( qpB == rhs.qpB );
  97009. # endif
  97010. }
  97011. bool operator!=( VideoEncodeH264QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97012. {
  97013. return !operator==( rhs );
  97014. }
  97015. # endif
  97016. public:
  97017. int32_t qpI = {};
  97018. int32_t qpP = {};
  97019. int32_t qpB = {};
  97020. };
  97021. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  97022. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  97023. struct VideoEncodeH264QualityLevelPropertiesEXT
  97024. {
  97025. using NativeType = VkVideoEncodeH264QualityLevelPropertiesEXT;
  97026. static const bool allowDuplicate = false;
  97027. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264QualityLevelPropertiesEXT;
  97028. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  97029. VULKAN_HPP_CONSTEXPR VideoEncodeH264QualityLevelPropertiesEXT( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT preferredRateControlFlags_ = {},
  97030. uint32_t preferredGopFrameCount_ = {},
  97031. uint32_t preferredIdrPeriod_ = {},
  97032. uint32_t preferredConsecutiveBFrameCount_ = {},
  97033. uint32_t preferredTemporalLayerCount_ = {},
  97034. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT preferredConstantQp_ = {},
  97035. uint32_t preferredMaxL0ReferenceCount_ = {},
  97036. uint32_t preferredMaxL1ReferenceCount_ = {},
  97037. VULKAN_HPP_NAMESPACE::Bool32 preferredStdEntropyCodingModeFlag_ = {},
  97038. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  97039. : pNext( pNext_ )
  97040. , preferredRateControlFlags( preferredRateControlFlags_ )
  97041. , preferredGopFrameCount( preferredGopFrameCount_ )
  97042. , preferredIdrPeriod( preferredIdrPeriod_ )
  97043. , preferredConsecutiveBFrameCount( preferredConsecutiveBFrameCount_ )
  97044. , preferredTemporalLayerCount( preferredTemporalLayerCount_ )
  97045. , preferredConstantQp( preferredConstantQp_ )
  97046. , preferredMaxL0ReferenceCount( preferredMaxL0ReferenceCount_ )
  97047. , preferredMaxL1ReferenceCount( preferredMaxL1ReferenceCount_ )
  97048. , preferredStdEntropyCodingModeFlag( preferredStdEntropyCodingModeFlag_ )
  97049. {
  97050. }
  97051. VULKAN_HPP_CONSTEXPR VideoEncodeH264QualityLevelPropertiesEXT( VideoEncodeH264QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97052. VideoEncodeH264QualityLevelPropertiesEXT( VkVideoEncodeH264QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97053. : VideoEncodeH264QualityLevelPropertiesEXT( *reinterpret_cast<VideoEncodeH264QualityLevelPropertiesEXT const *>( &rhs ) )
  97054. {
  97055. }
  97056. VideoEncodeH264QualityLevelPropertiesEXT & operator=( VideoEncodeH264QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97057. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  97058. VideoEncodeH264QualityLevelPropertiesEXT & operator=( VkVideoEncodeH264QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97059. {
  97060. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesEXT const *>( &rhs );
  97061. return *this;
  97062. }
  97063. operator VkVideoEncodeH264QualityLevelPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  97064. {
  97065. return *reinterpret_cast<const VkVideoEncodeH264QualityLevelPropertiesEXT *>( this );
  97066. }
  97067. operator VkVideoEncodeH264QualityLevelPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  97068. {
  97069. return *reinterpret_cast<VkVideoEncodeH264QualityLevelPropertiesEXT *>( this );
  97070. }
  97071. # if defined( VULKAN_HPP_USE_REFLECT )
  97072. # if 14 <= VULKAN_HPP_CPP_VERSION
  97073. auto
  97074. # else
  97075. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  97076. void * const &,
  97077. VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT const &,
  97078. uint32_t const &,
  97079. uint32_t const &,
  97080. uint32_t const &,
  97081. uint32_t const &,
  97082. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &,
  97083. uint32_t const &,
  97084. uint32_t const &,
  97085. VULKAN_HPP_NAMESPACE::Bool32 const &>
  97086. # endif
  97087. reflect() const VULKAN_HPP_NOEXCEPT
  97088. {
  97089. return std::tie( sType,
  97090. pNext,
  97091. preferredRateControlFlags,
  97092. preferredGopFrameCount,
  97093. preferredIdrPeriod,
  97094. preferredConsecutiveBFrameCount,
  97095. preferredTemporalLayerCount,
  97096. preferredConstantQp,
  97097. preferredMaxL0ReferenceCount,
  97098. preferredMaxL1ReferenceCount,
  97099. preferredStdEntropyCodingModeFlag );
  97100. }
  97101. # endif
  97102. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  97103. auto operator<=>( VideoEncodeH264QualityLevelPropertiesEXT const & ) const = default;
  97104. # else
  97105. bool operator==( VideoEncodeH264QualityLevelPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97106. {
  97107. # if defined( VULKAN_HPP_USE_REFLECT )
  97108. return this->reflect() == rhs.reflect();
  97109. # else
  97110. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( preferredRateControlFlags == rhs.preferredRateControlFlags ) &&
  97111. ( preferredGopFrameCount == rhs.preferredGopFrameCount ) && ( preferredIdrPeriod == rhs.preferredIdrPeriod ) &&
  97112. ( preferredConsecutiveBFrameCount == rhs.preferredConsecutiveBFrameCount ) && ( preferredTemporalLayerCount == rhs.preferredTemporalLayerCount ) &&
  97113. ( preferredConstantQp == rhs.preferredConstantQp ) && ( preferredMaxL0ReferenceCount == rhs.preferredMaxL0ReferenceCount ) &&
  97114. ( preferredMaxL1ReferenceCount == rhs.preferredMaxL1ReferenceCount ) &&
  97115. ( preferredStdEntropyCodingModeFlag == rhs.preferredStdEntropyCodingModeFlag );
  97116. # endif
  97117. }
  97118. bool operator!=( VideoEncodeH264QualityLevelPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97119. {
  97120. return !operator==( rhs );
  97121. }
  97122. # endif
  97123. public:
  97124. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264QualityLevelPropertiesEXT;
  97125. void * pNext = {};
  97126. VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT preferredRateControlFlags = {};
  97127. uint32_t preferredGopFrameCount = {};
  97128. uint32_t preferredIdrPeriod = {};
  97129. uint32_t preferredConsecutiveBFrameCount = {};
  97130. uint32_t preferredTemporalLayerCount = {};
  97131. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT preferredConstantQp = {};
  97132. uint32_t preferredMaxL0ReferenceCount = {};
  97133. uint32_t preferredMaxL1ReferenceCount = {};
  97134. VULKAN_HPP_NAMESPACE::Bool32 preferredStdEntropyCodingModeFlag = {};
  97135. };
  97136. template <>
  97137. struct CppType<StructureType, StructureType::eVideoEncodeH264QualityLevelPropertiesEXT>
  97138. {
  97139. using Type = VideoEncodeH264QualityLevelPropertiesEXT;
  97140. };
  97141. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  97142. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  97143. struct VideoEncodeH264RateControlInfoEXT
  97144. {
  97145. using NativeType = VkVideoEncodeH264RateControlInfoEXT;
  97146. static const bool allowDuplicate = false;
  97147. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264RateControlInfoEXT;
  97148. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  97149. VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlInfoEXT( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT flags_ = {},
  97150. uint32_t gopFrameCount_ = {},
  97151. uint32_t idrPeriod_ = {},
  97152. uint32_t consecutiveBFrameCount_ = {},
  97153. uint32_t temporalLayerCount_ = {},
  97154. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  97155. : pNext( pNext_ )
  97156. , flags( flags_ )
  97157. , gopFrameCount( gopFrameCount_ )
  97158. , idrPeriod( idrPeriod_ )
  97159. , consecutiveBFrameCount( consecutiveBFrameCount_ )
  97160. , temporalLayerCount( temporalLayerCount_ )
  97161. {
  97162. }
  97163. VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlInfoEXT( VideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97164. VideoEncodeH264RateControlInfoEXT( VkVideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97165. : VideoEncodeH264RateControlInfoEXT( *reinterpret_cast<VideoEncodeH264RateControlInfoEXT const *>( &rhs ) )
  97166. {
  97167. }
  97168. VideoEncodeH264RateControlInfoEXT & operator=( VideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97169. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  97170. VideoEncodeH264RateControlInfoEXT & operator=( VkVideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97171. {
  97172. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT const *>( &rhs );
  97173. return *this;
  97174. }
  97175. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  97176. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  97177. {
  97178. pNext = pNext_;
  97179. return *this;
  97180. }
  97181. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  97182. {
  97183. flags = flags_;
  97184. return *this;
  97185. }
  97186. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
  97187. {
  97188. gopFrameCount = gopFrameCount_;
  97189. return *this;
  97190. }
  97191. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
  97192. {
  97193. idrPeriod = idrPeriod_;
  97194. return *this;
  97195. }
  97196. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
  97197. {
  97198. consecutiveBFrameCount = consecutiveBFrameCount_;
  97199. return *this;
  97200. }
  97201. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setTemporalLayerCount( uint32_t temporalLayerCount_ ) VULKAN_HPP_NOEXCEPT
  97202. {
  97203. temporalLayerCount = temporalLayerCount_;
  97204. return *this;
  97205. }
  97206. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  97207. operator VkVideoEncodeH264RateControlInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  97208. {
  97209. return *reinterpret_cast<const VkVideoEncodeH264RateControlInfoEXT *>( this );
  97210. }
  97211. operator VkVideoEncodeH264RateControlInfoEXT &() VULKAN_HPP_NOEXCEPT
  97212. {
  97213. return *reinterpret_cast<VkVideoEncodeH264RateControlInfoEXT *>( this );
  97214. }
  97215. # if defined( VULKAN_HPP_USE_REFLECT )
  97216. # if 14 <= VULKAN_HPP_CPP_VERSION
  97217. auto
  97218. # else
  97219. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  97220. const void * const &,
  97221. VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT const &,
  97222. uint32_t const &,
  97223. uint32_t const &,
  97224. uint32_t const &,
  97225. uint32_t const &>
  97226. # endif
  97227. reflect() const VULKAN_HPP_NOEXCEPT
  97228. {
  97229. return std::tie( sType, pNext, flags, gopFrameCount, idrPeriod, consecutiveBFrameCount, temporalLayerCount );
  97230. }
  97231. # endif
  97232. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  97233. auto operator<=>( VideoEncodeH264RateControlInfoEXT const & ) const = default;
  97234. # else
  97235. bool operator==( VideoEncodeH264RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97236. {
  97237. # if defined( VULKAN_HPP_USE_REFLECT )
  97238. return this->reflect() == rhs.reflect();
  97239. # else
  97240. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( gopFrameCount == rhs.gopFrameCount ) &&
  97241. ( idrPeriod == rhs.idrPeriod ) && ( consecutiveBFrameCount == rhs.consecutiveBFrameCount ) && ( temporalLayerCount == rhs.temporalLayerCount );
  97242. # endif
  97243. }
  97244. bool operator!=( VideoEncodeH264RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97245. {
  97246. return !operator==( rhs );
  97247. }
  97248. # endif
  97249. public:
  97250. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264RateControlInfoEXT;
  97251. const void * pNext = {};
  97252. VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlFlagsEXT flags = {};
  97253. uint32_t gopFrameCount = {};
  97254. uint32_t idrPeriod = {};
  97255. uint32_t consecutiveBFrameCount = {};
  97256. uint32_t temporalLayerCount = {};
  97257. };
  97258. template <>
  97259. struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlInfoEXT>
  97260. {
  97261. using Type = VideoEncodeH264RateControlInfoEXT;
  97262. };
  97263. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  97264. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  97265. struct VideoEncodeH264RateControlLayerInfoEXT
  97266. {
  97267. using NativeType = VkVideoEncodeH264RateControlLayerInfoEXT;
  97268. static const bool allowDuplicate = false;
  97269. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264RateControlLayerInfoEXT;
  97270. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  97271. VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ = {},
  97272. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT minQp_ = {},
  97273. VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ = {},
  97274. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT maxQp_ = {},
  97275. VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ = {},
  97276. VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT maxFrameSize_ = {},
  97277. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  97278. : pNext( pNext_ )
  97279. , useMinQp( useMinQp_ )
  97280. , minQp( minQp_ )
  97281. , useMaxQp( useMaxQp_ )
  97282. , maxQp( maxQp_ )
  97283. , useMaxFrameSize( useMaxFrameSize_ )
  97284. , maxFrameSize( maxFrameSize_ )
  97285. {
  97286. }
  97287. VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoEXT( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97288. VideoEncodeH264RateControlLayerInfoEXT( VkVideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97289. : VideoEncodeH264RateControlLayerInfoEXT( *reinterpret_cast<VideoEncodeH264RateControlLayerInfoEXT const *>( &rhs ) )
  97290. {
  97291. }
  97292. VideoEncodeH264RateControlLayerInfoEXT & operator=( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97293. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  97294. VideoEncodeH264RateControlLayerInfoEXT & operator=( VkVideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97295. {
  97296. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT const *>( &rhs );
  97297. return *this;
  97298. }
  97299. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  97300. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  97301. {
  97302. pNext = pNext_;
  97303. return *this;
  97304. }
  97305. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
  97306. {
  97307. useMinQp = useMinQp_;
  97308. return *this;
  97309. }
  97310. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & minQp_ ) VULKAN_HPP_NOEXCEPT
  97311. {
  97312. minQp = minQp_;
  97313. return *this;
  97314. }
  97315. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
  97316. {
  97317. useMaxQp = useMaxQp_;
  97318. return *this;
  97319. }
  97320. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & maxQp_ ) VULKAN_HPP_NOEXCEPT
  97321. {
  97322. maxQp = maxQp_;
  97323. return *this;
  97324. }
  97325. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
  97326. {
  97327. useMaxFrameSize = useMaxFrameSize_;
  97328. return *this;
  97329. }
  97330. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
  97331. setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
  97332. {
  97333. maxFrameSize = maxFrameSize_;
  97334. return *this;
  97335. }
  97336. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  97337. operator VkVideoEncodeH264RateControlLayerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  97338. {
  97339. return *reinterpret_cast<const VkVideoEncodeH264RateControlLayerInfoEXT *>( this );
  97340. }
  97341. operator VkVideoEncodeH264RateControlLayerInfoEXT &() VULKAN_HPP_NOEXCEPT
  97342. {
  97343. return *reinterpret_cast<VkVideoEncodeH264RateControlLayerInfoEXT *>( this );
  97344. }
  97345. # if defined( VULKAN_HPP_USE_REFLECT )
  97346. # if 14 <= VULKAN_HPP_CPP_VERSION
  97347. auto
  97348. # else
  97349. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  97350. const void * const &,
  97351. VULKAN_HPP_NAMESPACE::Bool32 const &,
  97352. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &,
  97353. VULKAN_HPP_NAMESPACE::Bool32 const &,
  97354. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const &,
  97355. VULKAN_HPP_NAMESPACE::Bool32 const &,
  97356. VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const &>
  97357. # endif
  97358. reflect() const VULKAN_HPP_NOEXCEPT
  97359. {
  97360. return std::tie( sType, pNext, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize );
  97361. }
  97362. # endif
  97363. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  97364. auto operator<=>( VideoEncodeH264RateControlLayerInfoEXT const & ) const = default;
  97365. # else
  97366. bool operator==( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97367. {
  97368. # if defined( VULKAN_HPP_USE_REFLECT )
  97369. return this->reflect() == rhs.reflect();
  97370. # else
  97371. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useMinQp == rhs.useMinQp ) && ( minQp == rhs.minQp ) && ( useMaxQp == rhs.useMaxQp ) &&
  97372. ( maxQp == rhs.maxQp ) && ( useMaxFrameSize == rhs.useMaxFrameSize ) && ( maxFrameSize == rhs.maxFrameSize );
  97373. # endif
  97374. }
  97375. bool operator!=( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97376. {
  97377. return !operator==( rhs );
  97378. }
  97379. # endif
  97380. public:
  97381. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264RateControlLayerInfoEXT;
  97382. const void * pNext = {};
  97383. VULKAN_HPP_NAMESPACE::Bool32 useMinQp = {};
  97384. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT minQp = {};
  97385. VULKAN_HPP_NAMESPACE::Bool32 useMaxQp = {};
  97386. VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT maxQp = {};
  97387. VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize = {};
  97388. VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT maxFrameSize = {};
  97389. };
  97390. template <>
  97391. struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlLayerInfoEXT>
  97392. {
  97393. using Type = VideoEncodeH264RateControlLayerInfoEXT;
  97394. };
  97395. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  97396. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  97397. struct VideoEncodeH264SessionCreateInfoEXT
  97398. {
  97399. using NativeType = VkVideoEncodeH264SessionCreateInfoEXT;
  97400. static const bool allowDuplicate = false;
  97401. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionCreateInfoEXT;
  97402. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  97403. VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ = {},
  97404. StdVideoH264LevelIdc maxLevelIdc_ = {},
  97405. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  97406. : pNext( pNext_ )
  97407. , useMaxLevelIdc( useMaxLevelIdc_ )
  97408. , maxLevelIdc( maxLevelIdc_ )
  97409. {
  97410. }
  97411. VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionCreateInfoEXT( VideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97412. VideoEncodeH264SessionCreateInfoEXT( VkVideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97413. : VideoEncodeH264SessionCreateInfoEXT( *reinterpret_cast<VideoEncodeH264SessionCreateInfoEXT const *>( &rhs ) )
  97414. {
  97415. }
  97416. VideoEncodeH264SessionCreateInfoEXT & operator=( VideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97417. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  97418. VideoEncodeH264SessionCreateInfoEXT & operator=( VkVideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97419. {
  97420. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT const *>( &rhs );
  97421. return *this;
  97422. }
  97423. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  97424. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  97425. {
  97426. pNext = pNext_;
  97427. return *this;
  97428. }
  97429. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT & setUseMaxLevelIdc( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
  97430. {
  97431. useMaxLevelIdc = useMaxLevelIdc_;
  97432. return *this;
  97433. }
  97434. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT & setMaxLevelIdc( StdVideoH264LevelIdc maxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
  97435. {
  97436. maxLevelIdc = maxLevelIdc_;
  97437. return *this;
  97438. }
  97439. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  97440. operator VkVideoEncodeH264SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  97441. {
  97442. return *reinterpret_cast<const VkVideoEncodeH264SessionCreateInfoEXT *>( this );
  97443. }
  97444. operator VkVideoEncodeH264SessionCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  97445. {
  97446. return *reinterpret_cast<VkVideoEncodeH264SessionCreateInfoEXT *>( this );
  97447. }
  97448. # if defined( VULKAN_HPP_USE_REFLECT )
  97449. # if 14 <= VULKAN_HPP_CPP_VERSION
  97450. auto
  97451. # else
  97452. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, StdVideoH264LevelIdc const &>
  97453. # endif
  97454. reflect() const VULKAN_HPP_NOEXCEPT
  97455. {
  97456. return std::tie( sType, pNext, useMaxLevelIdc, maxLevelIdc );
  97457. }
  97458. # endif
  97459. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  97460. std::strong_ordering operator<=>( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97461. {
  97462. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  97463. return cmp;
  97464. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  97465. return cmp;
  97466. if ( auto cmp = useMaxLevelIdc <=> rhs.useMaxLevelIdc; cmp != 0 )
  97467. return cmp;
  97468. if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ); cmp != 0 )
  97469. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  97470. return std::strong_ordering::equivalent;
  97471. }
  97472. # endif
  97473. bool operator==( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97474. {
  97475. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useMaxLevelIdc == rhs.useMaxLevelIdc ) &&
  97476. ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH264LevelIdc ) ) == 0 );
  97477. }
  97478. bool operator!=( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97479. {
  97480. return !operator==( rhs );
  97481. }
  97482. public:
  97483. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionCreateInfoEXT;
  97484. const void * pNext = {};
  97485. VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc = {};
  97486. StdVideoH264LevelIdc maxLevelIdc = {};
  97487. };
  97488. template <>
  97489. struct CppType<StructureType, StructureType::eVideoEncodeH264SessionCreateInfoEXT>
  97490. {
  97491. using Type = VideoEncodeH264SessionCreateInfoEXT;
  97492. };
  97493. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  97494. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  97495. struct VideoEncodeH264SessionParametersAddInfoEXT
  97496. {
  97497. using NativeType = VkVideoEncodeH264SessionParametersAddInfoEXT;
  97498. static const bool allowDuplicate = false;
  97499. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
  97500. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  97501. VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT( uint32_t stdSPSCount_ = {},
  97502. const StdVideoH264SequenceParameterSet * pStdSPSs_ = {},
  97503. uint32_t stdPPSCount_ = {},
  97504. const StdVideoH264PictureParameterSet * pStdPPSs_ = {},
  97505. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  97506. : pNext( pNext_ )
  97507. , stdSPSCount( stdSPSCount_ )
  97508. , pStdSPSs( pStdSPSs_ )
  97509. , stdPPSCount( stdPPSCount_ )
  97510. , pStdPPSs( pStdPPSs_ )
  97511. {
  97512. }
  97513. VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97514. VideoEncodeH264SessionParametersAddInfoEXT( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97515. : VideoEncodeH264SessionParametersAddInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs ) )
  97516. {
  97517. }
  97518. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  97519. VideoEncodeH264SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_,
  97520. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & stdPPSs_ = {},
  97521. const void * pNext_ = nullptr )
  97522. : pNext( pNext_ )
  97523. , stdSPSCount( static_cast<uint32_t>( stdSPSs_.size() ) )
  97524. , pStdSPSs( stdSPSs_.data() )
  97525. , stdPPSCount( static_cast<uint32_t>( stdPPSs_.size() ) )
  97526. , pStdPPSs( stdPPSs_.data() )
  97527. {
  97528. }
  97529. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  97530. VideoEncodeH264SessionParametersAddInfoEXT & operator=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97531. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  97532. VideoEncodeH264SessionParametersAddInfoEXT & operator=( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97533. {
  97534. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs );
  97535. return *this;
  97536. }
  97537. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  97538. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  97539. {
  97540. pNext = pNext_;
  97541. return *this;
  97542. }
  97543. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
  97544. {
  97545. stdSPSCount = stdSPSCount_;
  97546. return *this;
  97547. }
  97548. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPStdSPSs( const StdVideoH264SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
  97549. {
  97550. pStdSPSs = pStdSPSs_;
  97551. return *this;
  97552. }
  97553. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  97554. VideoEncodeH264SessionParametersAddInfoEXT &
  97555. setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
  97556. {
  97557. stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
  97558. pStdSPSs = stdSPSs_.data();
  97559. return *this;
  97560. }
  97561. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  97562. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
  97563. {
  97564. stdPPSCount = stdPPSCount_;
  97565. return *this;
  97566. }
  97567. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & setPStdPPSs( const StdVideoH264PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
  97568. {
  97569. pStdPPSs = pStdPPSs_;
  97570. return *this;
  97571. }
  97572. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  97573. VideoEncodeH264SessionParametersAddInfoEXT &
  97574. setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
  97575. {
  97576. stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
  97577. pStdPPSs = stdPPSs_.data();
  97578. return *this;
  97579. }
  97580. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  97581. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  97582. operator VkVideoEncodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  97583. {
  97584. return *reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT *>( this );
  97585. }
  97586. operator VkVideoEncodeH264SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
  97587. {
  97588. return *reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT *>( this );
  97589. }
  97590. # if defined( VULKAN_HPP_USE_REFLECT )
  97591. # if 14 <= VULKAN_HPP_CPP_VERSION
  97592. auto
  97593. # else
  97594. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  97595. const void * const &,
  97596. uint32_t const &,
  97597. const StdVideoH264SequenceParameterSet * const &,
  97598. uint32_t const &,
  97599. const StdVideoH264PictureParameterSet * const &>
  97600. # endif
  97601. reflect() const VULKAN_HPP_NOEXCEPT
  97602. {
  97603. return std::tie( sType, pNext, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
  97604. }
  97605. # endif
  97606. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  97607. auto operator<=>( VideoEncodeH264SessionParametersAddInfoEXT const & ) const = default;
  97608. # else
  97609. bool operator==( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97610. {
  97611. # if defined( VULKAN_HPP_USE_REFLECT )
  97612. return this->reflect() == rhs.reflect();
  97613. # else
  97614. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stdSPSCount == rhs.stdSPSCount ) && ( pStdSPSs == rhs.pStdSPSs ) &&
  97615. ( stdPPSCount == rhs.stdPPSCount ) && ( pStdPPSs == rhs.pStdPPSs );
  97616. # endif
  97617. }
  97618. bool operator!=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97619. {
  97620. return !operator==( rhs );
  97621. }
  97622. # endif
  97623. public:
  97624. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
  97625. const void * pNext = {};
  97626. uint32_t stdSPSCount = {};
  97627. const StdVideoH264SequenceParameterSet * pStdSPSs = {};
  97628. uint32_t stdPPSCount = {};
  97629. const StdVideoH264PictureParameterSet * pStdPPSs = {};
  97630. };
  97631. template <>
  97632. struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersAddInfoEXT>
  97633. {
  97634. using Type = VideoEncodeH264SessionParametersAddInfoEXT;
  97635. };
  97636. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  97637. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  97638. struct VideoEncodeH264SessionParametersCreateInfoEXT
  97639. {
  97640. using NativeType = VkVideoEncodeH264SessionParametersCreateInfoEXT;
  97641. static const bool allowDuplicate = false;
  97642. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT;
  97643. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  97644. VULKAN_HPP_CONSTEXPR
  97645. VideoEncodeH264SessionParametersCreateInfoEXT( uint32_t maxStdSPSCount_ = {},
  97646. uint32_t maxStdPPSCount_ = {},
  97647. const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ = {},
  97648. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  97649. : pNext( pNext_ )
  97650. , maxStdSPSCount( maxStdSPSCount_ )
  97651. , maxStdPPSCount( maxStdPPSCount_ )
  97652. , pParametersAddInfo( pParametersAddInfo_ )
  97653. {
  97654. }
  97655. VULKAN_HPP_CONSTEXPR
  97656. VideoEncodeH264SessionParametersCreateInfoEXT( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97657. VideoEncodeH264SessionParametersCreateInfoEXT( VkVideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97658. : VideoEncodeH264SessionParametersCreateInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersCreateInfoEXT const *>( &rhs ) )
  97659. {
  97660. }
  97661. VideoEncodeH264SessionParametersCreateInfoEXT & operator=( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97662. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  97663. VideoEncodeH264SessionParametersCreateInfoEXT & operator=( VkVideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97664. {
  97665. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT const *>( &rhs );
  97666. return *this;
  97667. }
  97668. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  97669. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  97670. {
  97671. pNext = pNext_;
  97672. return *this;
  97673. }
  97674. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
  97675. {
  97676. maxStdSPSCount = maxStdSPSCount_;
  97677. return *this;
  97678. }
  97679. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
  97680. {
  97681. maxStdPPSCount = maxStdPPSCount_;
  97682. return *this;
  97683. }
  97684. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT &
  97685. setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
  97686. {
  97687. pParametersAddInfo = pParametersAddInfo_;
  97688. return *this;
  97689. }
  97690. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  97691. operator VkVideoEncodeH264SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  97692. {
  97693. return *reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoEXT *>( this );
  97694. }
  97695. operator VkVideoEncodeH264SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  97696. {
  97697. return *reinterpret_cast<VkVideoEncodeH264SessionParametersCreateInfoEXT *>( this );
  97698. }
  97699. # if defined( VULKAN_HPP_USE_REFLECT )
  97700. # if 14 <= VULKAN_HPP_CPP_VERSION
  97701. auto
  97702. # else
  97703. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  97704. const void * const &,
  97705. uint32_t const &,
  97706. uint32_t const &,
  97707. const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * const &>
  97708. # endif
  97709. reflect() const VULKAN_HPP_NOEXCEPT
  97710. {
  97711. return std::tie( sType, pNext, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
  97712. }
  97713. # endif
  97714. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  97715. auto operator<=>( VideoEncodeH264SessionParametersCreateInfoEXT const & ) const = default;
  97716. # else
  97717. bool operator==( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97718. {
  97719. # if defined( VULKAN_HPP_USE_REFLECT )
  97720. return this->reflect() == rhs.reflect();
  97721. # else
  97722. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxStdSPSCount == rhs.maxStdSPSCount ) && ( maxStdPPSCount == rhs.maxStdPPSCount ) &&
  97723. ( pParametersAddInfo == rhs.pParametersAddInfo );
  97724. # endif
  97725. }
  97726. bool operator!=( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97727. {
  97728. return !operator==( rhs );
  97729. }
  97730. # endif
  97731. public:
  97732. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT;
  97733. const void * pNext = {};
  97734. uint32_t maxStdSPSCount = {};
  97735. uint32_t maxStdPPSCount = {};
  97736. const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo = {};
  97737. };
  97738. template <>
  97739. struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT>
  97740. {
  97741. using Type = VideoEncodeH264SessionParametersCreateInfoEXT;
  97742. };
  97743. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  97744. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  97745. struct VideoEncodeH264SessionParametersFeedbackInfoEXT
  97746. {
  97747. using NativeType = VkVideoEncodeH264SessionParametersFeedbackInfoEXT;
  97748. static const bool allowDuplicate = false;
  97749. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionParametersFeedbackInfoEXT;
  97750. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  97751. VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersFeedbackInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides_ = {},
  97752. VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides_ = {},
  97753. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  97754. : pNext( pNext_ )
  97755. , hasStdSPSOverrides( hasStdSPSOverrides_ )
  97756. , hasStdPPSOverrides( hasStdPPSOverrides_ )
  97757. {
  97758. }
  97759. VULKAN_HPP_CONSTEXPR
  97760. VideoEncodeH264SessionParametersFeedbackInfoEXT( VideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97761. VideoEncodeH264SessionParametersFeedbackInfoEXT( VkVideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97762. : VideoEncodeH264SessionParametersFeedbackInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersFeedbackInfoEXT const *>( &rhs ) )
  97763. {
  97764. }
  97765. VideoEncodeH264SessionParametersFeedbackInfoEXT & operator=( VideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97766. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  97767. VideoEncodeH264SessionParametersFeedbackInfoEXT & operator=( VkVideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97768. {
  97769. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoEXT const *>( &rhs );
  97770. return *this;
  97771. }
  97772. operator VkVideoEncodeH264SessionParametersFeedbackInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  97773. {
  97774. return *reinterpret_cast<const VkVideoEncodeH264SessionParametersFeedbackInfoEXT *>( this );
  97775. }
  97776. operator VkVideoEncodeH264SessionParametersFeedbackInfoEXT &() VULKAN_HPP_NOEXCEPT
  97777. {
  97778. return *reinterpret_cast<VkVideoEncodeH264SessionParametersFeedbackInfoEXT *>( this );
  97779. }
  97780. # if defined( VULKAN_HPP_USE_REFLECT )
  97781. # if 14 <= VULKAN_HPP_CPP_VERSION
  97782. auto
  97783. # else
  97784. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  97785. # endif
  97786. reflect() const VULKAN_HPP_NOEXCEPT
  97787. {
  97788. return std::tie( sType, pNext, hasStdSPSOverrides, hasStdPPSOverrides );
  97789. }
  97790. # endif
  97791. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  97792. auto operator<=>( VideoEncodeH264SessionParametersFeedbackInfoEXT const & ) const = default;
  97793. # else
  97794. bool operator==( VideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97795. {
  97796. # if defined( VULKAN_HPP_USE_REFLECT )
  97797. return this->reflect() == rhs.reflect();
  97798. # else
  97799. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hasStdSPSOverrides == rhs.hasStdSPSOverrides ) &&
  97800. ( hasStdPPSOverrides == rhs.hasStdPPSOverrides );
  97801. # endif
  97802. }
  97803. bool operator!=( VideoEncodeH264SessionParametersFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97804. {
  97805. return !operator==( rhs );
  97806. }
  97807. # endif
  97808. public:
  97809. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersFeedbackInfoEXT;
  97810. void * pNext = {};
  97811. VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides = {};
  97812. VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides = {};
  97813. };
  97814. template <>
  97815. struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersFeedbackInfoEXT>
  97816. {
  97817. using Type = VideoEncodeH264SessionParametersFeedbackInfoEXT;
  97818. };
  97819. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  97820. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  97821. struct VideoEncodeH264SessionParametersGetInfoEXT
  97822. {
  97823. using NativeType = VkVideoEncodeH264SessionParametersGetInfoEXT;
  97824. static const bool allowDuplicate = false;
  97825. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264SessionParametersGetInfoEXT;
  97826. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  97827. VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersGetInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ = {},
  97828. VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ = {},
  97829. uint32_t stdSPSId_ = {},
  97830. uint32_t stdPPSId_ = {},
  97831. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  97832. : pNext( pNext_ )
  97833. , writeStdSPS( writeStdSPS_ )
  97834. , writeStdPPS( writeStdPPS_ )
  97835. , stdSPSId( stdSPSId_ )
  97836. , stdPPSId( stdPPSId_ )
  97837. {
  97838. }
  97839. VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersGetInfoEXT( VideoEncodeH264SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97840. VideoEncodeH264SessionParametersGetInfoEXT( VkVideoEncodeH264SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97841. : VideoEncodeH264SessionParametersGetInfoEXT( *reinterpret_cast<VideoEncodeH264SessionParametersGetInfoEXT const *>( &rhs ) )
  97842. {
  97843. }
  97844. VideoEncodeH264SessionParametersGetInfoEXT & operator=( VideoEncodeH264SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97845. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  97846. VideoEncodeH264SessionParametersGetInfoEXT & operator=( VkVideoEncodeH264SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97847. {
  97848. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoEXT const *>( &rhs );
  97849. return *this;
  97850. }
  97851. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  97852. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  97853. {
  97854. pNext = pNext_;
  97855. return *this;
  97856. }
  97857. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoEXT & setWriteStdSPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ ) VULKAN_HPP_NOEXCEPT
  97858. {
  97859. writeStdSPS = writeStdSPS_;
  97860. return *this;
  97861. }
  97862. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoEXT & setWriteStdPPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ ) VULKAN_HPP_NOEXCEPT
  97863. {
  97864. writeStdPPS = writeStdPPS_;
  97865. return *this;
  97866. }
  97867. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoEXT & setStdSPSId( uint32_t stdSPSId_ ) VULKAN_HPP_NOEXCEPT
  97868. {
  97869. stdSPSId = stdSPSId_;
  97870. return *this;
  97871. }
  97872. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersGetInfoEXT & setStdPPSId( uint32_t stdPPSId_ ) VULKAN_HPP_NOEXCEPT
  97873. {
  97874. stdPPSId = stdPPSId_;
  97875. return *this;
  97876. }
  97877. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  97878. operator VkVideoEncodeH264SessionParametersGetInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  97879. {
  97880. return *reinterpret_cast<const VkVideoEncodeH264SessionParametersGetInfoEXT *>( this );
  97881. }
  97882. operator VkVideoEncodeH264SessionParametersGetInfoEXT &() VULKAN_HPP_NOEXCEPT
  97883. {
  97884. return *reinterpret_cast<VkVideoEncodeH264SessionParametersGetInfoEXT *>( this );
  97885. }
  97886. # if defined( VULKAN_HPP_USE_REFLECT )
  97887. # if 14 <= VULKAN_HPP_CPP_VERSION
  97888. auto
  97889. # else
  97890. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  97891. const void * const &,
  97892. VULKAN_HPP_NAMESPACE::Bool32 const &,
  97893. VULKAN_HPP_NAMESPACE::Bool32 const &,
  97894. uint32_t const &,
  97895. uint32_t const &>
  97896. # endif
  97897. reflect() const VULKAN_HPP_NOEXCEPT
  97898. {
  97899. return std::tie( sType, pNext, writeStdSPS, writeStdPPS, stdSPSId, stdPPSId );
  97900. }
  97901. # endif
  97902. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  97903. auto operator<=>( VideoEncodeH264SessionParametersGetInfoEXT const & ) const = default;
  97904. # else
  97905. bool operator==( VideoEncodeH264SessionParametersGetInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97906. {
  97907. # if defined( VULKAN_HPP_USE_REFLECT )
  97908. return this->reflect() == rhs.reflect();
  97909. # else
  97910. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( writeStdSPS == rhs.writeStdSPS ) && ( writeStdPPS == rhs.writeStdPPS ) &&
  97911. ( stdSPSId == rhs.stdSPSId ) && ( stdPPSId == rhs.stdPPSId );
  97912. # endif
  97913. }
  97914. bool operator!=( VideoEncodeH264SessionParametersGetInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  97915. {
  97916. return !operator==( rhs );
  97917. }
  97918. # endif
  97919. public:
  97920. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersGetInfoEXT;
  97921. const void * pNext = {};
  97922. VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS = {};
  97923. VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS = {};
  97924. uint32_t stdSPSId = {};
  97925. uint32_t stdPPSId = {};
  97926. };
  97927. template <>
  97928. struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersGetInfoEXT>
  97929. {
  97930. using Type = VideoEncodeH264SessionParametersGetInfoEXT;
  97931. };
  97932. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  97933. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  97934. struct VideoEncodeH265CapabilitiesEXT
  97935. {
  97936. using NativeType = VkVideoEncodeH265CapabilitiesEXT;
  97937. static const bool allowDuplicate = false;
  97938. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265CapabilitiesEXT;
  97939. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  97940. VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilitiesEXT( VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT flags_ = {},
  97941. StdVideoH265LevelIdc maxLevelIdc_ = {},
  97942. uint32_t maxSliceSegmentCount_ = {},
  97943. VULKAN_HPP_NAMESPACE::Extent2D maxTiles_ = {},
  97944. VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT ctbSizes_ = {},
  97945. VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes_ = {},
  97946. uint32_t maxPPictureL0ReferenceCount_ = {},
  97947. uint32_t maxBPictureL0ReferenceCount_ = {},
  97948. uint32_t maxL1ReferenceCount_ = {},
  97949. uint32_t maxSubLayerCount_ = {},
  97950. VULKAN_HPP_NAMESPACE::Bool32 expectDyadicTemporalSubLayerPattern_ = {},
  97951. int32_t minQp_ = {},
  97952. int32_t maxQp_ = {},
  97953. VULKAN_HPP_NAMESPACE::Bool32 prefersGopRemainingFrames_ = {},
  97954. VULKAN_HPP_NAMESPACE::Bool32 requiresGopRemainingFrames_ = {},
  97955. VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagsEXT stdSyntaxFlags_ = {},
  97956. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  97957. : pNext( pNext_ )
  97958. , flags( flags_ )
  97959. , maxLevelIdc( maxLevelIdc_ )
  97960. , maxSliceSegmentCount( maxSliceSegmentCount_ )
  97961. , maxTiles( maxTiles_ )
  97962. , ctbSizes( ctbSizes_ )
  97963. , transformBlockSizes( transformBlockSizes_ )
  97964. , maxPPictureL0ReferenceCount( maxPPictureL0ReferenceCount_ )
  97965. , maxBPictureL0ReferenceCount( maxBPictureL0ReferenceCount_ )
  97966. , maxL1ReferenceCount( maxL1ReferenceCount_ )
  97967. , maxSubLayerCount( maxSubLayerCount_ )
  97968. , expectDyadicTemporalSubLayerPattern( expectDyadicTemporalSubLayerPattern_ )
  97969. , minQp( minQp_ )
  97970. , maxQp( maxQp_ )
  97971. , prefersGopRemainingFrames( prefersGopRemainingFrames_ )
  97972. , requiresGopRemainingFrames( requiresGopRemainingFrames_ )
  97973. , stdSyntaxFlags( stdSyntaxFlags_ )
  97974. {
  97975. }
  97976. VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilitiesEXT( VideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97977. VideoEncodeH265CapabilitiesEXT( VkVideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97978. : VideoEncodeH265CapabilitiesEXT( *reinterpret_cast<VideoEncodeH265CapabilitiesEXT const *>( &rhs ) )
  97979. {
  97980. }
  97981. VideoEncodeH265CapabilitiesEXT & operator=( VideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  97982. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  97983. VideoEncodeH265CapabilitiesEXT & operator=( VkVideoEncodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  97984. {
  97985. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT const *>( &rhs );
  97986. return *this;
  97987. }
  97988. operator VkVideoEncodeH265CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT
  97989. {
  97990. return *reinterpret_cast<const VkVideoEncodeH265CapabilitiesEXT *>( this );
  97991. }
  97992. operator VkVideoEncodeH265CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT
  97993. {
  97994. return *reinterpret_cast<VkVideoEncodeH265CapabilitiesEXT *>( this );
  97995. }
  97996. # if defined( VULKAN_HPP_USE_REFLECT )
  97997. # if 14 <= VULKAN_HPP_CPP_VERSION
  97998. auto
  97999. # else
  98000. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  98001. void * const &,
  98002. VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT const &,
  98003. StdVideoH265LevelIdc const &,
  98004. uint32_t const &,
  98005. VULKAN_HPP_NAMESPACE::Extent2D const &,
  98006. VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT const &,
  98007. VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT const &,
  98008. uint32_t const &,
  98009. uint32_t const &,
  98010. uint32_t const &,
  98011. uint32_t const &,
  98012. VULKAN_HPP_NAMESPACE::Bool32 const &,
  98013. int32_t const &,
  98014. int32_t const &,
  98015. VULKAN_HPP_NAMESPACE::Bool32 const &,
  98016. VULKAN_HPP_NAMESPACE::Bool32 const &,
  98017. VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagsEXT const &>
  98018. # endif
  98019. reflect() const VULKAN_HPP_NOEXCEPT
  98020. {
  98021. return std::tie( sType,
  98022. pNext,
  98023. flags,
  98024. maxLevelIdc,
  98025. maxSliceSegmentCount,
  98026. maxTiles,
  98027. ctbSizes,
  98028. transformBlockSizes,
  98029. maxPPictureL0ReferenceCount,
  98030. maxBPictureL0ReferenceCount,
  98031. maxL1ReferenceCount,
  98032. maxSubLayerCount,
  98033. expectDyadicTemporalSubLayerPattern,
  98034. minQp,
  98035. maxQp,
  98036. prefersGopRemainingFrames,
  98037. requiresGopRemainingFrames,
  98038. stdSyntaxFlags );
  98039. }
  98040. # endif
  98041. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  98042. std::strong_ordering operator<=>( VideoEncodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98043. {
  98044. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  98045. return cmp;
  98046. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  98047. return cmp;
  98048. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  98049. return cmp;
  98050. if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ); cmp != 0 )
  98051. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  98052. if ( auto cmp = maxSliceSegmentCount <=> rhs.maxSliceSegmentCount; cmp != 0 )
  98053. return cmp;
  98054. if ( auto cmp = maxTiles <=> rhs.maxTiles; cmp != 0 )
  98055. return cmp;
  98056. if ( auto cmp = ctbSizes <=> rhs.ctbSizes; cmp != 0 )
  98057. return cmp;
  98058. if ( auto cmp = transformBlockSizes <=> rhs.transformBlockSizes; cmp != 0 )
  98059. return cmp;
  98060. if ( auto cmp = maxPPictureL0ReferenceCount <=> rhs.maxPPictureL0ReferenceCount; cmp != 0 )
  98061. return cmp;
  98062. if ( auto cmp = maxBPictureL0ReferenceCount <=> rhs.maxBPictureL0ReferenceCount; cmp != 0 )
  98063. return cmp;
  98064. if ( auto cmp = maxL1ReferenceCount <=> rhs.maxL1ReferenceCount; cmp != 0 )
  98065. return cmp;
  98066. if ( auto cmp = maxSubLayerCount <=> rhs.maxSubLayerCount; cmp != 0 )
  98067. return cmp;
  98068. if ( auto cmp = expectDyadicTemporalSubLayerPattern <=> rhs.expectDyadicTemporalSubLayerPattern; cmp != 0 )
  98069. return cmp;
  98070. if ( auto cmp = minQp <=> rhs.minQp; cmp != 0 )
  98071. return cmp;
  98072. if ( auto cmp = maxQp <=> rhs.maxQp; cmp != 0 )
  98073. return cmp;
  98074. if ( auto cmp = prefersGopRemainingFrames <=> rhs.prefersGopRemainingFrames; cmp != 0 )
  98075. return cmp;
  98076. if ( auto cmp = requiresGopRemainingFrames <=> rhs.requiresGopRemainingFrames; cmp != 0 )
  98077. return cmp;
  98078. if ( auto cmp = stdSyntaxFlags <=> rhs.stdSyntaxFlags; cmp != 0 )
  98079. return cmp;
  98080. return std::strong_ordering::equivalent;
  98081. }
  98082. # endif
  98083. bool operator==( VideoEncodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98084. {
  98085. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  98086. ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ) == 0 ) && ( maxSliceSegmentCount == rhs.maxSliceSegmentCount ) &&
  98087. ( maxTiles == rhs.maxTiles ) && ( ctbSizes == rhs.ctbSizes ) && ( transformBlockSizes == rhs.transformBlockSizes ) &&
  98088. ( maxPPictureL0ReferenceCount == rhs.maxPPictureL0ReferenceCount ) && ( maxBPictureL0ReferenceCount == rhs.maxBPictureL0ReferenceCount ) &&
  98089. ( maxL1ReferenceCount == rhs.maxL1ReferenceCount ) && ( maxSubLayerCount == rhs.maxSubLayerCount ) &&
  98090. ( expectDyadicTemporalSubLayerPattern == rhs.expectDyadicTemporalSubLayerPattern ) && ( minQp == rhs.minQp ) && ( maxQp == rhs.maxQp ) &&
  98091. ( prefersGopRemainingFrames == rhs.prefersGopRemainingFrames ) && ( requiresGopRemainingFrames == rhs.requiresGopRemainingFrames ) &&
  98092. ( stdSyntaxFlags == rhs.stdSyntaxFlags );
  98093. }
  98094. bool operator!=( VideoEncodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98095. {
  98096. return !operator==( rhs );
  98097. }
  98098. public:
  98099. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265CapabilitiesEXT;
  98100. void * pNext = {};
  98101. VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilityFlagsEXT flags = {};
  98102. StdVideoH265LevelIdc maxLevelIdc = {};
  98103. uint32_t maxSliceSegmentCount = {};
  98104. VULKAN_HPP_NAMESPACE::Extent2D maxTiles = {};
  98105. VULKAN_HPP_NAMESPACE::VideoEncodeH265CtbSizeFlagsEXT ctbSizes = {};
  98106. VULKAN_HPP_NAMESPACE::VideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes = {};
  98107. uint32_t maxPPictureL0ReferenceCount = {};
  98108. uint32_t maxBPictureL0ReferenceCount = {};
  98109. uint32_t maxL1ReferenceCount = {};
  98110. uint32_t maxSubLayerCount = {};
  98111. VULKAN_HPP_NAMESPACE::Bool32 expectDyadicTemporalSubLayerPattern = {};
  98112. int32_t minQp = {};
  98113. int32_t maxQp = {};
  98114. VULKAN_HPP_NAMESPACE::Bool32 prefersGopRemainingFrames = {};
  98115. VULKAN_HPP_NAMESPACE::Bool32 requiresGopRemainingFrames = {};
  98116. VULKAN_HPP_NAMESPACE::VideoEncodeH265StdFlagsEXT stdSyntaxFlags = {};
  98117. };
  98118. template <>
  98119. struct CppType<StructureType, StructureType::eVideoEncodeH265CapabilitiesEXT>
  98120. {
  98121. using Type = VideoEncodeH265CapabilitiesEXT;
  98122. };
  98123. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  98124. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  98125. struct VideoEncodeH265DpbSlotInfoEXT
  98126. {
  98127. using NativeType = VkVideoEncodeH265DpbSlotInfoEXT;
  98128. static const bool allowDuplicate = false;
  98129. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265DpbSlotInfoEXT;
  98130. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  98131. VULKAN_HPP_CONSTEXPR VideoEncodeH265DpbSlotInfoEXT( const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo_ = {},
  98132. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  98133. : pNext( pNext_ )
  98134. , pStdReferenceInfo( pStdReferenceInfo_ )
  98135. {
  98136. }
  98137. VULKAN_HPP_CONSTEXPR VideoEncodeH265DpbSlotInfoEXT( VideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98138. VideoEncodeH265DpbSlotInfoEXT( VkVideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98139. : VideoEncodeH265DpbSlotInfoEXT( *reinterpret_cast<VideoEncodeH265DpbSlotInfoEXT const *>( &rhs ) )
  98140. {
  98141. }
  98142. VideoEncodeH265DpbSlotInfoEXT & operator=( VideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98143. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  98144. VideoEncodeH265DpbSlotInfoEXT & operator=( VkVideoEncodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98145. {
  98146. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT const *>( &rhs );
  98147. return *this;
  98148. }
  98149. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  98150. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  98151. {
  98152. pNext = pNext_;
  98153. return *this;
  98154. }
  98155. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265DpbSlotInfoEXT &
  98156. setPStdReferenceInfo( const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT
  98157. {
  98158. pStdReferenceInfo = pStdReferenceInfo_;
  98159. return *this;
  98160. }
  98161. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  98162. operator VkVideoEncodeH265DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  98163. {
  98164. return *reinterpret_cast<const VkVideoEncodeH265DpbSlotInfoEXT *>( this );
  98165. }
  98166. operator VkVideoEncodeH265DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT
  98167. {
  98168. return *reinterpret_cast<VkVideoEncodeH265DpbSlotInfoEXT *>( this );
  98169. }
  98170. # if defined( VULKAN_HPP_USE_REFLECT )
  98171. # if 14 <= VULKAN_HPP_CPP_VERSION
  98172. auto
  98173. # else
  98174. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, const StdVideoEncodeH265ReferenceInfo * const &>
  98175. # endif
  98176. reflect() const VULKAN_HPP_NOEXCEPT
  98177. {
  98178. return std::tie( sType, pNext, pStdReferenceInfo );
  98179. }
  98180. # endif
  98181. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  98182. auto operator<=>( VideoEncodeH265DpbSlotInfoEXT const & ) const = default;
  98183. # else
  98184. bool operator==( VideoEncodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98185. {
  98186. # if defined( VULKAN_HPP_USE_REFLECT )
  98187. return this->reflect() == rhs.reflect();
  98188. # else
  98189. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo );
  98190. # endif
  98191. }
  98192. bool operator!=( VideoEncodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98193. {
  98194. return !operator==( rhs );
  98195. }
  98196. # endif
  98197. public:
  98198. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265DpbSlotInfoEXT;
  98199. const void * pNext = {};
  98200. const StdVideoEncodeH265ReferenceInfo * pStdReferenceInfo = {};
  98201. };
  98202. template <>
  98203. struct CppType<StructureType, StructureType::eVideoEncodeH265DpbSlotInfoEXT>
  98204. {
  98205. using Type = VideoEncodeH265DpbSlotInfoEXT;
  98206. };
  98207. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  98208. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  98209. struct VideoEncodeH265FrameSizeEXT
  98210. {
  98211. using NativeType = VkVideoEncodeH265FrameSizeEXT;
  98212. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  98213. VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeEXT( uint32_t frameISize_ = {}, uint32_t framePSize_ = {}, uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
  98214. : frameISize( frameISize_ )
  98215. , framePSize( framePSize_ )
  98216. , frameBSize( frameBSize_ )
  98217. {
  98218. }
  98219. VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeEXT( VideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98220. VideoEncodeH265FrameSizeEXT( VkVideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98221. : VideoEncodeH265FrameSizeEXT( *reinterpret_cast<VideoEncodeH265FrameSizeEXT const *>( &rhs ) )
  98222. {
  98223. }
  98224. VideoEncodeH265FrameSizeEXT & operator=( VideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98225. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  98226. VideoEncodeH265FrameSizeEXT & operator=( VkVideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98227. {
  98228. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const *>( &rhs );
  98229. return *this;
  98230. }
  98231. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  98232. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
  98233. {
  98234. frameISize = frameISize_;
  98235. return *this;
  98236. }
  98237. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
  98238. {
  98239. framePSize = framePSize_;
  98240. return *this;
  98241. }
  98242. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
  98243. {
  98244. frameBSize = frameBSize_;
  98245. return *this;
  98246. }
  98247. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  98248. operator VkVideoEncodeH265FrameSizeEXT const &() const VULKAN_HPP_NOEXCEPT
  98249. {
  98250. return *reinterpret_cast<const VkVideoEncodeH265FrameSizeEXT *>( this );
  98251. }
  98252. operator VkVideoEncodeH265FrameSizeEXT &() VULKAN_HPP_NOEXCEPT
  98253. {
  98254. return *reinterpret_cast<VkVideoEncodeH265FrameSizeEXT *>( this );
  98255. }
  98256. # if defined( VULKAN_HPP_USE_REFLECT )
  98257. # if 14 <= VULKAN_HPP_CPP_VERSION
  98258. auto
  98259. # else
  98260. std::tuple<uint32_t const &, uint32_t const &, uint32_t const &>
  98261. # endif
  98262. reflect() const VULKAN_HPP_NOEXCEPT
  98263. {
  98264. return std::tie( frameISize, framePSize, frameBSize );
  98265. }
  98266. # endif
  98267. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  98268. auto operator<=>( VideoEncodeH265FrameSizeEXT const & ) const = default;
  98269. # else
  98270. bool operator==( VideoEncodeH265FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98271. {
  98272. # if defined( VULKAN_HPP_USE_REFLECT )
  98273. return this->reflect() == rhs.reflect();
  98274. # else
  98275. return ( frameISize == rhs.frameISize ) && ( framePSize == rhs.framePSize ) && ( frameBSize == rhs.frameBSize );
  98276. # endif
  98277. }
  98278. bool operator!=( VideoEncodeH265FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98279. {
  98280. return !operator==( rhs );
  98281. }
  98282. # endif
  98283. public:
  98284. uint32_t frameISize = {};
  98285. uint32_t framePSize = {};
  98286. uint32_t frameBSize = {};
  98287. };
  98288. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  98289. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  98290. struct VideoEncodeH265GopRemainingFrameInfoEXT
  98291. {
  98292. using NativeType = VkVideoEncodeH265GopRemainingFrameInfoEXT;
  98293. static const bool allowDuplicate = false;
  98294. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265GopRemainingFrameInfoEXT;
  98295. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  98296. VULKAN_HPP_CONSTEXPR VideoEncodeH265GopRemainingFrameInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ = {},
  98297. uint32_t gopRemainingI_ = {},
  98298. uint32_t gopRemainingP_ = {},
  98299. uint32_t gopRemainingB_ = {},
  98300. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  98301. : pNext( pNext_ )
  98302. , useGopRemainingFrames( useGopRemainingFrames_ )
  98303. , gopRemainingI( gopRemainingI_ )
  98304. , gopRemainingP( gopRemainingP_ )
  98305. , gopRemainingB( gopRemainingB_ )
  98306. {
  98307. }
  98308. VULKAN_HPP_CONSTEXPR VideoEncodeH265GopRemainingFrameInfoEXT( VideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98309. VideoEncodeH265GopRemainingFrameInfoEXT( VkVideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98310. : VideoEncodeH265GopRemainingFrameInfoEXT( *reinterpret_cast<VideoEncodeH265GopRemainingFrameInfoEXT const *>( &rhs ) )
  98311. {
  98312. }
  98313. VideoEncodeH265GopRemainingFrameInfoEXT & operator=( VideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98314. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  98315. VideoEncodeH265GopRemainingFrameInfoEXT & operator=( VkVideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98316. {
  98317. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoEXT const *>( &rhs );
  98318. return *this;
  98319. }
  98320. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  98321. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  98322. {
  98323. pNext = pNext_;
  98324. return *this;
  98325. }
  98326. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoEXT &
  98327. setUseGopRemainingFrames( VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames_ ) VULKAN_HPP_NOEXCEPT
  98328. {
  98329. useGopRemainingFrames = useGopRemainingFrames_;
  98330. return *this;
  98331. }
  98332. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoEXT & setGopRemainingI( uint32_t gopRemainingI_ ) VULKAN_HPP_NOEXCEPT
  98333. {
  98334. gopRemainingI = gopRemainingI_;
  98335. return *this;
  98336. }
  98337. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoEXT & setGopRemainingP( uint32_t gopRemainingP_ ) VULKAN_HPP_NOEXCEPT
  98338. {
  98339. gopRemainingP = gopRemainingP_;
  98340. return *this;
  98341. }
  98342. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265GopRemainingFrameInfoEXT & setGopRemainingB( uint32_t gopRemainingB_ ) VULKAN_HPP_NOEXCEPT
  98343. {
  98344. gopRemainingB = gopRemainingB_;
  98345. return *this;
  98346. }
  98347. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  98348. operator VkVideoEncodeH265GopRemainingFrameInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  98349. {
  98350. return *reinterpret_cast<const VkVideoEncodeH265GopRemainingFrameInfoEXT *>( this );
  98351. }
  98352. operator VkVideoEncodeH265GopRemainingFrameInfoEXT &() VULKAN_HPP_NOEXCEPT
  98353. {
  98354. return *reinterpret_cast<VkVideoEncodeH265GopRemainingFrameInfoEXT *>( this );
  98355. }
  98356. # if defined( VULKAN_HPP_USE_REFLECT )
  98357. # if 14 <= VULKAN_HPP_CPP_VERSION
  98358. auto
  98359. # else
  98360. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  98361. const void * const &,
  98362. VULKAN_HPP_NAMESPACE::Bool32 const &,
  98363. uint32_t const &,
  98364. uint32_t const &,
  98365. uint32_t const &>
  98366. # endif
  98367. reflect() const VULKAN_HPP_NOEXCEPT
  98368. {
  98369. return std::tie( sType, pNext, useGopRemainingFrames, gopRemainingI, gopRemainingP, gopRemainingB );
  98370. }
  98371. # endif
  98372. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  98373. auto operator<=>( VideoEncodeH265GopRemainingFrameInfoEXT const & ) const = default;
  98374. # else
  98375. bool operator==( VideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98376. {
  98377. # if defined( VULKAN_HPP_USE_REFLECT )
  98378. return this->reflect() == rhs.reflect();
  98379. # else
  98380. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useGopRemainingFrames == rhs.useGopRemainingFrames ) &&
  98381. ( gopRemainingI == rhs.gopRemainingI ) && ( gopRemainingP == rhs.gopRemainingP ) && ( gopRemainingB == rhs.gopRemainingB );
  98382. # endif
  98383. }
  98384. bool operator!=( VideoEncodeH265GopRemainingFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98385. {
  98386. return !operator==( rhs );
  98387. }
  98388. # endif
  98389. public:
  98390. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265GopRemainingFrameInfoEXT;
  98391. const void * pNext = {};
  98392. VULKAN_HPP_NAMESPACE::Bool32 useGopRemainingFrames = {};
  98393. uint32_t gopRemainingI = {};
  98394. uint32_t gopRemainingP = {};
  98395. uint32_t gopRemainingB = {};
  98396. };
  98397. template <>
  98398. struct CppType<StructureType, StructureType::eVideoEncodeH265GopRemainingFrameInfoEXT>
  98399. {
  98400. using Type = VideoEncodeH265GopRemainingFrameInfoEXT;
  98401. };
  98402. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  98403. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  98404. struct VideoEncodeH265NaluSliceSegmentInfoEXT
  98405. {
  98406. using NativeType = VkVideoEncodeH265NaluSliceSegmentInfoEXT;
  98407. static const bool allowDuplicate = false;
  98408. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT;
  98409. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  98410. VULKAN_HPP_CONSTEXPR VideoEncodeH265NaluSliceSegmentInfoEXT( int32_t constantQp_ = {},
  98411. const StdVideoEncodeH265SliceSegmentHeader * pStdSliceSegmentHeader_ = {},
  98412. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  98413. : pNext( pNext_ )
  98414. , constantQp( constantQp_ )
  98415. , pStdSliceSegmentHeader( pStdSliceSegmentHeader_ )
  98416. {
  98417. }
  98418. VULKAN_HPP_CONSTEXPR VideoEncodeH265NaluSliceSegmentInfoEXT( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98419. VideoEncodeH265NaluSliceSegmentInfoEXT( VkVideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98420. : VideoEncodeH265NaluSliceSegmentInfoEXT( *reinterpret_cast<VideoEncodeH265NaluSliceSegmentInfoEXT const *>( &rhs ) )
  98421. {
  98422. }
  98423. VideoEncodeH265NaluSliceSegmentInfoEXT & operator=( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98424. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  98425. VideoEncodeH265NaluSliceSegmentInfoEXT & operator=( VkVideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98426. {
  98427. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT const *>( &rhs );
  98428. return *this;
  98429. }
  98430. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  98431. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  98432. {
  98433. pNext = pNext_;
  98434. return *this;
  98435. }
  98436. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT & setConstantQp( int32_t constantQp_ ) VULKAN_HPP_NOEXCEPT
  98437. {
  98438. constantQp = constantQp_;
  98439. return *this;
  98440. }
  98441. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceSegmentInfoEXT &
  98442. setPStdSliceSegmentHeader( const StdVideoEncodeH265SliceSegmentHeader * pStdSliceSegmentHeader_ ) VULKAN_HPP_NOEXCEPT
  98443. {
  98444. pStdSliceSegmentHeader = pStdSliceSegmentHeader_;
  98445. return *this;
  98446. }
  98447. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  98448. operator VkVideoEncodeH265NaluSliceSegmentInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  98449. {
  98450. return *reinterpret_cast<const VkVideoEncodeH265NaluSliceSegmentInfoEXT *>( this );
  98451. }
  98452. operator VkVideoEncodeH265NaluSliceSegmentInfoEXT &() VULKAN_HPP_NOEXCEPT
  98453. {
  98454. return *reinterpret_cast<VkVideoEncodeH265NaluSliceSegmentInfoEXT *>( this );
  98455. }
  98456. # if defined( VULKAN_HPP_USE_REFLECT )
  98457. # if 14 <= VULKAN_HPP_CPP_VERSION
  98458. auto
  98459. # else
  98460. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, int32_t const &, const StdVideoEncodeH265SliceSegmentHeader * const &>
  98461. # endif
  98462. reflect() const VULKAN_HPP_NOEXCEPT
  98463. {
  98464. return std::tie( sType, pNext, constantQp, pStdSliceSegmentHeader );
  98465. }
  98466. # endif
  98467. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  98468. auto operator<=>( VideoEncodeH265NaluSliceSegmentInfoEXT const & ) const = default;
  98469. # else
  98470. bool operator==( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98471. {
  98472. # if defined( VULKAN_HPP_USE_REFLECT )
  98473. return this->reflect() == rhs.reflect();
  98474. # else
  98475. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( constantQp == rhs.constantQp ) && ( pStdSliceSegmentHeader == rhs.pStdSliceSegmentHeader );
  98476. # endif
  98477. }
  98478. bool operator!=( VideoEncodeH265NaluSliceSegmentInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98479. {
  98480. return !operator==( rhs );
  98481. }
  98482. # endif
  98483. public:
  98484. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT;
  98485. const void * pNext = {};
  98486. int32_t constantQp = {};
  98487. const StdVideoEncodeH265SliceSegmentHeader * pStdSliceSegmentHeader = {};
  98488. };
  98489. template <>
  98490. struct CppType<StructureType, StructureType::eVideoEncodeH265NaluSliceSegmentInfoEXT>
  98491. {
  98492. using Type = VideoEncodeH265NaluSliceSegmentInfoEXT;
  98493. };
  98494. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  98495. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  98496. struct VideoEncodeH265PictureInfoEXT
  98497. {
  98498. using NativeType = VkVideoEncodeH265PictureInfoEXT;
  98499. static const bool allowDuplicate = false;
  98500. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265PictureInfoEXT;
  98501. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  98502. VULKAN_HPP_CONSTEXPR VideoEncodeH265PictureInfoEXT( uint32_t naluSliceSegmentEntryCount_ = {},
  98503. const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries_ = {},
  98504. const StdVideoEncodeH265PictureInfo * pStdPictureInfo_ = {},
  98505. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  98506. : pNext( pNext_ )
  98507. , naluSliceSegmentEntryCount( naluSliceSegmentEntryCount_ )
  98508. , pNaluSliceSegmentEntries( pNaluSliceSegmentEntries_ )
  98509. , pStdPictureInfo( pStdPictureInfo_ )
  98510. {
  98511. }
  98512. VULKAN_HPP_CONSTEXPR VideoEncodeH265PictureInfoEXT( VideoEncodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98513. VideoEncodeH265PictureInfoEXT( VkVideoEncodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98514. : VideoEncodeH265PictureInfoEXT( *reinterpret_cast<VideoEncodeH265PictureInfoEXT const *>( &rhs ) )
  98515. {
  98516. }
  98517. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  98518. VideoEncodeH265PictureInfoEXT(
  98519. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT> const & naluSliceSegmentEntries_,
  98520. const StdVideoEncodeH265PictureInfo * pStdPictureInfo_ = {},
  98521. const void * pNext_ = nullptr )
  98522. : pNext( pNext_ )
  98523. , naluSliceSegmentEntryCount( static_cast<uint32_t>( naluSliceSegmentEntries_.size() ) )
  98524. , pNaluSliceSegmentEntries( naluSliceSegmentEntries_.data() )
  98525. , pStdPictureInfo( pStdPictureInfo_ )
  98526. {
  98527. }
  98528. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  98529. VideoEncodeH265PictureInfoEXT & operator=( VideoEncodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98530. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  98531. VideoEncodeH265PictureInfoEXT & operator=( VkVideoEncodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98532. {
  98533. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoEXT const *>( &rhs );
  98534. return *this;
  98535. }
  98536. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  98537. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  98538. {
  98539. pNext = pNext_;
  98540. return *this;
  98541. }
  98542. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoEXT & setNaluSliceSegmentEntryCount( uint32_t naluSliceSegmentEntryCount_ ) VULKAN_HPP_NOEXCEPT
  98543. {
  98544. naluSliceSegmentEntryCount = naluSliceSegmentEntryCount_;
  98545. return *this;
  98546. }
  98547. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoEXT &
  98548. setPNaluSliceSegmentEntries( const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries_ ) VULKAN_HPP_NOEXCEPT
  98549. {
  98550. pNaluSliceSegmentEntries = pNaluSliceSegmentEntries_;
  98551. return *this;
  98552. }
  98553. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  98554. VideoEncodeH265PictureInfoEXT & setNaluSliceSegmentEntries(
  98555. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT> const & naluSliceSegmentEntries_ )
  98556. VULKAN_HPP_NOEXCEPT
  98557. {
  98558. naluSliceSegmentEntryCount = static_cast<uint32_t>( naluSliceSegmentEntries_.size() );
  98559. pNaluSliceSegmentEntries = naluSliceSegmentEntries_.data();
  98560. return *this;
  98561. }
  98562. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  98563. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265PictureInfoEXT & setPStdPictureInfo( const StdVideoEncodeH265PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT
  98564. {
  98565. pStdPictureInfo = pStdPictureInfo_;
  98566. return *this;
  98567. }
  98568. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  98569. operator VkVideoEncodeH265PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  98570. {
  98571. return *reinterpret_cast<const VkVideoEncodeH265PictureInfoEXT *>( this );
  98572. }
  98573. operator VkVideoEncodeH265PictureInfoEXT &() VULKAN_HPP_NOEXCEPT
  98574. {
  98575. return *reinterpret_cast<VkVideoEncodeH265PictureInfoEXT *>( this );
  98576. }
  98577. # if defined( VULKAN_HPP_USE_REFLECT )
  98578. # if 14 <= VULKAN_HPP_CPP_VERSION
  98579. auto
  98580. # else
  98581. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  98582. const void * const &,
  98583. uint32_t const &,
  98584. const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * const &,
  98585. const StdVideoEncodeH265PictureInfo * const &>
  98586. # endif
  98587. reflect() const VULKAN_HPP_NOEXCEPT
  98588. {
  98589. return std::tie( sType, pNext, naluSliceSegmentEntryCount, pNaluSliceSegmentEntries, pStdPictureInfo );
  98590. }
  98591. # endif
  98592. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  98593. auto operator<=>( VideoEncodeH265PictureInfoEXT const & ) const = default;
  98594. # else
  98595. bool operator==( VideoEncodeH265PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98596. {
  98597. # if defined( VULKAN_HPP_USE_REFLECT )
  98598. return this->reflect() == rhs.reflect();
  98599. # else
  98600. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( naluSliceSegmentEntryCount == rhs.naluSliceSegmentEntryCount ) &&
  98601. ( pNaluSliceSegmentEntries == rhs.pNaluSliceSegmentEntries ) && ( pStdPictureInfo == rhs.pStdPictureInfo );
  98602. # endif
  98603. }
  98604. bool operator!=( VideoEncodeH265PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98605. {
  98606. return !operator==( rhs );
  98607. }
  98608. # endif
  98609. public:
  98610. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265PictureInfoEXT;
  98611. const void * pNext = {};
  98612. uint32_t naluSliceSegmentEntryCount = {};
  98613. const VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT * pNaluSliceSegmentEntries = {};
  98614. const StdVideoEncodeH265PictureInfo * pStdPictureInfo = {};
  98615. };
  98616. template <>
  98617. struct CppType<StructureType, StructureType::eVideoEncodeH265PictureInfoEXT>
  98618. {
  98619. using Type = VideoEncodeH265PictureInfoEXT;
  98620. };
  98621. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  98622. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  98623. struct VideoEncodeH265ProfileInfoEXT
  98624. {
  98625. using NativeType = VkVideoEncodeH265ProfileInfoEXT;
  98626. static const bool allowDuplicate = false;
  98627. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265ProfileInfoEXT;
  98628. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  98629. VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileInfoEXT( StdVideoH265ProfileIdc stdProfileIdc_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  98630. : pNext( pNext_ )
  98631. , stdProfileIdc( stdProfileIdc_ )
  98632. {
  98633. }
  98634. VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileInfoEXT( VideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98635. VideoEncodeH265ProfileInfoEXT( VkVideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98636. : VideoEncodeH265ProfileInfoEXT( *reinterpret_cast<VideoEncodeH265ProfileInfoEXT const *>( &rhs ) )
  98637. {
  98638. }
  98639. VideoEncodeH265ProfileInfoEXT & operator=( VideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98640. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  98641. VideoEncodeH265ProfileInfoEXT & operator=( VkVideoEncodeH265ProfileInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98642. {
  98643. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT const *>( &rhs );
  98644. return *this;
  98645. }
  98646. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  98647. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  98648. {
  98649. pNext = pNext_;
  98650. return *this;
  98651. }
  98652. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileInfoEXT & setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
  98653. {
  98654. stdProfileIdc = stdProfileIdc_;
  98655. return *this;
  98656. }
  98657. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  98658. operator VkVideoEncodeH265ProfileInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  98659. {
  98660. return *reinterpret_cast<const VkVideoEncodeH265ProfileInfoEXT *>( this );
  98661. }
  98662. operator VkVideoEncodeH265ProfileInfoEXT &() VULKAN_HPP_NOEXCEPT
  98663. {
  98664. return *reinterpret_cast<VkVideoEncodeH265ProfileInfoEXT *>( this );
  98665. }
  98666. # if defined( VULKAN_HPP_USE_REFLECT )
  98667. # if 14 <= VULKAN_HPP_CPP_VERSION
  98668. auto
  98669. # else
  98670. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, StdVideoH265ProfileIdc const &>
  98671. # endif
  98672. reflect() const VULKAN_HPP_NOEXCEPT
  98673. {
  98674. return std::tie( sType, pNext, stdProfileIdc );
  98675. }
  98676. # endif
  98677. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  98678. std::strong_ordering operator<=>( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98679. {
  98680. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  98681. return cmp;
  98682. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  98683. return cmp;
  98684. if ( auto cmp = memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ); cmp != 0 )
  98685. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  98686. return std::strong_ordering::equivalent;
  98687. }
  98688. # endif
  98689. bool operator==( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98690. {
  98691. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ) == 0 );
  98692. }
  98693. bool operator!=( VideoEncodeH265ProfileInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98694. {
  98695. return !operator==( rhs );
  98696. }
  98697. public:
  98698. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265ProfileInfoEXT;
  98699. const void * pNext = {};
  98700. StdVideoH265ProfileIdc stdProfileIdc = {};
  98701. };
  98702. template <>
  98703. struct CppType<StructureType, StructureType::eVideoEncodeH265ProfileInfoEXT>
  98704. {
  98705. using Type = VideoEncodeH265ProfileInfoEXT;
  98706. };
  98707. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  98708. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  98709. struct VideoEncodeH265QpEXT
  98710. {
  98711. using NativeType = VkVideoEncodeH265QpEXT;
  98712. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  98713. VULKAN_HPP_CONSTEXPR VideoEncodeH265QpEXT( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
  98714. : qpI( qpI_ )
  98715. , qpP( qpP_ )
  98716. , qpB( qpB_ )
  98717. {
  98718. }
  98719. VULKAN_HPP_CONSTEXPR VideoEncodeH265QpEXT( VideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98720. VideoEncodeH265QpEXT( VkVideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98721. : VideoEncodeH265QpEXT( *reinterpret_cast<VideoEncodeH265QpEXT const *>( &rhs ) )
  98722. {
  98723. }
  98724. VideoEncodeH265QpEXT & operator=( VideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98725. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  98726. VideoEncodeH265QpEXT & operator=( VkVideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98727. {
  98728. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const *>( &rhs );
  98729. return *this;
  98730. }
  98731. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  98732. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
  98733. {
  98734. qpI = qpI_;
  98735. return *this;
  98736. }
  98737. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
  98738. {
  98739. qpP = qpP_;
  98740. return *this;
  98741. }
  98742. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
  98743. {
  98744. qpB = qpB_;
  98745. return *this;
  98746. }
  98747. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  98748. operator VkVideoEncodeH265QpEXT const &() const VULKAN_HPP_NOEXCEPT
  98749. {
  98750. return *reinterpret_cast<const VkVideoEncodeH265QpEXT *>( this );
  98751. }
  98752. operator VkVideoEncodeH265QpEXT &() VULKAN_HPP_NOEXCEPT
  98753. {
  98754. return *reinterpret_cast<VkVideoEncodeH265QpEXT *>( this );
  98755. }
  98756. # if defined( VULKAN_HPP_USE_REFLECT )
  98757. # if 14 <= VULKAN_HPP_CPP_VERSION
  98758. auto
  98759. # else
  98760. std::tuple<int32_t const &, int32_t const &, int32_t const &>
  98761. # endif
  98762. reflect() const VULKAN_HPP_NOEXCEPT
  98763. {
  98764. return std::tie( qpI, qpP, qpB );
  98765. }
  98766. # endif
  98767. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  98768. auto operator<=>( VideoEncodeH265QpEXT const & ) const = default;
  98769. # else
  98770. bool operator==( VideoEncodeH265QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98771. {
  98772. # if defined( VULKAN_HPP_USE_REFLECT )
  98773. return this->reflect() == rhs.reflect();
  98774. # else
  98775. return ( qpI == rhs.qpI ) && ( qpP == rhs.qpP ) && ( qpB == rhs.qpB );
  98776. # endif
  98777. }
  98778. bool operator!=( VideoEncodeH265QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98779. {
  98780. return !operator==( rhs );
  98781. }
  98782. # endif
  98783. public:
  98784. int32_t qpI = {};
  98785. int32_t qpP = {};
  98786. int32_t qpB = {};
  98787. };
  98788. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  98789. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  98790. struct VideoEncodeH265QualityLevelPropertiesEXT
  98791. {
  98792. using NativeType = VkVideoEncodeH265QualityLevelPropertiesEXT;
  98793. static const bool allowDuplicate = false;
  98794. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265QualityLevelPropertiesEXT;
  98795. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  98796. VULKAN_HPP_CONSTEXPR VideoEncodeH265QualityLevelPropertiesEXT( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT preferredRateControlFlags_ = {},
  98797. uint32_t preferredGopFrameCount_ = {},
  98798. uint32_t preferredIdrPeriod_ = {},
  98799. uint32_t preferredConsecutiveBFrameCount_ = {},
  98800. uint32_t preferredSubLayerCount_ = {},
  98801. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT preferredConstantQp_ = {},
  98802. uint32_t preferredMaxL0ReferenceCount_ = {},
  98803. uint32_t preferredMaxL1ReferenceCount_ = {},
  98804. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  98805. : pNext( pNext_ )
  98806. , preferredRateControlFlags( preferredRateControlFlags_ )
  98807. , preferredGopFrameCount( preferredGopFrameCount_ )
  98808. , preferredIdrPeriod( preferredIdrPeriod_ )
  98809. , preferredConsecutiveBFrameCount( preferredConsecutiveBFrameCount_ )
  98810. , preferredSubLayerCount( preferredSubLayerCount_ )
  98811. , preferredConstantQp( preferredConstantQp_ )
  98812. , preferredMaxL0ReferenceCount( preferredMaxL0ReferenceCount_ )
  98813. , preferredMaxL1ReferenceCount( preferredMaxL1ReferenceCount_ )
  98814. {
  98815. }
  98816. VULKAN_HPP_CONSTEXPR VideoEncodeH265QualityLevelPropertiesEXT( VideoEncodeH265QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98817. VideoEncodeH265QualityLevelPropertiesEXT( VkVideoEncodeH265QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98818. : VideoEncodeH265QualityLevelPropertiesEXT( *reinterpret_cast<VideoEncodeH265QualityLevelPropertiesEXT const *>( &rhs ) )
  98819. {
  98820. }
  98821. VideoEncodeH265QualityLevelPropertiesEXT & operator=( VideoEncodeH265QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98822. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  98823. VideoEncodeH265QualityLevelPropertiesEXT & operator=( VkVideoEncodeH265QualityLevelPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98824. {
  98825. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesEXT const *>( &rhs );
  98826. return *this;
  98827. }
  98828. operator VkVideoEncodeH265QualityLevelPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
  98829. {
  98830. return *reinterpret_cast<const VkVideoEncodeH265QualityLevelPropertiesEXT *>( this );
  98831. }
  98832. operator VkVideoEncodeH265QualityLevelPropertiesEXT &() VULKAN_HPP_NOEXCEPT
  98833. {
  98834. return *reinterpret_cast<VkVideoEncodeH265QualityLevelPropertiesEXT *>( this );
  98835. }
  98836. # if defined( VULKAN_HPP_USE_REFLECT )
  98837. # if 14 <= VULKAN_HPP_CPP_VERSION
  98838. auto
  98839. # else
  98840. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  98841. void * const &,
  98842. VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT const &,
  98843. uint32_t const &,
  98844. uint32_t const &,
  98845. uint32_t const &,
  98846. uint32_t const &,
  98847. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &,
  98848. uint32_t const &,
  98849. uint32_t const &>
  98850. # endif
  98851. reflect() const VULKAN_HPP_NOEXCEPT
  98852. {
  98853. return std::tie( sType,
  98854. pNext,
  98855. preferredRateControlFlags,
  98856. preferredGopFrameCount,
  98857. preferredIdrPeriod,
  98858. preferredConsecutiveBFrameCount,
  98859. preferredSubLayerCount,
  98860. preferredConstantQp,
  98861. preferredMaxL0ReferenceCount,
  98862. preferredMaxL1ReferenceCount );
  98863. }
  98864. # endif
  98865. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  98866. auto operator<=>( VideoEncodeH265QualityLevelPropertiesEXT const & ) const = default;
  98867. # else
  98868. bool operator==( VideoEncodeH265QualityLevelPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98869. {
  98870. # if defined( VULKAN_HPP_USE_REFLECT )
  98871. return this->reflect() == rhs.reflect();
  98872. # else
  98873. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( preferredRateControlFlags == rhs.preferredRateControlFlags ) &&
  98874. ( preferredGopFrameCount == rhs.preferredGopFrameCount ) && ( preferredIdrPeriod == rhs.preferredIdrPeriod ) &&
  98875. ( preferredConsecutiveBFrameCount == rhs.preferredConsecutiveBFrameCount ) && ( preferredSubLayerCount == rhs.preferredSubLayerCount ) &&
  98876. ( preferredConstantQp == rhs.preferredConstantQp ) && ( preferredMaxL0ReferenceCount == rhs.preferredMaxL0ReferenceCount ) &&
  98877. ( preferredMaxL1ReferenceCount == rhs.preferredMaxL1ReferenceCount );
  98878. # endif
  98879. }
  98880. bool operator!=( VideoEncodeH265QualityLevelPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98881. {
  98882. return !operator==( rhs );
  98883. }
  98884. # endif
  98885. public:
  98886. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265QualityLevelPropertiesEXT;
  98887. void * pNext = {};
  98888. VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT preferredRateControlFlags = {};
  98889. uint32_t preferredGopFrameCount = {};
  98890. uint32_t preferredIdrPeriod = {};
  98891. uint32_t preferredConsecutiveBFrameCount = {};
  98892. uint32_t preferredSubLayerCount = {};
  98893. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT preferredConstantQp = {};
  98894. uint32_t preferredMaxL0ReferenceCount = {};
  98895. uint32_t preferredMaxL1ReferenceCount = {};
  98896. };
  98897. template <>
  98898. struct CppType<StructureType, StructureType::eVideoEncodeH265QualityLevelPropertiesEXT>
  98899. {
  98900. using Type = VideoEncodeH265QualityLevelPropertiesEXT;
  98901. };
  98902. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  98903. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  98904. struct VideoEncodeH265RateControlInfoEXT
  98905. {
  98906. using NativeType = VkVideoEncodeH265RateControlInfoEXT;
  98907. static const bool allowDuplicate = false;
  98908. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265RateControlInfoEXT;
  98909. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  98910. VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlInfoEXT( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT flags_ = {},
  98911. uint32_t gopFrameCount_ = {},
  98912. uint32_t idrPeriod_ = {},
  98913. uint32_t consecutiveBFrameCount_ = {},
  98914. uint32_t subLayerCount_ = {},
  98915. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  98916. : pNext( pNext_ )
  98917. , flags( flags_ )
  98918. , gopFrameCount( gopFrameCount_ )
  98919. , idrPeriod( idrPeriod_ )
  98920. , consecutiveBFrameCount( consecutiveBFrameCount_ )
  98921. , subLayerCount( subLayerCount_ )
  98922. {
  98923. }
  98924. VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlInfoEXT( VideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98925. VideoEncodeH265RateControlInfoEXT( VkVideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98926. : VideoEncodeH265RateControlInfoEXT( *reinterpret_cast<VideoEncodeH265RateControlInfoEXT const *>( &rhs ) )
  98927. {
  98928. }
  98929. VideoEncodeH265RateControlInfoEXT & operator=( VideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  98930. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  98931. VideoEncodeH265RateControlInfoEXT & operator=( VkVideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  98932. {
  98933. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT const *>( &rhs );
  98934. return *this;
  98935. }
  98936. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  98937. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  98938. {
  98939. pNext = pNext_;
  98940. return *this;
  98941. }
  98942. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
  98943. {
  98944. flags = flags_;
  98945. return *this;
  98946. }
  98947. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
  98948. {
  98949. gopFrameCount = gopFrameCount_;
  98950. return *this;
  98951. }
  98952. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
  98953. {
  98954. idrPeriod = idrPeriod_;
  98955. return *this;
  98956. }
  98957. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
  98958. {
  98959. consecutiveBFrameCount = consecutiveBFrameCount_;
  98960. return *this;
  98961. }
  98962. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setSubLayerCount( uint32_t subLayerCount_ ) VULKAN_HPP_NOEXCEPT
  98963. {
  98964. subLayerCount = subLayerCount_;
  98965. return *this;
  98966. }
  98967. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  98968. operator VkVideoEncodeH265RateControlInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  98969. {
  98970. return *reinterpret_cast<const VkVideoEncodeH265RateControlInfoEXT *>( this );
  98971. }
  98972. operator VkVideoEncodeH265RateControlInfoEXT &() VULKAN_HPP_NOEXCEPT
  98973. {
  98974. return *reinterpret_cast<VkVideoEncodeH265RateControlInfoEXT *>( this );
  98975. }
  98976. # if defined( VULKAN_HPP_USE_REFLECT )
  98977. # if 14 <= VULKAN_HPP_CPP_VERSION
  98978. auto
  98979. # else
  98980. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  98981. const void * const &,
  98982. VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT const &,
  98983. uint32_t const &,
  98984. uint32_t const &,
  98985. uint32_t const &,
  98986. uint32_t const &>
  98987. # endif
  98988. reflect() const VULKAN_HPP_NOEXCEPT
  98989. {
  98990. return std::tie( sType, pNext, flags, gopFrameCount, idrPeriod, consecutiveBFrameCount, subLayerCount );
  98991. }
  98992. # endif
  98993. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  98994. auto operator<=>( VideoEncodeH265RateControlInfoEXT const & ) const = default;
  98995. # else
  98996. bool operator==( VideoEncodeH265RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  98997. {
  98998. # if defined( VULKAN_HPP_USE_REFLECT )
  98999. return this->reflect() == rhs.reflect();
  99000. # else
  99001. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( gopFrameCount == rhs.gopFrameCount ) &&
  99002. ( idrPeriod == rhs.idrPeriod ) && ( consecutiveBFrameCount == rhs.consecutiveBFrameCount ) && ( subLayerCount == rhs.subLayerCount );
  99003. # endif
  99004. }
  99005. bool operator!=( VideoEncodeH265RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99006. {
  99007. return !operator==( rhs );
  99008. }
  99009. # endif
  99010. public:
  99011. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265RateControlInfoEXT;
  99012. const void * pNext = {};
  99013. VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlFlagsEXT flags = {};
  99014. uint32_t gopFrameCount = {};
  99015. uint32_t idrPeriod = {};
  99016. uint32_t consecutiveBFrameCount = {};
  99017. uint32_t subLayerCount = {};
  99018. };
  99019. template <>
  99020. struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlInfoEXT>
  99021. {
  99022. using Type = VideoEncodeH265RateControlInfoEXT;
  99023. };
  99024. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  99025. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  99026. struct VideoEncodeH265RateControlLayerInfoEXT
  99027. {
  99028. using NativeType = VkVideoEncodeH265RateControlLayerInfoEXT;
  99029. static const bool allowDuplicate = false;
  99030. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265RateControlLayerInfoEXT;
  99031. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  99032. VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ = {},
  99033. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT minQp_ = {},
  99034. VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ = {},
  99035. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT maxQp_ = {},
  99036. VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ = {},
  99037. VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT maxFrameSize_ = {},
  99038. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  99039. : pNext( pNext_ )
  99040. , useMinQp( useMinQp_ )
  99041. , minQp( minQp_ )
  99042. , useMaxQp( useMaxQp_ )
  99043. , maxQp( maxQp_ )
  99044. , useMaxFrameSize( useMaxFrameSize_ )
  99045. , maxFrameSize( maxFrameSize_ )
  99046. {
  99047. }
  99048. VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoEXT( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99049. VideoEncodeH265RateControlLayerInfoEXT( VkVideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99050. : VideoEncodeH265RateControlLayerInfoEXT( *reinterpret_cast<VideoEncodeH265RateControlLayerInfoEXT const *>( &rhs ) )
  99051. {
  99052. }
  99053. VideoEncodeH265RateControlLayerInfoEXT & operator=( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99054. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  99055. VideoEncodeH265RateControlLayerInfoEXT & operator=( VkVideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99056. {
  99057. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT const *>( &rhs );
  99058. return *this;
  99059. }
  99060. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  99061. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  99062. {
  99063. pNext = pNext_;
  99064. return *this;
  99065. }
  99066. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
  99067. {
  99068. useMinQp = useMinQp_;
  99069. return *this;
  99070. }
  99071. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & minQp_ ) VULKAN_HPP_NOEXCEPT
  99072. {
  99073. minQp = minQp_;
  99074. return *this;
  99075. }
  99076. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
  99077. {
  99078. useMaxQp = useMaxQp_;
  99079. return *this;
  99080. }
  99081. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & maxQp_ ) VULKAN_HPP_NOEXCEPT
  99082. {
  99083. maxQp = maxQp_;
  99084. return *this;
  99085. }
  99086. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
  99087. {
  99088. useMaxFrameSize = useMaxFrameSize_;
  99089. return *this;
  99090. }
  99091. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
  99092. setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
  99093. {
  99094. maxFrameSize = maxFrameSize_;
  99095. return *this;
  99096. }
  99097. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  99098. operator VkVideoEncodeH265RateControlLayerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  99099. {
  99100. return *reinterpret_cast<const VkVideoEncodeH265RateControlLayerInfoEXT *>( this );
  99101. }
  99102. operator VkVideoEncodeH265RateControlLayerInfoEXT &() VULKAN_HPP_NOEXCEPT
  99103. {
  99104. return *reinterpret_cast<VkVideoEncodeH265RateControlLayerInfoEXT *>( this );
  99105. }
  99106. # if defined( VULKAN_HPP_USE_REFLECT )
  99107. # if 14 <= VULKAN_HPP_CPP_VERSION
  99108. auto
  99109. # else
  99110. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  99111. const void * const &,
  99112. VULKAN_HPP_NAMESPACE::Bool32 const &,
  99113. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &,
  99114. VULKAN_HPP_NAMESPACE::Bool32 const &,
  99115. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const &,
  99116. VULKAN_HPP_NAMESPACE::Bool32 const &,
  99117. VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const &>
  99118. # endif
  99119. reflect() const VULKAN_HPP_NOEXCEPT
  99120. {
  99121. return std::tie( sType, pNext, useMinQp, minQp, useMaxQp, maxQp, useMaxFrameSize, maxFrameSize );
  99122. }
  99123. # endif
  99124. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  99125. auto operator<=>( VideoEncodeH265RateControlLayerInfoEXT const & ) const = default;
  99126. # else
  99127. bool operator==( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99128. {
  99129. # if defined( VULKAN_HPP_USE_REFLECT )
  99130. return this->reflect() == rhs.reflect();
  99131. # else
  99132. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useMinQp == rhs.useMinQp ) && ( minQp == rhs.minQp ) && ( useMaxQp == rhs.useMaxQp ) &&
  99133. ( maxQp == rhs.maxQp ) && ( useMaxFrameSize == rhs.useMaxFrameSize ) && ( maxFrameSize == rhs.maxFrameSize );
  99134. # endif
  99135. }
  99136. bool operator!=( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99137. {
  99138. return !operator==( rhs );
  99139. }
  99140. # endif
  99141. public:
  99142. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265RateControlLayerInfoEXT;
  99143. const void * pNext = {};
  99144. VULKAN_HPP_NAMESPACE::Bool32 useMinQp = {};
  99145. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT minQp = {};
  99146. VULKAN_HPP_NAMESPACE::Bool32 useMaxQp = {};
  99147. VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT maxQp = {};
  99148. VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize = {};
  99149. VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT maxFrameSize = {};
  99150. };
  99151. template <>
  99152. struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlLayerInfoEXT>
  99153. {
  99154. using Type = VideoEncodeH265RateControlLayerInfoEXT;
  99155. };
  99156. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  99157. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  99158. struct VideoEncodeH265SessionCreateInfoEXT
  99159. {
  99160. using NativeType = VkVideoEncodeH265SessionCreateInfoEXT;
  99161. static const bool allowDuplicate = false;
  99162. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionCreateInfoEXT;
  99163. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  99164. VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ = {},
  99165. StdVideoH265LevelIdc maxLevelIdc_ = {},
  99166. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  99167. : pNext( pNext_ )
  99168. , useMaxLevelIdc( useMaxLevelIdc_ )
  99169. , maxLevelIdc( maxLevelIdc_ )
  99170. {
  99171. }
  99172. VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionCreateInfoEXT( VideoEncodeH265SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99173. VideoEncodeH265SessionCreateInfoEXT( VkVideoEncodeH265SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99174. : VideoEncodeH265SessionCreateInfoEXT( *reinterpret_cast<VideoEncodeH265SessionCreateInfoEXT const *>( &rhs ) )
  99175. {
  99176. }
  99177. VideoEncodeH265SessionCreateInfoEXT & operator=( VideoEncodeH265SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99178. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  99179. VideoEncodeH265SessionCreateInfoEXT & operator=( VkVideoEncodeH265SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99180. {
  99181. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoEXT const *>( &rhs );
  99182. return *this;
  99183. }
  99184. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  99185. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  99186. {
  99187. pNext = pNext_;
  99188. return *this;
  99189. }
  99190. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionCreateInfoEXT & setUseMaxLevelIdc( VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
  99191. {
  99192. useMaxLevelIdc = useMaxLevelIdc_;
  99193. return *this;
  99194. }
  99195. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionCreateInfoEXT & setMaxLevelIdc( StdVideoH265LevelIdc maxLevelIdc_ ) VULKAN_HPP_NOEXCEPT
  99196. {
  99197. maxLevelIdc = maxLevelIdc_;
  99198. return *this;
  99199. }
  99200. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  99201. operator VkVideoEncodeH265SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  99202. {
  99203. return *reinterpret_cast<const VkVideoEncodeH265SessionCreateInfoEXT *>( this );
  99204. }
  99205. operator VkVideoEncodeH265SessionCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  99206. {
  99207. return *reinterpret_cast<VkVideoEncodeH265SessionCreateInfoEXT *>( this );
  99208. }
  99209. # if defined( VULKAN_HPP_USE_REFLECT )
  99210. # if 14 <= VULKAN_HPP_CPP_VERSION
  99211. auto
  99212. # else
  99213. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, StdVideoH265LevelIdc const &>
  99214. # endif
  99215. reflect() const VULKAN_HPP_NOEXCEPT
  99216. {
  99217. return std::tie( sType, pNext, useMaxLevelIdc, maxLevelIdc );
  99218. }
  99219. # endif
  99220. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  99221. std::strong_ordering operator<=>( VideoEncodeH265SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99222. {
  99223. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  99224. return cmp;
  99225. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  99226. return cmp;
  99227. if ( auto cmp = useMaxLevelIdc <=> rhs.useMaxLevelIdc; cmp != 0 )
  99228. return cmp;
  99229. if ( auto cmp = memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ); cmp != 0 )
  99230. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  99231. return std::strong_ordering::equivalent;
  99232. }
  99233. # endif
  99234. bool operator==( VideoEncodeH265SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99235. {
  99236. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( useMaxLevelIdc == rhs.useMaxLevelIdc ) &&
  99237. ( memcmp( &maxLevelIdc, &rhs.maxLevelIdc, sizeof( StdVideoH265LevelIdc ) ) == 0 );
  99238. }
  99239. bool operator!=( VideoEncodeH265SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99240. {
  99241. return !operator==( rhs );
  99242. }
  99243. public:
  99244. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionCreateInfoEXT;
  99245. const void * pNext = {};
  99246. VULKAN_HPP_NAMESPACE::Bool32 useMaxLevelIdc = {};
  99247. StdVideoH265LevelIdc maxLevelIdc = {};
  99248. };
  99249. template <>
  99250. struct CppType<StructureType, StructureType::eVideoEncodeH265SessionCreateInfoEXT>
  99251. {
  99252. using Type = VideoEncodeH265SessionCreateInfoEXT;
  99253. };
  99254. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  99255. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  99256. struct VideoEncodeH265SessionParametersAddInfoEXT
  99257. {
  99258. using NativeType = VkVideoEncodeH265SessionParametersAddInfoEXT;
  99259. static const bool allowDuplicate = false;
  99260. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionParametersAddInfoEXT;
  99261. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  99262. VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersAddInfoEXT( uint32_t stdVPSCount_ = {},
  99263. const StdVideoH265VideoParameterSet * pStdVPSs_ = {},
  99264. uint32_t stdSPSCount_ = {},
  99265. const StdVideoH265SequenceParameterSet * pStdSPSs_ = {},
  99266. uint32_t stdPPSCount_ = {},
  99267. const StdVideoH265PictureParameterSet * pStdPPSs_ = {},
  99268. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  99269. : pNext( pNext_ )
  99270. , stdVPSCount( stdVPSCount_ )
  99271. , pStdVPSs( pStdVPSs_ )
  99272. , stdSPSCount( stdSPSCount_ )
  99273. , pStdSPSs( pStdSPSs_ )
  99274. , stdPPSCount( stdPPSCount_ )
  99275. , pStdPPSs( pStdPPSs_ )
  99276. {
  99277. }
  99278. VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersAddInfoEXT( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99279. VideoEncodeH265SessionParametersAddInfoEXT( VkVideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99280. : VideoEncodeH265SessionParametersAddInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersAddInfoEXT const *>( &rhs ) )
  99281. {
  99282. }
  99283. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  99284. VideoEncodeH265SessionParametersAddInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & stdVPSs_,
  99285. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ = {},
  99286. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & stdPPSs_ = {},
  99287. const void * pNext_ = nullptr )
  99288. : pNext( pNext_ )
  99289. , stdVPSCount( static_cast<uint32_t>( stdVPSs_.size() ) )
  99290. , pStdVPSs( stdVPSs_.data() )
  99291. , stdSPSCount( static_cast<uint32_t>( stdSPSs_.size() ) )
  99292. , pStdSPSs( stdSPSs_.data() )
  99293. , stdPPSCount( static_cast<uint32_t>( stdPPSs_.size() ) )
  99294. , pStdPPSs( stdPPSs_.data() )
  99295. {
  99296. }
  99297. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  99298. VideoEncodeH265SessionParametersAddInfoEXT & operator=( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99299. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  99300. VideoEncodeH265SessionParametersAddInfoEXT & operator=( VkVideoEncodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99301. {
  99302. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT const *>( &rhs );
  99303. return *this;
  99304. }
  99305. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  99306. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  99307. {
  99308. pNext = pNext_;
  99309. return *this;
  99310. }
  99311. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setStdVPSCount( uint32_t stdVPSCount_ ) VULKAN_HPP_NOEXCEPT
  99312. {
  99313. stdVPSCount = stdVPSCount_;
  99314. return *this;
  99315. }
  99316. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPStdVPSs( const StdVideoH265VideoParameterSet * pStdVPSs_ ) VULKAN_HPP_NOEXCEPT
  99317. {
  99318. pStdVPSs = pStdVPSs_;
  99319. return *this;
  99320. }
  99321. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  99322. VideoEncodeH265SessionParametersAddInfoEXT &
  99323. setStdVPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265VideoParameterSet> const & stdVPSs_ ) VULKAN_HPP_NOEXCEPT
  99324. {
  99325. stdVPSCount = static_cast<uint32_t>( stdVPSs_.size() );
  99326. pStdVPSs = stdVPSs_.data();
  99327. return *this;
  99328. }
  99329. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  99330. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setStdSPSCount( uint32_t stdSPSCount_ ) VULKAN_HPP_NOEXCEPT
  99331. {
  99332. stdSPSCount = stdSPSCount_;
  99333. return *this;
  99334. }
  99335. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPStdSPSs( const StdVideoH265SequenceParameterSet * pStdSPSs_ ) VULKAN_HPP_NOEXCEPT
  99336. {
  99337. pStdSPSs = pStdSPSs_;
  99338. return *this;
  99339. }
  99340. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  99341. VideoEncodeH265SessionParametersAddInfoEXT &
  99342. setStdSPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265SequenceParameterSet> const & stdSPSs_ ) VULKAN_HPP_NOEXCEPT
  99343. {
  99344. stdSPSCount = static_cast<uint32_t>( stdSPSs_.size() );
  99345. pStdSPSs = stdSPSs_.data();
  99346. return *this;
  99347. }
  99348. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  99349. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setStdPPSCount( uint32_t stdPPSCount_ ) VULKAN_HPP_NOEXCEPT
  99350. {
  99351. stdPPSCount = stdPPSCount_;
  99352. return *this;
  99353. }
  99354. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersAddInfoEXT & setPStdPPSs( const StdVideoH265PictureParameterSet * pStdPPSs_ ) VULKAN_HPP_NOEXCEPT
  99355. {
  99356. pStdPPSs = pStdPPSs_;
  99357. return *this;
  99358. }
  99359. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  99360. VideoEncodeH265SessionParametersAddInfoEXT &
  99361. setStdPPSs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH265PictureParameterSet> const & stdPPSs_ ) VULKAN_HPP_NOEXCEPT
  99362. {
  99363. stdPPSCount = static_cast<uint32_t>( stdPPSs_.size() );
  99364. pStdPPSs = stdPPSs_.data();
  99365. return *this;
  99366. }
  99367. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  99368. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  99369. operator VkVideoEncodeH265SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  99370. {
  99371. return *reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoEXT *>( this );
  99372. }
  99373. operator VkVideoEncodeH265SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
  99374. {
  99375. return *reinterpret_cast<VkVideoEncodeH265SessionParametersAddInfoEXT *>( this );
  99376. }
  99377. # if defined( VULKAN_HPP_USE_REFLECT )
  99378. # if 14 <= VULKAN_HPP_CPP_VERSION
  99379. auto
  99380. # else
  99381. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  99382. const void * const &,
  99383. uint32_t const &,
  99384. const StdVideoH265VideoParameterSet * const &,
  99385. uint32_t const &,
  99386. const StdVideoH265SequenceParameterSet * const &,
  99387. uint32_t const &,
  99388. const StdVideoH265PictureParameterSet * const &>
  99389. # endif
  99390. reflect() const VULKAN_HPP_NOEXCEPT
  99391. {
  99392. return std::tie( sType, pNext, stdVPSCount, pStdVPSs, stdSPSCount, pStdSPSs, stdPPSCount, pStdPPSs );
  99393. }
  99394. # endif
  99395. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  99396. auto operator<=>( VideoEncodeH265SessionParametersAddInfoEXT const & ) const = default;
  99397. # else
  99398. bool operator==( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99399. {
  99400. # if defined( VULKAN_HPP_USE_REFLECT )
  99401. return this->reflect() == rhs.reflect();
  99402. # else
  99403. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stdVPSCount == rhs.stdVPSCount ) && ( pStdVPSs == rhs.pStdVPSs ) &&
  99404. ( stdSPSCount == rhs.stdSPSCount ) && ( pStdSPSs == rhs.pStdSPSs ) && ( stdPPSCount == rhs.stdPPSCount ) && ( pStdPPSs == rhs.pStdPPSs );
  99405. # endif
  99406. }
  99407. bool operator!=( VideoEncodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99408. {
  99409. return !operator==( rhs );
  99410. }
  99411. # endif
  99412. public:
  99413. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionParametersAddInfoEXT;
  99414. const void * pNext = {};
  99415. uint32_t stdVPSCount = {};
  99416. const StdVideoH265VideoParameterSet * pStdVPSs = {};
  99417. uint32_t stdSPSCount = {};
  99418. const StdVideoH265SequenceParameterSet * pStdSPSs = {};
  99419. uint32_t stdPPSCount = {};
  99420. const StdVideoH265PictureParameterSet * pStdPPSs = {};
  99421. };
  99422. template <>
  99423. struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersAddInfoEXT>
  99424. {
  99425. using Type = VideoEncodeH265SessionParametersAddInfoEXT;
  99426. };
  99427. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  99428. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  99429. struct VideoEncodeH265SessionParametersCreateInfoEXT
  99430. {
  99431. using NativeType = VkVideoEncodeH265SessionParametersCreateInfoEXT;
  99432. static const bool allowDuplicate = false;
  99433. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT;
  99434. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  99435. VULKAN_HPP_CONSTEXPR
  99436. VideoEncodeH265SessionParametersCreateInfoEXT( uint32_t maxStdVPSCount_ = {},
  99437. uint32_t maxStdSPSCount_ = {},
  99438. uint32_t maxStdPPSCount_ = {},
  99439. const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ = {},
  99440. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  99441. : pNext( pNext_ )
  99442. , maxStdVPSCount( maxStdVPSCount_ )
  99443. , maxStdSPSCount( maxStdSPSCount_ )
  99444. , maxStdPPSCount( maxStdPPSCount_ )
  99445. , pParametersAddInfo( pParametersAddInfo_ )
  99446. {
  99447. }
  99448. VULKAN_HPP_CONSTEXPR
  99449. VideoEncodeH265SessionParametersCreateInfoEXT( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99450. VideoEncodeH265SessionParametersCreateInfoEXT( VkVideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99451. : VideoEncodeH265SessionParametersCreateInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersCreateInfoEXT const *>( &rhs ) )
  99452. {
  99453. }
  99454. VideoEncodeH265SessionParametersCreateInfoEXT & operator=( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99455. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  99456. VideoEncodeH265SessionParametersCreateInfoEXT & operator=( VkVideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99457. {
  99458. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT const *>( &rhs );
  99459. return *this;
  99460. }
  99461. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  99462. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  99463. {
  99464. pNext = pNext_;
  99465. return *this;
  99466. }
  99467. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxStdVPSCount( uint32_t maxStdVPSCount_ ) VULKAN_HPP_NOEXCEPT
  99468. {
  99469. maxStdVPSCount = maxStdVPSCount_;
  99470. return *this;
  99471. }
  99472. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxStdSPSCount( uint32_t maxStdSPSCount_ ) VULKAN_HPP_NOEXCEPT
  99473. {
  99474. maxStdSPSCount = maxStdSPSCount_;
  99475. return *this;
  99476. }
  99477. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT & setMaxStdPPSCount( uint32_t maxStdPPSCount_ ) VULKAN_HPP_NOEXCEPT
  99478. {
  99479. maxStdPPSCount = maxStdPPSCount_;
  99480. return *this;
  99481. }
  99482. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersCreateInfoEXT &
  99483. setPParametersAddInfo( const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT
  99484. {
  99485. pParametersAddInfo = pParametersAddInfo_;
  99486. return *this;
  99487. }
  99488. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  99489. operator VkVideoEncodeH265SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  99490. {
  99491. return *reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoEXT *>( this );
  99492. }
  99493. operator VkVideoEncodeH265SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
  99494. {
  99495. return *reinterpret_cast<VkVideoEncodeH265SessionParametersCreateInfoEXT *>( this );
  99496. }
  99497. # if defined( VULKAN_HPP_USE_REFLECT )
  99498. # if 14 <= VULKAN_HPP_CPP_VERSION
  99499. auto
  99500. # else
  99501. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  99502. const void * const &,
  99503. uint32_t const &,
  99504. uint32_t const &,
  99505. uint32_t const &,
  99506. const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * const &>
  99507. # endif
  99508. reflect() const VULKAN_HPP_NOEXCEPT
  99509. {
  99510. return std::tie( sType, pNext, maxStdVPSCount, maxStdSPSCount, maxStdPPSCount, pParametersAddInfo );
  99511. }
  99512. # endif
  99513. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  99514. auto operator<=>( VideoEncodeH265SessionParametersCreateInfoEXT const & ) const = default;
  99515. # else
  99516. bool operator==( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99517. {
  99518. # if defined( VULKAN_HPP_USE_REFLECT )
  99519. return this->reflect() == rhs.reflect();
  99520. # else
  99521. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxStdVPSCount == rhs.maxStdVPSCount ) && ( maxStdSPSCount == rhs.maxStdSPSCount ) &&
  99522. ( maxStdPPSCount == rhs.maxStdPPSCount ) && ( pParametersAddInfo == rhs.pParametersAddInfo );
  99523. # endif
  99524. }
  99525. bool operator!=( VideoEncodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99526. {
  99527. return !operator==( rhs );
  99528. }
  99529. # endif
  99530. public:
  99531. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT;
  99532. const void * pNext = {};
  99533. uint32_t maxStdVPSCount = {};
  99534. uint32_t maxStdSPSCount = {};
  99535. uint32_t maxStdPPSCount = {};
  99536. const VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT * pParametersAddInfo = {};
  99537. };
  99538. template <>
  99539. struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT>
  99540. {
  99541. using Type = VideoEncodeH265SessionParametersCreateInfoEXT;
  99542. };
  99543. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  99544. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  99545. struct VideoEncodeH265SessionParametersFeedbackInfoEXT
  99546. {
  99547. using NativeType = VkVideoEncodeH265SessionParametersFeedbackInfoEXT;
  99548. static const bool allowDuplicate = false;
  99549. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionParametersFeedbackInfoEXT;
  99550. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  99551. VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersFeedbackInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 hasStdVPSOverrides_ = {},
  99552. VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides_ = {},
  99553. VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides_ = {},
  99554. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  99555. : pNext( pNext_ )
  99556. , hasStdVPSOverrides( hasStdVPSOverrides_ )
  99557. , hasStdSPSOverrides( hasStdSPSOverrides_ )
  99558. , hasStdPPSOverrides( hasStdPPSOverrides_ )
  99559. {
  99560. }
  99561. VULKAN_HPP_CONSTEXPR
  99562. VideoEncodeH265SessionParametersFeedbackInfoEXT( VideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99563. VideoEncodeH265SessionParametersFeedbackInfoEXT( VkVideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99564. : VideoEncodeH265SessionParametersFeedbackInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersFeedbackInfoEXT const *>( &rhs ) )
  99565. {
  99566. }
  99567. VideoEncodeH265SessionParametersFeedbackInfoEXT & operator=( VideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99568. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  99569. VideoEncodeH265SessionParametersFeedbackInfoEXT & operator=( VkVideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99570. {
  99571. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoEXT const *>( &rhs );
  99572. return *this;
  99573. }
  99574. operator VkVideoEncodeH265SessionParametersFeedbackInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  99575. {
  99576. return *reinterpret_cast<const VkVideoEncodeH265SessionParametersFeedbackInfoEXT *>( this );
  99577. }
  99578. operator VkVideoEncodeH265SessionParametersFeedbackInfoEXT &() VULKAN_HPP_NOEXCEPT
  99579. {
  99580. return *reinterpret_cast<VkVideoEncodeH265SessionParametersFeedbackInfoEXT *>( this );
  99581. }
  99582. # if defined( VULKAN_HPP_USE_REFLECT )
  99583. # if 14 <= VULKAN_HPP_CPP_VERSION
  99584. auto
  99585. # else
  99586. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  99587. void * const &,
  99588. VULKAN_HPP_NAMESPACE::Bool32 const &,
  99589. VULKAN_HPP_NAMESPACE::Bool32 const &,
  99590. VULKAN_HPP_NAMESPACE::Bool32 const &>
  99591. # endif
  99592. reflect() const VULKAN_HPP_NOEXCEPT
  99593. {
  99594. return std::tie( sType, pNext, hasStdVPSOverrides, hasStdSPSOverrides, hasStdPPSOverrides );
  99595. }
  99596. # endif
  99597. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  99598. auto operator<=>( VideoEncodeH265SessionParametersFeedbackInfoEXT const & ) const = default;
  99599. # else
  99600. bool operator==( VideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99601. {
  99602. # if defined( VULKAN_HPP_USE_REFLECT )
  99603. return this->reflect() == rhs.reflect();
  99604. # else
  99605. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hasStdVPSOverrides == rhs.hasStdVPSOverrides ) &&
  99606. ( hasStdSPSOverrides == rhs.hasStdSPSOverrides ) && ( hasStdPPSOverrides == rhs.hasStdPPSOverrides );
  99607. # endif
  99608. }
  99609. bool operator!=( VideoEncodeH265SessionParametersFeedbackInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99610. {
  99611. return !operator==( rhs );
  99612. }
  99613. # endif
  99614. public:
  99615. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionParametersFeedbackInfoEXT;
  99616. void * pNext = {};
  99617. VULKAN_HPP_NAMESPACE::Bool32 hasStdVPSOverrides = {};
  99618. VULKAN_HPP_NAMESPACE::Bool32 hasStdSPSOverrides = {};
  99619. VULKAN_HPP_NAMESPACE::Bool32 hasStdPPSOverrides = {};
  99620. };
  99621. template <>
  99622. struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersFeedbackInfoEXT>
  99623. {
  99624. using Type = VideoEncodeH265SessionParametersFeedbackInfoEXT;
  99625. };
  99626. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  99627. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  99628. struct VideoEncodeH265SessionParametersGetInfoEXT
  99629. {
  99630. using NativeType = VkVideoEncodeH265SessionParametersGetInfoEXT;
  99631. static const bool allowDuplicate = false;
  99632. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265SessionParametersGetInfoEXT;
  99633. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  99634. VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersGetInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 writeStdVPS_ = {},
  99635. VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ = {},
  99636. VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ = {},
  99637. uint32_t stdVPSId_ = {},
  99638. uint32_t stdSPSId_ = {},
  99639. uint32_t stdPPSId_ = {},
  99640. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  99641. : pNext( pNext_ )
  99642. , writeStdVPS( writeStdVPS_ )
  99643. , writeStdSPS( writeStdSPS_ )
  99644. , writeStdPPS( writeStdPPS_ )
  99645. , stdVPSId( stdVPSId_ )
  99646. , stdSPSId( stdSPSId_ )
  99647. , stdPPSId( stdPPSId_ )
  99648. {
  99649. }
  99650. VULKAN_HPP_CONSTEXPR VideoEncodeH265SessionParametersGetInfoEXT( VideoEncodeH265SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99651. VideoEncodeH265SessionParametersGetInfoEXT( VkVideoEncodeH265SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99652. : VideoEncodeH265SessionParametersGetInfoEXT( *reinterpret_cast<VideoEncodeH265SessionParametersGetInfoEXT const *>( &rhs ) )
  99653. {
  99654. }
  99655. VideoEncodeH265SessionParametersGetInfoEXT & operator=( VideoEncodeH265SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99656. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  99657. VideoEncodeH265SessionParametersGetInfoEXT & operator=( VkVideoEncodeH265SessionParametersGetInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
  99658. {
  99659. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoEXT const *>( &rhs );
  99660. return *this;
  99661. }
  99662. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  99663. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  99664. {
  99665. pNext = pNext_;
  99666. return *this;
  99667. }
  99668. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setWriteStdVPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdVPS_ ) VULKAN_HPP_NOEXCEPT
  99669. {
  99670. writeStdVPS = writeStdVPS_;
  99671. return *this;
  99672. }
  99673. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setWriteStdSPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS_ ) VULKAN_HPP_NOEXCEPT
  99674. {
  99675. writeStdSPS = writeStdSPS_;
  99676. return *this;
  99677. }
  99678. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setWriteStdPPS( VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS_ ) VULKAN_HPP_NOEXCEPT
  99679. {
  99680. writeStdPPS = writeStdPPS_;
  99681. return *this;
  99682. }
  99683. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setStdVPSId( uint32_t stdVPSId_ ) VULKAN_HPP_NOEXCEPT
  99684. {
  99685. stdVPSId = stdVPSId_;
  99686. return *this;
  99687. }
  99688. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setStdSPSId( uint32_t stdSPSId_ ) VULKAN_HPP_NOEXCEPT
  99689. {
  99690. stdSPSId = stdSPSId_;
  99691. return *this;
  99692. }
  99693. VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265SessionParametersGetInfoEXT & setStdPPSId( uint32_t stdPPSId_ ) VULKAN_HPP_NOEXCEPT
  99694. {
  99695. stdPPSId = stdPPSId_;
  99696. return *this;
  99697. }
  99698. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  99699. operator VkVideoEncodeH265SessionParametersGetInfoEXT const &() const VULKAN_HPP_NOEXCEPT
  99700. {
  99701. return *reinterpret_cast<const VkVideoEncodeH265SessionParametersGetInfoEXT *>( this );
  99702. }
  99703. operator VkVideoEncodeH265SessionParametersGetInfoEXT &() VULKAN_HPP_NOEXCEPT
  99704. {
  99705. return *reinterpret_cast<VkVideoEncodeH265SessionParametersGetInfoEXT *>( this );
  99706. }
  99707. # if defined( VULKAN_HPP_USE_REFLECT )
  99708. # if 14 <= VULKAN_HPP_CPP_VERSION
  99709. auto
  99710. # else
  99711. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  99712. const void * const &,
  99713. VULKAN_HPP_NAMESPACE::Bool32 const &,
  99714. VULKAN_HPP_NAMESPACE::Bool32 const &,
  99715. VULKAN_HPP_NAMESPACE::Bool32 const &,
  99716. uint32_t const &,
  99717. uint32_t const &,
  99718. uint32_t const &>
  99719. # endif
  99720. reflect() const VULKAN_HPP_NOEXCEPT
  99721. {
  99722. return std::tie( sType, pNext, writeStdVPS, writeStdSPS, writeStdPPS, stdVPSId, stdSPSId, stdPPSId );
  99723. }
  99724. # endif
  99725. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  99726. auto operator<=>( VideoEncodeH265SessionParametersGetInfoEXT const & ) const = default;
  99727. # else
  99728. bool operator==( VideoEncodeH265SessionParametersGetInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99729. {
  99730. # if defined( VULKAN_HPP_USE_REFLECT )
  99731. return this->reflect() == rhs.reflect();
  99732. # else
  99733. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( writeStdVPS == rhs.writeStdVPS ) && ( writeStdSPS == rhs.writeStdSPS ) &&
  99734. ( writeStdPPS == rhs.writeStdPPS ) && ( stdVPSId == rhs.stdVPSId ) && ( stdSPSId == rhs.stdSPSId ) && ( stdPPSId == rhs.stdPPSId );
  99735. # endif
  99736. }
  99737. bool operator!=( VideoEncodeH265SessionParametersGetInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
  99738. {
  99739. return !operator==( rhs );
  99740. }
  99741. # endif
  99742. public:
  99743. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265SessionParametersGetInfoEXT;
  99744. const void * pNext = {};
  99745. VULKAN_HPP_NAMESPACE::Bool32 writeStdVPS = {};
  99746. VULKAN_HPP_NAMESPACE::Bool32 writeStdSPS = {};
  99747. VULKAN_HPP_NAMESPACE::Bool32 writeStdPPS = {};
  99748. uint32_t stdVPSId = {};
  99749. uint32_t stdSPSId = {};
  99750. uint32_t stdPPSId = {};
  99751. };
  99752. template <>
  99753. struct CppType<StructureType, StructureType::eVideoEncodeH265SessionParametersGetInfoEXT>
  99754. {
  99755. using Type = VideoEncodeH265SessionParametersGetInfoEXT;
  99756. };
  99757. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  99758. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  99759. struct VideoEncodeInfoKHR
  99760. {
  99761. using NativeType = VkVideoEncodeInfoKHR;
  99762. static const bool allowDuplicate = false;
  99763. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeInfoKHR;
  99764. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  99765. VULKAN_HPP_CONSTEXPR VideoEncodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_ = {},
  99766. VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {},
  99767. VULKAN_HPP_NAMESPACE::DeviceSize dstBufferOffset_ = {},
  99768. VULKAN_HPP_NAMESPACE::DeviceSize dstBufferRange_ = {},
  99769. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR srcPictureResource_ = {},
  99770. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ = {},
  99771. uint32_t referenceSlotCount_ = {},
  99772. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ = {},
  99773. uint32_t precedingExternallyEncodedBytes_ = {},
  99774. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  99775. : pNext( pNext_ )
  99776. , flags( flags_ )
  99777. , dstBuffer( dstBuffer_ )
  99778. , dstBufferOffset( dstBufferOffset_ )
  99779. , dstBufferRange( dstBufferRange_ )
  99780. , srcPictureResource( srcPictureResource_ )
  99781. , pSetupReferenceSlot( pSetupReferenceSlot_ )
  99782. , referenceSlotCount( referenceSlotCount_ )
  99783. , pReferenceSlots( pReferenceSlots_ )
  99784. , precedingExternallyEncodedBytes( precedingExternallyEncodedBytes_ )
  99785. {
  99786. }
  99787. VULKAN_HPP_CONSTEXPR VideoEncodeInfoKHR( VideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99788. VideoEncodeInfoKHR( VkVideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT : VideoEncodeInfoKHR( *reinterpret_cast<VideoEncodeInfoKHR const *>( &rhs ) ) {}
  99789. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  99790. VideoEncodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_,
  99791. VULKAN_HPP_NAMESPACE::Buffer dstBuffer_,
  99792. VULKAN_HPP_NAMESPACE::DeviceSize dstBufferOffset_,
  99793. VULKAN_HPP_NAMESPACE::DeviceSize dstBufferRange_,
  99794. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR srcPictureResource_,
  99795. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_,
  99796. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_,
  99797. uint32_t precedingExternallyEncodedBytes_ = {},
  99798. const void * pNext_ = nullptr )
  99799. : pNext( pNext_ )
  99800. , flags( flags_ )
  99801. , dstBuffer( dstBuffer_ )
  99802. , dstBufferOffset( dstBufferOffset_ )
  99803. , dstBufferRange( dstBufferRange_ )
  99804. , srcPictureResource( srcPictureResource_ )
  99805. , pSetupReferenceSlot( pSetupReferenceSlot_ )
  99806. , referenceSlotCount( static_cast<uint32_t>( referenceSlots_.size() ) )
  99807. , pReferenceSlots( referenceSlots_.data() )
  99808. , precedingExternallyEncodedBytes( precedingExternallyEncodedBytes_ )
  99809. {
  99810. }
  99811. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  99812. VideoEncodeInfoKHR & operator=( VideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99813. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  99814. VideoEncodeInfoKHR & operator=( VkVideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  99815. {
  99816. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR const *>( &rhs );
  99817. return *this;
  99818. }
  99819. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  99820. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  99821. {
  99822. pNext = pNext_;
  99823. return *this;
  99824. }
  99825. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  99826. {
  99827. flags = flags_;
  99828. return *this;
  99829. }
  99830. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT
  99831. {
  99832. dstBuffer = dstBuffer_;
  99833. return *this;
  99834. }
  99835. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstBufferOffset_ ) VULKAN_HPP_NOEXCEPT
  99836. {
  99837. dstBufferOffset = dstBufferOffset_;
  99838. return *this;
  99839. }
  99840. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setDstBufferRange( VULKAN_HPP_NAMESPACE::DeviceSize dstBufferRange_ ) VULKAN_HPP_NOEXCEPT
  99841. {
  99842. dstBufferRange = dstBufferRange_;
  99843. return *this;
  99844. }
  99845. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
  99846. setSrcPictureResource( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & srcPictureResource_ ) VULKAN_HPP_NOEXCEPT
  99847. {
  99848. srcPictureResource = srcPictureResource_;
  99849. return *this;
  99850. }
  99851. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
  99852. setPSetupReferenceSlot( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT
  99853. {
  99854. pSetupReferenceSlot = pSetupReferenceSlot_;
  99855. return *this;
  99856. }
  99857. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT
  99858. {
  99859. referenceSlotCount = referenceSlotCount_;
  99860. return *this;
  99861. }
  99862. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
  99863. setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT
  99864. {
  99865. pReferenceSlots = pReferenceSlots_;
  99866. return *this;
  99867. }
  99868. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  99869. VideoEncodeInfoKHR & setReferenceSlots(
  99870. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR> const & referenceSlots_ ) VULKAN_HPP_NOEXCEPT
  99871. {
  99872. referenceSlotCount = static_cast<uint32_t>( referenceSlots_.size() );
  99873. pReferenceSlots = referenceSlots_.data();
  99874. return *this;
  99875. }
  99876. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  99877. VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & setPrecedingExternallyEncodedBytes( uint32_t precedingExternallyEncodedBytes_ ) VULKAN_HPP_NOEXCEPT
  99878. {
  99879. precedingExternallyEncodedBytes = precedingExternallyEncodedBytes_;
  99880. return *this;
  99881. }
  99882. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  99883. operator VkVideoEncodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  99884. {
  99885. return *reinterpret_cast<const VkVideoEncodeInfoKHR *>( this );
  99886. }
  99887. operator VkVideoEncodeInfoKHR &() VULKAN_HPP_NOEXCEPT
  99888. {
  99889. return *reinterpret_cast<VkVideoEncodeInfoKHR *>( this );
  99890. }
  99891. # if defined( VULKAN_HPP_USE_REFLECT )
  99892. # if 14 <= VULKAN_HPP_CPP_VERSION
  99893. auto
  99894. # else
  99895. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  99896. const void * const &,
  99897. VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR const &,
  99898. VULKAN_HPP_NAMESPACE::Buffer const &,
  99899. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  99900. VULKAN_HPP_NAMESPACE::DeviceSize const &,
  99901. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const &,
  99902. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &,
  99903. uint32_t const &,
  99904. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * const &,
  99905. uint32_t const &>
  99906. # endif
  99907. reflect() const VULKAN_HPP_NOEXCEPT
  99908. {
  99909. return std::tie( sType,
  99910. pNext,
  99911. flags,
  99912. dstBuffer,
  99913. dstBufferOffset,
  99914. dstBufferRange,
  99915. srcPictureResource,
  99916. pSetupReferenceSlot,
  99917. referenceSlotCount,
  99918. pReferenceSlots,
  99919. precedingExternallyEncodedBytes );
  99920. }
  99921. # endif
  99922. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  99923. auto operator<=>( VideoEncodeInfoKHR const & ) const = default;
  99924. # else
  99925. bool operator==( VideoEncodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  99926. {
  99927. # if defined( VULKAN_HPP_USE_REFLECT )
  99928. return this->reflect() == rhs.reflect();
  99929. # else
  99930. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dstBuffer == rhs.dstBuffer ) &&
  99931. ( dstBufferOffset == rhs.dstBufferOffset ) && ( dstBufferRange == rhs.dstBufferRange ) && ( srcPictureResource == rhs.srcPictureResource ) &&
  99932. ( pSetupReferenceSlot == rhs.pSetupReferenceSlot ) && ( referenceSlotCount == rhs.referenceSlotCount ) &&
  99933. ( pReferenceSlots == rhs.pReferenceSlots ) && ( precedingExternallyEncodedBytes == rhs.precedingExternallyEncodedBytes );
  99934. # endif
  99935. }
  99936. bool operator!=( VideoEncodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  99937. {
  99938. return !operator==( rhs );
  99939. }
  99940. # endif
  99941. public:
  99942. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeInfoKHR;
  99943. const void * pNext = {};
  99944. VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags = {};
  99945. VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {};
  99946. VULKAN_HPP_NAMESPACE::DeviceSize dstBufferOffset = {};
  99947. VULKAN_HPP_NAMESPACE::DeviceSize dstBufferRange = {};
  99948. VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR srcPictureResource = {};
  99949. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pSetupReferenceSlot = {};
  99950. uint32_t referenceSlotCount = {};
  99951. const VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR * pReferenceSlots = {};
  99952. uint32_t precedingExternallyEncodedBytes = {};
  99953. };
  99954. template <>
  99955. struct CppType<StructureType, StructureType::eVideoEncodeInfoKHR>
  99956. {
  99957. using Type = VideoEncodeInfoKHR;
  99958. };
  99959. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  99960. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  99961. struct VideoEncodeQualityLevelInfoKHR
  99962. {
  99963. using NativeType = VkVideoEncodeQualityLevelInfoKHR;
  99964. static const bool allowDuplicate = false;
  99965. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeQualityLevelInfoKHR;
  99966. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  99967. VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelInfoKHR( uint32_t qualityLevel_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  99968. : pNext( pNext_ )
  99969. , qualityLevel( qualityLevel_ )
  99970. {
  99971. }
  99972. VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelInfoKHR( VideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99973. VideoEncodeQualityLevelInfoKHR( VkVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  99974. : VideoEncodeQualityLevelInfoKHR( *reinterpret_cast<VideoEncodeQualityLevelInfoKHR const *>( &rhs ) )
  99975. {
  99976. }
  99977. VideoEncodeQualityLevelInfoKHR & operator=( VideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  99978. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  99979. VideoEncodeQualityLevelInfoKHR & operator=( VkVideoEncodeQualityLevelInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  99980. {
  99981. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR const *>( &rhs );
  99982. return *this;
  99983. }
  99984. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  99985. VULKAN_HPP_CONSTEXPR_14 VideoEncodeQualityLevelInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  99986. {
  99987. pNext = pNext_;
  99988. return *this;
  99989. }
  99990. VULKAN_HPP_CONSTEXPR_14 VideoEncodeQualityLevelInfoKHR & setQualityLevel( uint32_t qualityLevel_ ) VULKAN_HPP_NOEXCEPT
  99991. {
  99992. qualityLevel = qualityLevel_;
  99993. return *this;
  99994. }
  99995. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  99996. operator VkVideoEncodeQualityLevelInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  99997. {
  99998. return *reinterpret_cast<const VkVideoEncodeQualityLevelInfoKHR *>( this );
  99999. }
  100000. operator VkVideoEncodeQualityLevelInfoKHR &() VULKAN_HPP_NOEXCEPT
  100001. {
  100002. return *reinterpret_cast<VkVideoEncodeQualityLevelInfoKHR *>( this );
  100003. }
  100004. # if defined( VULKAN_HPP_USE_REFLECT )
  100005. # if 14 <= VULKAN_HPP_CPP_VERSION
  100006. auto
  100007. # else
  100008. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  100009. # endif
  100010. reflect() const VULKAN_HPP_NOEXCEPT
  100011. {
  100012. return std::tie( sType, pNext, qualityLevel );
  100013. }
  100014. # endif
  100015. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  100016. auto operator<=>( VideoEncodeQualityLevelInfoKHR const & ) const = default;
  100017. # else
  100018. bool operator==( VideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100019. {
  100020. # if defined( VULKAN_HPP_USE_REFLECT )
  100021. return this->reflect() == rhs.reflect();
  100022. # else
  100023. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( qualityLevel == rhs.qualityLevel );
  100024. # endif
  100025. }
  100026. bool operator!=( VideoEncodeQualityLevelInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100027. {
  100028. return !operator==( rhs );
  100029. }
  100030. # endif
  100031. public:
  100032. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeQualityLevelInfoKHR;
  100033. const void * pNext = {};
  100034. uint32_t qualityLevel = {};
  100035. };
  100036. template <>
  100037. struct CppType<StructureType, StructureType::eVideoEncodeQualityLevelInfoKHR>
  100038. {
  100039. using Type = VideoEncodeQualityLevelInfoKHR;
  100040. };
  100041. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  100042. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  100043. struct VideoEncodeQualityLevelPropertiesKHR
  100044. {
  100045. using NativeType = VkVideoEncodeQualityLevelPropertiesKHR;
  100046. static const bool allowDuplicate = false;
  100047. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeQualityLevelPropertiesKHR;
  100048. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  100049. VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelPropertiesKHR( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode_ =
  100050. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault,
  100051. uint32_t preferredRateControlLayerCount_ = {},
  100052. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  100053. : pNext( pNext_ )
  100054. , preferredRateControlMode( preferredRateControlMode_ )
  100055. , preferredRateControlLayerCount( preferredRateControlLayerCount_ )
  100056. {
  100057. }
  100058. VULKAN_HPP_CONSTEXPR VideoEncodeQualityLevelPropertiesKHR( VideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100059. VideoEncodeQualityLevelPropertiesKHR( VkVideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100060. : VideoEncodeQualityLevelPropertiesKHR( *reinterpret_cast<VideoEncodeQualityLevelPropertiesKHR const *>( &rhs ) )
  100061. {
  100062. }
  100063. VideoEncodeQualityLevelPropertiesKHR & operator=( VideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100064. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  100065. VideoEncodeQualityLevelPropertiesKHR & operator=( VkVideoEncodeQualityLevelPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100066. {
  100067. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR const *>( &rhs );
  100068. return *this;
  100069. }
  100070. operator VkVideoEncodeQualityLevelPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  100071. {
  100072. return *reinterpret_cast<const VkVideoEncodeQualityLevelPropertiesKHR *>( this );
  100073. }
  100074. operator VkVideoEncodeQualityLevelPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  100075. {
  100076. return *reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( this );
  100077. }
  100078. # if defined( VULKAN_HPP_USE_REFLECT )
  100079. # if 14 <= VULKAN_HPP_CPP_VERSION
  100080. auto
  100081. # else
  100082. std::
  100083. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR const &, uint32_t const &>
  100084. # endif
  100085. reflect() const VULKAN_HPP_NOEXCEPT
  100086. {
  100087. return std::tie( sType, pNext, preferredRateControlMode, preferredRateControlLayerCount );
  100088. }
  100089. # endif
  100090. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  100091. auto operator<=>( VideoEncodeQualityLevelPropertiesKHR const & ) const = default;
  100092. # else
  100093. bool operator==( VideoEncodeQualityLevelPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100094. {
  100095. # if defined( VULKAN_HPP_USE_REFLECT )
  100096. return this->reflect() == rhs.reflect();
  100097. # else
  100098. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( preferredRateControlMode == rhs.preferredRateControlMode ) &&
  100099. ( preferredRateControlLayerCount == rhs.preferredRateControlLayerCount );
  100100. # endif
  100101. }
  100102. bool operator!=( VideoEncodeQualityLevelPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100103. {
  100104. return !operator==( rhs );
  100105. }
  100106. # endif
  100107. public:
  100108. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeQualityLevelPropertiesKHR;
  100109. void * pNext = {};
  100110. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode =
  100111. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault;
  100112. uint32_t preferredRateControlLayerCount = {};
  100113. };
  100114. template <>
  100115. struct CppType<StructureType, StructureType::eVideoEncodeQualityLevelPropertiesKHR>
  100116. {
  100117. using Type = VideoEncodeQualityLevelPropertiesKHR;
  100118. };
  100119. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  100120. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  100121. struct VideoEncodeRateControlLayerInfoKHR
  100122. {
  100123. using NativeType = VkVideoEncodeRateControlLayerInfoKHR;
  100124. static const bool allowDuplicate = false;
  100125. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeRateControlLayerInfoKHR;
  100126. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  100127. VULKAN_HPP_CONSTEXPR VideoEncodeRateControlLayerInfoKHR( uint64_t averageBitrate_ = {},
  100128. uint64_t maxBitrate_ = {},
  100129. uint32_t frameRateNumerator_ = {},
  100130. uint32_t frameRateDenominator_ = {},
  100131. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  100132. : pNext( pNext_ )
  100133. , averageBitrate( averageBitrate_ )
  100134. , maxBitrate( maxBitrate_ )
  100135. , frameRateNumerator( frameRateNumerator_ )
  100136. , frameRateDenominator( frameRateDenominator_ )
  100137. {
  100138. }
  100139. VULKAN_HPP_CONSTEXPR VideoEncodeRateControlLayerInfoKHR( VideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100140. VideoEncodeRateControlLayerInfoKHR( VkVideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100141. : VideoEncodeRateControlLayerInfoKHR( *reinterpret_cast<VideoEncodeRateControlLayerInfoKHR const *>( &rhs ) )
  100142. {
  100143. }
  100144. VideoEncodeRateControlLayerInfoKHR & operator=( VideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100145. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  100146. VideoEncodeRateControlLayerInfoKHR & operator=( VkVideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100147. {
  100148. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR const *>( &rhs );
  100149. return *this;
  100150. }
  100151. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  100152. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  100153. {
  100154. pNext = pNext_;
  100155. return *this;
  100156. }
  100157. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setAverageBitrate( uint64_t averageBitrate_ ) VULKAN_HPP_NOEXCEPT
  100158. {
  100159. averageBitrate = averageBitrate_;
  100160. return *this;
  100161. }
  100162. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setMaxBitrate( uint64_t maxBitrate_ ) VULKAN_HPP_NOEXCEPT
  100163. {
  100164. maxBitrate = maxBitrate_;
  100165. return *this;
  100166. }
  100167. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setFrameRateNumerator( uint32_t frameRateNumerator_ ) VULKAN_HPP_NOEXCEPT
  100168. {
  100169. frameRateNumerator = frameRateNumerator_;
  100170. return *this;
  100171. }
  100172. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setFrameRateDenominator( uint32_t frameRateDenominator_ ) VULKAN_HPP_NOEXCEPT
  100173. {
  100174. frameRateDenominator = frameRateDenominator_;
  100175. return *this;
  100176. }
  100177. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  100178. operator VkVideoEncodeRateControlLayerInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  100179. {
  100180. return *reinterpret_cast<const VkVideoEncodeRateControlLayerInfoKHR *>( this );
  100181. }
  100182. operator VkVideoEncodeRateControlLayerInfoKHR &() VULKAN_HPP_NOEXCEPT
  100183. {
  100184. return *reinterpret_cast<VkVideoEncodeRateControlLayerInfoKHR *>( this );
  100185. }
  100186. # if defined( VULKAN_HPP_USE_REFLECT )
  100187. # if 14 <= VULKAN_HPP_CPP_VERSION
  100188. auto
  100189. # else
  100190. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint64_t const &, uint64_t const &, uint32_t const &, uint32_t const &>
  100191. # endif
  100192. reflect() const VULKAN_HPP_NOEXCEPT
  100193. {
  100194. return std::tie( sType, pNext, averageBitrate, maxBitrate, frameRateNumerator, frameRateDenominator );
  100195. }
  100196. # endif
  100197. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  100198. auto operator<=>( VideoEncodeRateControlLayerInfoKHR const & ) const = default;
  100199. # else
  100200. bool operator==( VideoEncodeRateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100201. {
  100202. # if defined( VULKAN_HPP_USE_REFLECT )
  100203. return this->reflect() == rhs.reflect();
  100204. # else
  100205. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( averageBitrate == rhs.averageBitrate ) && ( maxBitrate == rhs.maxBitrate ) &&
  100206. ( frameRateNumerator == rhs.frameRateNumerator ) && ( frameRateDenominator == rhs.frameRateDenominator );
  100207. # endif
  100208. }
  100209. bool operator!=( VideoEncodeRateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100210. {
  100211. return !operator==( rhs );
  100212. }
  100213. # endif
  100214. public:
  100215. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeRateControlLayerInfoKHR;
  100216. const void * pNext = {};
  100217. uint64_t averageBitrate = {};
  100218. uint64_t maxBitrate = {};
  100219. uint32_t frameRateNumerator = {};
  100220. uint32_t frameRateDenominator = {};
  100221. };
  100222. template <>
  100223. struct CppType<StructureType, StructureType::eVideoEncodeRateControlLayerInfoKHR>
  100224. {
  100225. using Type = VideoEncodeRateControlLayerInfoKHR;
  100226. };
  100227. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  100228. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  100229. struct VideoEncodeRateControlInfoKHR
  100230. {
  100231. using NativeType = VkVideoEncodeRateControlInfoKHR;
  100232. static const bool allowDuplicate = false;
  100233. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeRateControlInfoKHR;
  100234. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  100235. VULKAN_HPP_CONSTEXPR VideoEncodeRateControlInfoKHR(
  100236. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_ = {},
  100237. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault,
  100238. uint32_t layerCount_ = {},
  100239. const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayers_ = {},
  100240. uint32_t virtualBufferSizeInMs_ = {},
  100241. uint32_t initialVirtualBufferSizeInMs_ = {},
  100242. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  100243. : pNext( pNext_ )
  100244. , flags( flags_ )
  100245. , rateControlMode( rateControlMode_ )
  100246. , layerCount( layerCount_ )
  100247. , pLayers( pLayers_ )
  100248. , virtualBufferSizeInMs( virtualBufferSizeInMs_ )
  100249. , initialVirtualBufferSizeInMs( initialVirtualBufferSizeInMs_ )
  100250. {
  100251. }
  100252. VULKAN_HPP_CONSTEXPR VideoEncodeRateControlInfoKHR( VideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100253. VideoEncodeRateControlInfoKHR( VkVideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100254. : VideoEncodeRateControlInfoKHR( *reinterpret_cast<VideoEncodeRateControlInfoKHR const *>( &rhs ) )
  100255. {
  100256. }
  100257. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  100258. VideoEncodeRateControlInfoKHR(
  100259. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_,
  100260. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_,
  100261. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layers_,
  100262. uint32_t virtualBufferSizeInMs_ = {},
  100263. uint32_t initialVirtualBufferSizeInMs_ = {},
  100264. const void * pNext_ = nullptr )
  100265. : pNext( pNext_ )
  100266. , flags( flags_ )
  100267. , rateControlMode( rateControlMode_ )
  100268. , layerCount( static_cast<uint32_t>( layers_.size() ) )
  100269. , pLayers( layers_.data() )
  100270. , virtualBufferSizeInMs( virtualBufferSizeInMs_ )
  100271. , initialVirtualBufferSizeInMs( initialVirtualBufferSizeInMs_ )
  100272. {
  100273. }
  100274. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  100275. VideoEncodeRateControlInfoKHR & operator=( VideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100276. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  100277. VideoEncodeRateControlInfoKHR & operator=( VkVideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100278. {
  100279. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR const *>( &rhs );
  100280. return *this;
  100281. }
  100282. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  100283. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  100284. {
  100285. pNext = pNext_;
  100286. return *this;
  100287. }
  100288. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  100289. {
  100290. flags = flags_;
  100291. return *this;
  100292. }
  100293. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR &
  100294. setRateControlMode( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ ) VULKAN_HPP_NOEXCEPT
  100295. {
  100296. rateControlMode = rateControlMode_;
  100297. return *this;
  100298. }
  100299. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT
  100300. {
  100301. layerCount = layerCount_;
  100302. return *this;
  100303. }
  100304. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR &
  100305. setPLayers( const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayers_ ) VULKAN_HPP_NOEXCEPT
  100306. {
  100307. pLayers = pLayers_;
  100308. return *this;
  100309. }
  100310. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  100311. VideoEncodeRateControlInfoKHR & setLayers(
  100312. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layers_ ) VULKAN_HPP_NOEXCEPT
  100313. {
  100314. layerCount = static_cast<uint32_t>( layers_.size() );
  100315. pLayers = layers_.data();
  100316. return *this;
  100317. }
  100318. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  100319. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setVirtualBufferSizeInMs( uint32_t virtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
  100320. {
  100321. virtualBufferSizeInMs = virtualBufferSizeInMs_;
  100322. return *this;
  100323. }
  100324. VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setInitialVirtualBufferSizeInMs( uint32_t initialVirtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
  100325. {
  100326. initialVirtualBufferSizeInMs = initialVirtualBufferSizeInMs_;
  100327. return *this;
  100328. }
  100329. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  100330. operator VkVideoEncodeRateControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  100331. {
  100332. return *reinterpret_cast<const VkVideoEncodeRateControlInfoKHR *>( this );
  100333. }
  100334. operator VkVideoEncodeRateControlInfoKHR &() VULKAN_HPP_NOEXCEPT
  100335. {
  100336. return *reinterpret_cast<VkVideoEncodeRateControlInfoKHR *>( this );
  100337. }
  100338. # if defined( VULKAN_HPP_USE_REFLECT )
  100339. # if 14 <= VULKAN_HPP_CPP_VERSION
  100340. auto
  100341. # else
  100342. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  100343. const void * const &,
  100344. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR const &,
  100345. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR const &,
  100346. uint32_t const &,
  100347. const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * const &,
  100348. uint32_t const &,
  100349. uint32_t const &>
  100350. # endif
  100351. reflect() const VULKAN_HPP_NOEXCEPT
  100352. {
  100353. return std::tie( sType, pNext, flags, rateControlMode, layerCount, pLayers, virtualBufferSizeInMs, initialVirtualBufferSizeInMs );
  100354. }
  100355. # endif
  100356. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  100357. auto operator<=>( VideoEncodeRateControlInfoKHR const & ) const = default;
  100358. # else
  100359. bool operator==( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100360. {
  100361. # if defined( VULKAN_HPP_USE_REFLECT )
  100362. return this->reflect() == rhs.reflect();
  100363. # else
  100364. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( rateControlMode == rhs.rateControlMode ) &&
  100365. ( layerCount == rhs.layerCount ) && ( pLayers == rhs.pLayers ) && ( virtualBufferSizeInMs == rhs.virtualBufferSizeInMs ) &&
  100366. ( initialVirtualBufferSizeInMs == rhs.initialVirtualBufferSizeInMs );
  100367. # endif
  100368. }
  100369. bool operator!=( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100370. {
  100371. return !operator==( rhs );
  100372. }
  100373. # endif
  100374. public:
  100375. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeRateControlInfoKHR;
  100376. const void * pNext = {};
  100377. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags = {};
  100378. VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode = VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eDefault;
  100379. uint32_t layerCount = {};
  100380. const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayers = {};
  100381. uint32_t virtualBufferSizeInMs = {};
  100382. uint32_t initialVirtualBufferSizeInMs = {};
  100383. };
  100384. template <>
  100385. struct CppType<StructureType, StructureType::eVideoEncodeRateControlInfoKHR>
  100386. {
  100387. using Type = VideoEncodeRateControlInfoKHR;
  100388. };
  100389. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  100390. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  100391. struct VideoEncodeSessionParametersFeedbackInfoKHR
  100392. {
  100393. using NativeType = VkVideoEncodeSessionParametersFeedbackInfoKHR;
  100394. static const bool allowDuplicate = false;
  100395. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeSessionParametersFeedbackInfoKHR;
  100396. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  100397. VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersFeedbackInfoKHR( VULKAN_HPP_NAMESPACE::Bool32 hasOverrides_ = {},
  100398. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  100399. : pNext( pNext_ )
  100400. , hasOverrides( hasOverrides_ )
  100401. {
  100402. }
  100403. VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersFeedbackInfoKHR( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100404. VideoEncodeSessionParametersFeedbackInfoKHR( VkVideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100405. : VideoEncodeSessionParametersFeedbackInfoKHR( *reinterpret_cast<VideoEncodeSessionParametersFeedbackInfoKHR const *>( &rhs ) )
  100406. {
  100407. }
  100408. VideoEncodeSessionParametersFeedbackInfoKHR & operator=( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100409. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  100410. VideoEncodeSessionParametersFeedbackInfoKHR & operator=( VkVideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100411. {
  100412. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR const *>( &rhs );
  100413. return *this;
  100414. }
  100415. operator VkVideoEncodeSessionParametersFeedbackInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  100416. {
  100417. return *reinterpret_cast<const VkVideoEncodeSessionParametersFeedbackInfoKHR *>( this );
  100418. }
  100419. operator VkVideoEncodeSessionParametersFeedbackInfoKHR &() VULKAN_HPP_NOEXCEPT
  100420. {
  100421. return *reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( this );
  100422. }
  100423. # if defined( VULKAN_HPP_USE_REFLECT )
  100424. # if 14 <= VULKAN_HPP_CPP_VERSION
  100425. auto
  100426. # else
  100427. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
  100428. # endif
  100429. reflect() const VULKAN_HPP_NOEXCEPT
  100430. {
  100431. return std::tie( sType, pNext, hasOverrides );
  100432. }
  100433. # endif
  100434. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  100435. auto operator<=>( VideoEncodeSessionParametersFeedbackInfoKHR const & ) const = default;
  100436. # else
  100437. bool operator==( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100438. {
  100439. # if defined( VULKAN_HPP_USE_REFLECT )
  100440. return this->reflect() == rhs.reflect();
  100441. # else
  100442. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hasOverrides == rhs.hasOverrides );
  100443. # endif
  100444. }
  100445. bool operator!=( VideoEncodeSessionParametersFeedbackInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100446. {
  100447. return !operator==( rhs );
  100448. }
  100449. # endif
  100450. public:
  100451. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeSessionParametersFeedbackInfoKHR;
  100452. void * pNext = {};
  100453. VULKAN_HPP_NAMESPACE::Bool32 hasOverrides = {};
  100454. };
  100455. template <>
  100456. struct CppType<StructureType, StructureType::eVideoEncodeSessionParametersFeedbackInfoKHR>
  100457. {
  100458. using Type = VideoEncodeSessionParametersFeedbackInfoKHR;
  100459. };
  100460. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  100461. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  100462. struct VideoEncodeSessionParametersGetInfoKHR
  100463. {
  100464. using NativeType = VkVideoEncodeSessionParametersGetInfoKHR;
  100465. static const bool allowDuplicate = false;
  100466. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeSessionParametersGetInfoKHR;
  100467. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  100468. VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersGetInfoKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ = {},
  100469. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  100470. : pNext( pNext_ )
  100471. , videoSessionParameters( videoSessionParameters_ )
  100472. {
  100473. }
  100474. VULKAN_HPP_CONSTEXPR VideoEncodeSessionParametersGetInfoKHR( VideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100475. VideoEncodeSessionParametersGetInfoKHR( VkVideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100476. : VideoEncodeSessionParametersGetInfoKHR( *reinterpret_cast<VideoEncodeSessionParametersGetInfoKHR const *>( &rhs ) )
  100477. {
  100478. }
  100479. VideoEncodeSessionParametersGetInfoKHR & operator=( VideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100480. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  100481. VideoEncodeSessionParametersGetInfoKHR & operator=( VkVideoEncodeSessionParametersGetInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100482. {
  100483. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR const *>( &rhs );
  100484. return *this;
  100485. }
  100486. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  100487. VULKAN_HPP_CONSTEXPR_14 VideoEncodeSessionParametersGetInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  100488. {
  100489. pNext = pNext_;
  100490. return *this;
  100491. }
  100492. VULKAN_HPP_CONSTEXPR_14 VideoEncodeSessionParametersGetInfoKHR &
  100493. setVideoSessionParameters( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ ) VULKAN_HPP_NOEXCEPT
  100494. {
  100495. videoSessionParameters = videoSessionParameters_;
  100496. return *this;
  100497. }
  100498. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  100499. operator VkVideoEncodeSessionParametersGetInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  100500. {
  100501. return *reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( this );
  100502. }
  100503. operator VkVideoEncodeSessionParametersGetInfoKHR &() VULKAN_HPP_NOEXCEPT
  100504. {
  100505. return *reinterpret_cast<VkVideoEncodeSessionParametersGetInfoKHR *>( this );
  100506. }
  100507. # if defined( VULKAN_HPP_USE_REFLECT )
  100508. # if 14 <= VULKAN_HPP_CPP_VERSION
  100509. auto
  100510. # else
  100511. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &>
  100512. # endif
  100513. reflect() const VULKAN_HPP_NOEXCEPT
  100514. {
  100515. return std::tie( sType, pNext, videoSessionParameters );
  100516. }
  100517. # endif
  100518. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  100519. auto operator<=>( VideoEncodeSessionParametersGetInfoKHR const & ) const = default;
  100520. # else
  100521. bool operator==( VideoEncodeSessionParametersGetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100522. {
  100523. # if defined( VULKAN_HPP_USE_REFLECT )
  100524. return this->reflect() == rhs.reflect();
  100525. # else
  100526. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoSessionParameters == rhs.videoSessionParameters );
  100527. # endif
  100528. }
  100529. bool operator!=( VideoEncodeSessionParametersGetInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100530. {
  100531. return !operator==( rhs );
  100532. }
  100533. # endif
  100534. public:
  100535. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeSessionParametersGetInfoKHR;
  100536. const void * pNext = {};
  100537. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters = {};
  100538. };
  100539. template <>
  100540. struct CppType<StructureType, StructureType::eVideoEncodeSessionParametersGetInfoKHR>
  100541. {
  100542. using Type = VideoEncodeSessionParametersGetInfoKHR;
  100543. };
  100544. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  100545. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  100546. struct VideoEncodeUsageInfoKHR
  100547. {
  100548. using NativeType = VkVideoEncodeUsageInfoKHR;
  100549. static const bool allowDuplicate = false;
  100550. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeUsageInfoKHR;
  100551. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  100552. VULKAN_HPP_CONSTEXPR
  100553. VideoEncodeUsageInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR videoUsageHints_ = {},
  100554. VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints_ = {},
  100555. VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR tuningMode_ = VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR::eDefault,
  100556. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  100557. : pNext( pNext_ )
  100558. , videoUsageHints( videoUsageHints_ )
  100559. , videoContentHints( videoContentHints_ )
  100560. , tuningMode( tuningMode_ )
  100561. {
  100562. }
  100563. VULKAN_HPP_CONSTEXPR VideoEncodeUsageInfoKHR( VideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100564. VideoEncodeUsageInfoKHR( VkVideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100565. : VideoEncodeUsageInfoKHR( *reinterpret_cast<VideoEncodeUsageInfoKHR const *>( &rhs ) )
  100566. {
  100567. }
  100568. VideoEncodeUsageInfoKHR & operator=( VideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100569. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  100570. VideoEncodeUsageInfoKHR & operator=( VkVideoEncodeUsageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100571. {
  100572. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR const *>( &rhs );
  100573. return *this;
  100574. }
  100575. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  100576. VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  100577. {
  100578. pNext = pNext_;
  100579. return *this;
  100580. }
  100581. VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR & setVideoUsageHints( VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR videoUsageHints_ ) VULKAN_HPP_NOEXCEPT
  100582. {
  100583. videoUsageHints = videoUsageHints_;
  100584. return *this;
  100585. }
  100586. VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR &
  100587. setVideoContentHints( VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints_ ) VULKAN_HPP_NOEXCEPT
  100588. {
  100589. videoContentHints = videoContentHints_;
  100590. return *this;
  100591. }
  100592. VULKAN_HPP_CONSTEXPR_14 VideoEncodeUsageInfoKHR & setTuningMode( VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR tuningMode_ ) VULKAN_HPP_NOEXCEPT
  100593. {
  100594. tuningMode = tuningMode_;
  100595. return *this;
  100596. }
  100597. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  100598. operator VkVideoEncodeUsageInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  100599. {
  100600. return *reinterpret_cast<const VkVideoEncodeUsageInfoKHR *>( this );
  100601. }
  100602. operator VkVideoEncodeUsageInfoKHR &() VULKAN_HPP_NOEXCEPT
  100603. {
  100604. return *reinterpret_cast<VkVideoEncodeUsageInfoKHR *>( this );
  100605. }
  100606. # if defined( VULKAN_HPP_USE_REFLECT )
  100607. # if 14 <= VULKAN_HPP_CPP_VERSION
  100608. auto
  100609. # else
  100610. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  100611. const void * const &,
  100612. VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR const &,
  100613. VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR const &,
  100614. VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR const &>
  100615. # endif
  100616. reflect() const VULKAN_HPP_NOEXCEPT
  100617. {
  100618. return std::tie( sType, pNext, videoUsageHints, videoContentHints, tuningMode );
  100619. }
  100620. # endif
  100621. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  100622. auto operator<=>( VideoEncodeUsageInfoKHR const & ) const = default;
  100623. # else
  100624. bool operator==( VideoEncodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100625. {
  100626. # if defined( VULKAN_HPP_USE_REFLECT )
  100627. return this->reflect() == rhs.reflect();
  100628. # else
  100629. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoUsageHints == rhs.videoUsageHints ) && ( videoContentHints == rhs.videoContentHints ) &&
  100630. ( tuningMode == rhs.tuningMode );
  100631. # endif
  100632. }
  100633. bool operator!=( VideoEncodeUsageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100634. {
  100635. return !operator==( rhs );
  100636. }
  100637. # endif
  100638. public:
  100639. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeUsageInfoKHR;
  100640. const void * pNext = {};
  100641. VULKAN_HPP_NAMESPACE::VideoEncodeUsageFlagsKHR videoUsageHints = {};
  100642. VULKAN_HPP_NAMESPACE::VideoEncodeContentFlagsKHR videoContentHints = {};
  100643. VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR tuningMode = VULKAN_HPP_NAMESPACE::VideoEncodeTuningModeKHR::eDefault;
  100644. };
  100645. template <>
  100646. struct CppType<StructureType, StructureType::eVideoEncodeUsageInfoKHR>
  100647. {
  100648. using Type = VideoEncodeUsageInfoKHR;
  100649. };
  100650. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  100651. struct VideoEndCodingInfoKHR
  100652. {
  100653. using NativeType = VkVideoEndCodingInfoKHR;
  100654. static const bool allowDuplicate = false;
  100655. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEndCodingInfoKHR;
  100656. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  100657. VULKAN_HPP_CONSTEXPR VideoEndCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  100658. : pNext( pNext_ )
  100659. , flags( flags_ )
  100660. {
  100661. }
  100662. VULKAN_HPP_CONSTEXPR VideoEndCodingInfoKHR( VideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100663. VideoEndCodingInfoKHR( VkVideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100664. : VideoEndCodingInfoKHR( *reinterpret_cast<VideoEndCodingInfoKHR const *>( &rhs ) )
  100665. {
  100666. }
  100667. VideoEndCodingInfoKHR & operator=( VideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100668. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  100669. VideoEndCodingInfoKHR & operator=( VkVideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100670. {
  100671. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR const *>( &rhs );
  100672. return *this;
  100673. }
  100674. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  100675. VULKAN_HPP_CONSTEXPR_14 VideoEndCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  100676. {
  100677. pNext = pNext_;
  100678. return *this;
  100679. }
  100680. VULKAN_HPP_CONSTEXPR_14 VideoEndCodingInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  100681. {
  100682. flags = flags_;
  100683. return *this;
  100684. }
  100685. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  100686. operator VkVideoEndCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  100687. {
  100688. return *reinterpret_cast<const VkVideoEndCodingInfoKHR *>( this );
  100689. }
  100690. operator VkVideoEndCodingInfoKHR &() VULKAN_HPP_NOEXCEPT
  100691. {
  100692. return *reinterpret_cast<VkVideoEndCodingInfoKHR *>( this );
  100693. }
  100694. #if defined( VULKAN_HPP_USE_REFLECT )
  100695. # if 14 <= VULKAN_HPP_CPP_VERSION
  100696. auto
  100697. # else
  100698. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR const &>
  100699. # endif
  100700. reflect() const VULKAN_HPP_NOEXCEPT
  100701. {
  100702. return std::tie( sType, pNext, flags );
  100703. }
  100704. #endif
  100705. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  100706. auto operator<=>( VideoEndCodingInfoKHR const & ) const = default;
  100707. #else
  100708. bool operator==( VideoEndCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100709. {
  100710. # if defined( VULKAN_HPP_USE_REFLECT )
  100711. return this->reflect() == rhs.reflect();
  100712. # else
  100713. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags );
  100714. # endif
  100715. }
  100716. bool operator!=( VideoEndCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100717. {
  100718. return !operator==( rhs );
  100719. }
  100720. #endif
  100721. public:
  100722. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEndCodingInfoKHR;
  100723. const void * pNext = {};
  100724. VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags = {};
  100725. };
  100726. template <>
  100727. struct CppType<StructureType, StructureType::eVideoEndCodingInfoKHR>
  100728. {
  100729. using Type = VideoEndCodingInfoKHR;
  100730. };
  100731. struct VideoFormatPropertiesKHR
  100732. {
  100733. using NativeType = VkVideoFormatPropertiesKHR;
  100734. static const bool allowDuplicate = false;
  100735. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoFormatPropertiesKHR;
  100736. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  100737. VULKAN_HPP_CONSTEXPR VideoFormatPropertiesKHR( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  100738. VULKAN_HPP_NAMESPACE::ComponentMapping componentMapping_ = {},
  100739. VULKAN_HPP_NAMESPACE::ImageCreateFlags imageCreateFlags_ = {},
  100740. VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D,
  100741. VULKAN_HPP_NAMESPACE::ImageTiling imageTiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal,
  100742. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsageFlags_ = {},
  100743. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  100744. : pNext( pNext_ )
  100745. , format( format_ )
  100746. , componentMapping( componentMapping_ )
  100747. , imageCreateFlags( imageCreateFlags_ )
  100748. , imageType( imageType_ )
  100749. , imageTiling( imageTiling_ )
  100750. , imageUsageFlags( imageUsageFlags_ )
  100751. {
  100752. }
  100753. VULKAN_HPP_CONSTEXPR VideoFormatPropertiesKHR( VideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100754. VideoFormatPropertiesKHR( VkVideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100755. : VideoFormatPropertiesKHR( *reinterpret_cast<VideoFormatPropertiesKHR const *>( &rhs ) )
  100756. {
  100757. }
  100758. VideoFormatPropertiesKHR & operator=( VideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100759. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  100760. VideoFormatPropertiesKHR & operator=( VkVideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100761. {
  100762. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR const *>( &rhs );
  100763. return *this;
  100764. }
  100765. operator VkVideoFormatPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT
  100766. {
  100767. return *reinterpret_cast<const VkVideoFormatPropertiesKHR *>( this );
  100768. }
  100769. operator VkVideoFormatPropertiesKHR &() VULKAN_HPP_NOEXCEPT
  100770. {
  100771. return *reinterpret_cast<VkVideoFormatPropertiesKHR *>( this );
  100772. }
  100773. #if defined( VULKAN_HPP_USE_REFLECT )
  100774. # if 14 <= VULKAN_HPP_CPP_VERSION
  100775. auto
  100776. # else
  100777. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  100778. void * const &,
  100779. VULKAN_HPP_NAMESPACE::Format const &,
  100780. VULKAN_HPP_NAMESPACE::ComponentMapping const &,
  100781. VULKAN_HPP_NAMESPACE::ImageCreateFlags const &,
  100782. VULKAN_HPP_NAMESPACE::ImageType const &,
  100783. VULKAN_HPP_NAMESPACE::ImageTiling const &,
  100784. VULKAN_HPP_NAMESPACE::ImageUsageFlags const &>
  100785. # endif
  100786. reflect() const VULKAN_HPP_NOEXCEPT
  100787. {
  100788. return std::tie( sType, pNext, format, componentMapping, imageCreateFlags, imageType, imageTiling, imageUsageFlags );
  100789. }
  100790. #endif
  100791. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  100792. auto operator<=>( VideoFormatPropertiesKHR const & ) const = default;
  100793. #else
  100794. bool operator==( VideoFormatPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100795. {
  100796. # if defined( VULKAN_HPP_USE_REFLECT )
  100797. return this->reflect() == rhs.reflect();
  100798. # else
  100799. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( componentMapping == rhs.componentMapping ) &&
  100800. ( imageCreateFlags == rhs.imageCreateFlags ) && ( imageType == rhs.imageType ) && ( imageTiling == rhs.imageTiling ) &&
  100801. ( imageUsageFlags == rhs.imageUsageFlags );
  100802. # endif
  100803. }
  100804. bool operator!=( VideoFormatPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100805. {
  100806. return !operator==( rhs );
  100807. }
  100808. #endif
  100809. public:
  100810. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoFormatPropertiesKHR;
  100811. void * pNext = {};
  100812. VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  100813. VULKAN_HPP_NAMESPACE::ComponentMapping componentMapping = {};
  100814. VULKAN_HPP_NAMESPACE::ImageCreateFlags imageCreateFlags = {};
  100815. VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D;
  100816. VULKAN_HPP_NAMESPACE::ImageTiling imageTiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal;
  100817. VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsageFlags = {};
  100818. };
  100819. template <>
  100820. struct CppType<StructureType, StructureType::eVideoFormatPropertiesKHR>
  100821. {
  100822. using Type = VideoFormatPropertiesKHR;
  100823. };
  100824. struct VideoProfileListInfoKHR
  100825. {
  100826. using NativeType = VkVideoProfileListInfoKHR;
  100827. static const bool allowDuplicate = false;
  100828. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoProfileListInfoKHR;
  100829. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  100830. VULKAN_HPP_CONSTEXPR VideoProfileListInfoKHR( uint32_t profileCount_ = {},
  100831. const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles_ = {},
  100832. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  100833. : pNext( pNext_ )
  100834. , profileCount( profileCount_ )
  100835. , pProfiles( pProfiles_ )
  100836. {
  100837. }
  100838. VULKAN_HPP_CONSTEXPR VideoProfileListInfoKHR( VideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100839. VideoProfileListInfoKHR( VkVideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100840. : VideoProfileListInfoKHR( *reinterpret_cast<VideoProfileListInfoKHR const *>( &rhs ) )
  100841. {
  100842. }
  100843. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  100844. VideoProfileListInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR> const & profiles_,
  100845. const void * pNext_ = nullptr )
  100846. : pNext( pNext_ ), profileCount( static_cast<uint32_t>( profiles_.size() ) ), pProfiles( profiles_.data() )
  100847. {
  100848. }
  100849. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  100850. VideoProfileListInfoKHR & operator=( VideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100851. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  100852. VideoProfileListInfoKHR & operator=( VkVideoProfileListInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100853. {
  100854. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR const *>( &rhs );
  100855. return *this;
  100856. }
  100857. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  100858. VULKAN_HPP_CONSTEXPR_14 VideoProfileListInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  100859. {
  100860. pNext = pNext_;
  100861. return *this;
  100862. }
  100863. VULKAN_HPP_CONSTEXPR_14 VideoProfileListInfoKHR & setProfileCount( uint32_t profileCount_ ) VULKAN_HPP_NOEXCEPT
  100864. {
  100865. profileCount = profileCount_;
  100866. return *this;
  100867. }
  100868. VULKAN_HPP_CONSTEXPR_14 VideoProfileListInfoKHR & setPProfiles( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles_ ) VULKAN_HPP_NOEXCEPT
  100869. {
  100870. pProfiles = pProfiles_;
  100871. return *this;
  100872. }
  100873. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  100874. VideoProfileListInfoKHR &
  100875. setProfiles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR> const & profiles_ ) VULKAN_HPP_NOEXCEPT
  100876. {
  100877. profileCount = static_cast<uint32_t>( profiles_.size() );
  100878. pProfiles = profiles_.data();
  100879. return *this;
  100880. }
  100881. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  100882. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  100883. operator VkVideoProfileListInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  100884. {
  100885. return *reinterpret_cast<const VkVideoProfileListInfoKHR *>( this );
  100886. }
  100887. operator VkVideoProfileListInfoKHR &() VULKAN_HPP_NOEXCEPT
  100888. {
  100889. return *reinterpret_cast<VkVideoProfileListInfoKHR *>( this );
  100890. }
  100891. #if defined( VULKAN_HPP_USE_REFLECT )
  100892. # if 14 <= VULKAN_HPP_CPP_VERSION
  100893. auto
  100894. # else
  100895. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * const &>
  100896. # endif
  100897. reflect() const VULKAN_HPP_NOEXCEPT
  100898. {
  100899. return std::tie( sType, pNext, profileCount, pProfiles );
  100900. }
  100901. #endif
  100902. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  100903. auto operator<=>( VideoProfileListInfoKHR const & ) const = default;
  100904. #else
  100905. bool operator==( VideoProfileListInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100906. {
  100907. # if defined( VULKAN_HPP_USE_REFLECT )
  100908. return this->reflect() == rhs.reflect();
  100909. # else
  100910. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( profileCount == rhs.profileCount ) && ( pProfiles == rhs.pProfiles );
  100911. # endif
  100912. }
  100913. bool operator!=( VideoProfileListInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  100914. {
  100915. return !operator==( rhs );
  100916. }
  100917. #endif
  100918. public:
  100919. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoProfileListInfoKHR;
  100920. const void * pNext = {};
  100921. uint32_t profileCount = {};
  100922. const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pProfiles = {};
  100923. };
  100924. template <>
  100925. struct CppType<StructureType, StructureType::eVideoProfileListInfoKHR>
  100926. {
  100927. using Type = VideoProfileListInfoKHR;
  100928. };
  100929. struct VideoSessionCreateInfoKHR
  100930. {
  100931. using NativeType = VkVideoSessionCreateInfoKHR;
  100932. static const bool allowDuplicate = false;
  100933. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionCreateInfoKHR;
  100934. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  100935. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR( uint32_t queueFamilyIndex_ = {},
  100936. VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags_ = {},
  100937. const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ = {},
  100938. VULKAN_HPP_NAMESPACE::Format pictureFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  100939. VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent_ = {},
  100940. VULKAN_HPP_NAMESPACE::Format referencePictureFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined,
  100941. uint32_t maxDpbSlots_ = {},
  100942. uint32_t maxActiveReferencePictures_ = {},
  100943. const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion_ = {},
  100944. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  100945. : pNext( pNext_ )
  100946. , queueFamilyIndex( queueFamilyIndex_ )
  100947. , flags( flags_ )
  100948. , pVideoProfile( pVideoProfile_ )
  100949. , pictureFormat( pictureFormat_ )
  100950. , maxCodedExtent( maxCodedExtent_ )
  100951. , referencePictureFormat( referencePictureFormat_ )
  100952. , maxDpbSlots( maxDpbSlots_ )
  100953. , maxActiveReferencePictures( maxActiveReferencePictures_ )
  100954. , pStdHeaderVersion( pStdHeaderVersion_ )
  100955. {
  100956. }
  100957. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR( VideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100958. VideoSessionCreateInfoKHR( VkVideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100959. : VideoSessionCreateInfoKHR( *reinterpret_cast<VideoSessionCreateInfoKHR const *>( &rhs ) )
  100960. {
  100961. }
  100962. VideoSessionCreateInfoKHR & operator=( VideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  100963. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  100964. VideoSessionCreateInfoKHR & operator=( VkVideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  100965. {
  100966. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const *>( &rhs );
  100967. return *this;
  100968. }
  100969. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  100970. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  100971. {
  100972. pNext = pNext_;
  100973. return *this;
  100974. }
  100975. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT
  100976. {
  100977. queueFamilyIndex = queueFamilyIndex_;
  100978. return *this;
  100979. }
  100980. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  100981. {
  100982. flags = flags_;
  100983. return *this;
  100984. }
  100985. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setPVideoProfile( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile_ ) VULKAN_HPP_NOEXCEPT
  100986. {
  100987. pVideoProfile = pVideoProfile_;
  100988. return *this;
  100989. }
  100990. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setPictureFormat( VULKAN_HPP_NAMESPACE::Format pictureFormat_ ) VULKAN_HPP_NOEXCEPT
  100991. {
  100992. pictureFormat = pictureFormat_;
  100993. return *this;
  100994. }
  100995. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setMaxCodedExtent( VULKAN_HPP_NAMESPACE::Extent2D const & maxCodedExtent_ ) VULKAN_HPP_NOEXCEPT
  100996. {
  100997. maxCodedExtent = maxCodedExtent_;
  100998. return *this;
  100999. }
  101000. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setReferencePictureFormat( VULKAN_HPP_NAMESPACE::Format referencePictureFormat_ ) VULKAN_HPP_NOEXCEPT
  101001. {
  101002. referencePictureFormat = referencePictureFormat_;
  101003. return *this;
  101004. }
  101005. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setMaxDpbSlots( uint32_t maxDpbSlots_ ) VULKAN_HPP_NOEXCEPT
  101006. {
  101007. maxDpbSlots = maxDpbSlots_;
  101008. return *this;
  101009. }
  101010. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & setMaxActiveReferencePictures( uint32_t maxActiveReferencePictures_ ) VULKAN_HPP_NOEXCEPT
  101011. {
  101012. maxActiveReferencePictures = maxActiveReferencePictures_;
  101013. return *this;
  101014. }
  101015. VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR &
  101016. setPStdHeaderVersion( const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion_ ) VULKAN_HPP_NOEXCEPT
  101017. {
  101018. pStdHeaderVersion = pStdHeaderVersion_;
  101019. return *this;
  101020. }
  101021. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  101022. operator VkVideoSessionCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  101023. {
  101024. return *reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( this );
  101025. }
  101026. operator VkVideoSessionCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  101027. {
  101028. return *reinterpret_cast<VkVideoSessionCreateInfoKHR *>( this );
  101029. }
  101030. #if defined( VULKAN_HPP_USE_REFLECT )
  101031. # if 14 <= VULKAN_HPP_CPP_VERSION
  101032. auto
  101033. # else
  101034. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  101035. const void * const &,
  101036. uint32_t const &,
  101037. VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR const &,
  101038. const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * const &,
  101039. VULKAN_HPP_NAMESPACE::Format const &,
  101040. VULKAN_HPP_NAMESPACE::Extent2D const &,
  101041. VULKAN_HPP_NAMESPACE::Format const &,
  101042. uint32_t const &,
  101043. uint32_t const &,
  101044. const VULKAN_HPP_NAMESPACE::ExtensionProperties * const &>
  101045. # endif
  101046. reflect() const VULKAN_HPP_NOEXCEPT
  101047. {
  101048. return std::tie( sType,
  101049. pNext,
  101050. queueFamilyIndex,
  101051. flags,
  101052. pVideoProfile,
  101053. pictureFormat,
  101054. maxCodedExtent,
  101055. referencePictureFormat,
  101056. maxDpbSlots,
  101057. maxActiveReferencePictures,
  101058. pStdHeaderVersion );
  101059. }
  101060. #endif
  101061. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  101062. auto operator<=>( VideoSessionCreateInfoKHR const & ) const = default;
  101063. #else
  101064. bool operator==( VideoSessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101065. {
  101066. # if defined( VULKAN_HPP_USE_REFLECT )
  101067. return this->reflect() == rhs.reflect();
  101068. # else
  101069. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueFamilyIndex == rhs.queueFamilyIndex ) && ( flags == rhs.flags ) &&
  101070. ( pVideoProfile == rhs.pVideoProfile ) && ( pictureFormat == rhs.pictureFormat ) && ( maxCodedExtent == rhs.maxCodedExtent ) &&
  101071. ( referencePictureFormat == rhs.referencePictureFormat ) && ( maxDpbSlots == rhs.maxDpbSlots ) &&
  101072. ( maxActiveReferencePictures == rhs.maxActiveReferencePictures ) && ( pStdHeaderVersion == rhs.pStdHeaderVersion );
  101073. # endif
  101074. }
  101075. bool operator!=( VideoSessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101076. {
  101077. return !operator==( rhs );
  101078. }
  101079. #endif
  101080. public:
  101081. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionCreateInfoKHR;
  101082. const void * pNext = {};
  101083. uint32_t queueFamilyIndex = {};
  101084. VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags = {};
  101085. const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile = {};
  101086. VULKAN_HPP_NAMESPACE::Format pictureFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  101087. VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent = {};
  101088. VULKAN_HPP_NAMESPACE::Format referencePictureFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined;
  101089. uint32_t maxDpbSlots = {};
  101090. uint32_t maxActiveReferencePictures = {};
  101091. const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdHeaderVersion = {};
  101092. };
  101093. template <>
  101094. struct CppType<StructureType, StructureType::eVideoSessionCreateInfoKHR>
  101095. {
  101096. using Type = VideoSessionCreateInfoKHR;
  101097. };
  101098. struct VideoSessionMemoryRequirementsKHR
  101099. {
  101100. using NativeType = VkVideoSessionMemoryRequirementsKHR;
  101101. static const bool allowDuplicate = false;
  101102. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionMemoryRequirementsKHR;
  101103. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  101104. VULKAN_HPP_CONSTEXPR VideoSessionMemoryRequirementsKHR( uint32_t memoryBindIndex_ = {},
  101105. VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {},
  101106. void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  101107. : pNext( pNext_ )
  101108. , memoryBindIndex( memoryBindIndex_ )
  101109. , memoryRequirements( memoryRequirements_ )
  101110. {
  101111. }
  101112. VULKAN_HPP_CONSTEXPR VideoSessionMemoryRequirementsKHR( VideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101113. VideoSessionMemoryRequirementsKHR( VkVideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101114. : VideoSessionMemoryRequirementsKHR( *reinterpret_cast<VideoSessionMemoryRequirementsKHR const *>( &rhs ) )
  101115. {
  101116. }
  101117. VideoSessionMemoryRequirementsKHR & operator=( VideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101118. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  101119. VideoSessionMemoryRequirementsKHR & operator=( VkVideoSessionMemoryRequirementsKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101120. {
  101121. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR const *>( &rhs );
  101122. return *this;
  101123. }
  101124. operator VkVideoSessionMemoryRequirementsKHR const &() const VULKAN_HPP_NOEXCEPT
  101125. {
  101126. return *reinterpret_cast<const VkVideoSessionMemoryRequirementsKHR *>( this );
  101127. }
  101128. operator VkVideoSessionMemoryRequirementsKHR &() VULKAN_HPP_NOEXCEPT
  101129. {
  101130. return *reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( this );
  101131. }
  101132. #if defined( VULKAN_HPP_USE_REFLECT )
  101133. # if 14 <= VULKAN_HPP_CPP_VERSION
  101134. auto
  101135. # else
  101136. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::MemoryRequirements const &>
  101137. # endif
  101138. reflect() const VULKAN_HPP_NOEXCEPT
  101139. {
  101140. return std::tie( sType, pNext, memoryBindIndex, memoryRequirements );
  101141. }
  101142. #endif
  101143. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  101144. auto operator<=>( VideoSessionMemoryRequirementsKHR const & ) const = default;
  101145. #else
  101146. bool operator==( VideoSessionMemoryRequirementsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101147. {
  101148. # if defined( VULKAN_HPP_USE_REFLECT )
  101149. return this->reflect() == rhs.reflect();
  101150. # else
  101151. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryBindIndex == rhs.memoryBindIndex ) && ( memoryRequirements == rhs.memoryRequirements );
  101152. # endif
  101153. }
  101154. bool operator!=( VideoSessionMemoryRequirementsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101155. {
  101156. return !operator==( rhs );
  101157. }
  101158. #endif
  101159. public:
  101160. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionMemoryRequirementsKHR;
  101161. void * pNext = {};
  101162. uint32_t memoryBindIndex = {};
  101163. VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {};
  101164. };
  101165. template <>
  101166. struct CppType<StructureType, StructureType::eVideoSessionMemoryRequirementsKHR>
  101167. {
  101168. using Type = VideoSessionMemoryRequirementsKHR;
  101169. };
  101170. struct VideoSessionParametersCreateInfoKHR
  101171. {
  101172. using NativeType = VkVideoSessionParametersCreateInfoKHR;
  101173. static const bool allowDuplicate = false;
  101174. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionParametersCreateInfoKHR;
  101175. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  101176. VULKAN_HPP_CONSTEXPR VideoSessionParametersCreateInfoKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags_ = {},
  101177. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate_ = {},
  101178. VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ = {},
  101179. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  101180. : pNext( pNext_ )
  101181. , flags( flags_ )
  101182. , videoSessionParametersTemplate( videoSessionParametersTemplate_ )
  101183. , videoSession( videoSession_ )
  101184. {
  101185. }
  101186. VULKAN_HPP_CONSTEXPR VideoSessionParametersCreateInfoKHR( VideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101187. VideoSessionParametersCreateInfoKHR( VkVideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101188. : VideoSessionParametersCreateInfoKHR( *reinterpret_cast<VideoSessionParametersCreateInfoKHR const *>( &rhs ) )
  101189. {
  101190. }
  101191. VideoSessionParametersCreateInfoKHR & operator=( VideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101192. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  101193. VideoSessionParametersCreateInfoKHR & operator=( VkVideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101194. {
  101195. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const *>( &rhs );
  101196. return *this;
  101197. }
  101198. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  101199. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  101200. {
  101201. pNext = pNext_;
  101202. return *this;
  101203. }
  101204. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR &
  101205. setFlags( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  101206. {
  101207. flags = flags_;
  101208. return *this;
  101209. }
  101210. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR &
  101211. setVideoSessionParametersTemplate( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate_ ) VULKAN_HPP_NOEXCEPT
  101212. {
  101213. videoSessionParametersTemplate = videoSessionParametersTemplate_;
  101214. return *this;
  101215. }
  101216. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR & setVideoSession( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ ) VULKAN_HPP_NOEXCEPT
  101217. {
  101218. videoSession = videoSession_;
  101219. return *this;
  101220. }
  101221. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  101222. operator VkVideoSessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  101223. {
  101224. return *reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( this );
  101225. }
  101226. operator VkVideoSessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  101227. {
  101228. return *reinterpret_cast<VkVideoSessionParametersCreateInfoKHR *>( this );
  101229. }
  101230. #if defined( VULKAN_HPP_USE_REFLECT )
  101231. # if 14 <= VULKAN_HPP_CPP_VERSION
  101232. auto
  101233. # else
  101234. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  101235. const void * const &,
  101236. VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR const &,
  101237. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &,
  101238. VULKAN_HPP_NAMESPACE::VideoSessionKHR const &>
  101239. # endif
  101240. reflect() const VULKAN_HPP_NOEXCEPT
  101241. {
  101242. return std::tie( sType, pNext, flags, videoSessionParametersTemplate, videoSession );
  101243. }
  101244. #endif
  101245. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  101246. auto operator<=>( VideoSessionParametersCreateInfoKHR const & ) const = default;
  101247. #else
  101248. bool operator==( VideoSessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101249. {
  101250. # if defined( VULKAN_HPP_USE_REFLECT )
  101251. return this->reflect() == rhs.reflect();
  101252. # else
  101253. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
  101254. ( videoSessionParametersTemplate == rhs.videoSessionParametersTemplate ) && ( videoSession == rhs.videoSession );
  101255. # endif
  101256. }
  101257. bool operator!=( VideoSessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101258. {
  101259. return !operator==( rhs );
  101260. }
  101261. #endif
  101262. public:
  101263. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionParametersCreateInfoKHR;
  101264. const void * pNext = {};
  101265. VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateFlagsKHR flags = {};
  101266. VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate = {};
  101267. VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession = {};
  101268. };
  101269. template <>
  101270. struct CppType<StructureType, StructureType::eVideoSessionParametersCreateInfoKHR>
  101271. {
  101272. using Type = VideoSessionParametersCreateInfoKHR;
  101273. };
  101274. struct VideoSessionParametersUpdateInfoKHR
  101275. {
  101276. using NativeType = VkVideoSessionParametersUpdateInfoKHR;
  101277. static const bool allowDuplicate = false;
  101278. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionParametersUpdateInfoKHR;
  101279. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  101280. VULKAN_HPP_CONSTEXPR VideoSessionParametersUpdateInfoKHR( uint32_t updateSequenceCount_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  101281. : pNext( pNext_ )
  101282. , updateSequenceCount( updateSequenceCount_ )
  101283. {
  101284. }
  101285. VULKAN_HPP_CONSTEXPR VideoSessionParametersUpdateInfoKHR( VideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101286. VideoSessionParametersUpdateInfoKHR( VkVideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101287. : VideoSessionParametersUpdateInfoKHR( *reinterpret_cast<VideoSessionParametersUpdateInfoKHR const *>( &rhs ) )
  101288. {
  101289. }
  101290. VideoSessionParametersUpdateInfoKHR & operator=( VideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101291. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  101292. VideoSessionParametersUpdateInfoKHR & operator=( VkVideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101293. {
  101294. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR const *>( &rhs );
  101295. return *this;
  101296. }
  101297. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  101298. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersUpdateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  101299. {
  101300. pNext = pNext_;
  101301. return *this;
  101302. }
  101303. VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersUpdateInfoKHR & setUpdateSequenceCount( uint32_t updateSequenceCount_ ) VULKAN_HPP_NOEXCEPT
  101304. {
  101305. updateSequenceCount = updateSequenceCount_;
  101306. return *this;
  101307. }
  101308. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  101309. operator VkVideoSessionParametersUpdateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  101310. {
  101311. return *reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( this );
  101312. }
  101313. operator VkVideoSessionParametersUpdateInfoKHR &() VULKAN_HPP_NOEXCEPT
  101314. {
  101315. return *reinterpret_cast<VkVideoSessionParametersUpdateInfoKHR *>( this );
  101316. }
  101317. #if defined( VULKAN_HPP_USE_REFLECT )
  101318. # if 14 <= VULKAN_HPP_CPP_VERSION
  101319. auto
  101320. # else
  101321. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &>
  101322. # endif
  101323. reflect() const VULKAN_HPP_NOEXCEPT
  101324. {
  101325. return std::tie( sType, pNext, updateSequenceCount );
  101326. }
  101327. #endif
  101328. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  101329. auto operator<=>( VideoSessionParametersUpdateInfoKHR const & ) const = default;
  101330. #else
  101331. bool operator==( VideoSessionParametersUpdateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101332. {
  101333. # if defined( VULKAN_HPP_USE_REFLECT )
  101334. return this->reflect() == rhs.reflect();
  101335. # else
  101336. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( updateSequenceCount == rhs.updateSequenceCount );
  101337. # endif
  101338. }
  101339. bool operator!=( VideoSessionParametersUpdateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101340. {
  101341. return !operator==( rhs );
  101342. }
  101343. #endif
  101344. public:
  101345. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionParametersUpdateInfoKHR;
  101346. const void * pNext = {};
  101347. uint32_t updateSequenceCount = {};
  101348. };
  101349. template <>
  101350. struct CppType<StructureType, StructureType::eVideoSessionParametersUpdateInfoKHR>
  101351. {
  101352. using Type = VideoSessionParametersUpdateInfoKHR;
  101353. };
  101354. #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
  101355. struct WaylandSurfaceCreateInfoKHR
  101356. {
  101357. using NativeType = VkWaylandSurfaceCreateInfoKHR;
  101358. static const bool allowDuplicate = false;
  101359. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWaylandSurfaceCreateInfoKHR;
  101360. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  101361. VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {},
  101362. struct wl_display * display_ = {},
  101363. struct wl_surface * surface_ = {},
  101364. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  101365. : pNext( pNext_ )
  101366. , flags( flags_ )
  101367. , display( display_ )
  101368. , surface( surface_ )
  101369. {
  101370. }
  101371. VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101372. WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101373. : WaylandSurfaceCreateInfoKHR( *reinterpret_cast<WaylandSurfaceCreateInfoKHR const *>( &rhs ) )
  101374. {
  101375. }
  101376. WaylandSurfaceCreateInfoKHR & operator=( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101377. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  101378. WaylandSurfaceCreateInfoKHR & operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101379. {
  101380. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const *>( &rhs );
  101381. return *this;
  101382. }
  101383. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  101384. VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  101385. {
  101386. pNext = pNext_;
  101387. return *this;
  101388. }
  101389. VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  101390. {
  101391. flags = flags_;
  101392. return *this;
  101393. }
  101394. VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display * display_ ) VULKAN_HPP_NOEXCEPT
  101395. {
  101396. display = display_;
  101397. return *this;
  101398. }
  101399. VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface * surface_ ) VULKAN_HPP_NOEXCEPT
  101400. {
  101401. surface = surface_;
  101402. return *this;
  101403. }
  101404. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  101405. operator VkWaylandSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  101406. {
  101407. return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( this );
  101408. }
  101409. operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  101410. {
  101411. return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR *>( this );
  101412. }
  101413. # if defined( VULKAN_HPP_USE_REFLECT )
  101414. # if 14 <= VULKAN_HPP_CPP_VERSION
  101415. auto
  101416. # else
  101417. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  101418. const void * const &,
  101419. VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR const &,
  101420. struct wl_display * const &,
  101421. struct wl_surface * const &>
  101422. # endif
  101423. reflect() const VULKAN_HPP_NOEXCEPT
  101424. {
  101425. return std::tie( sType, pNext, flags, display, surface );
  101426. }
  101427. # endif
  101428. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  101429. auto operator<=>( WaylandSurfaceCreateInfoKHR const & ) const = default;
  101430. # else
  101431. bool operator==( WaylandSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101432. {
  101433. # if defined( VULKAN_HPP_USE_REFLECT )
  101434. return this->reflect() == rhs.reflect();
  101435. # else
  101436. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( display == rhs.display ) && ( surface == rhs.surface );
  101437. # endif
  101438. }
  101439. bool operator!=( WaylandSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101440. {
  101441. return !operator==( rhs );
  101442. }
  101443. # endif
  101444. public:
  101445. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR;
  101446. const void * pNext = {};
  101447. VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {};
  101448. struct wl_display * display = {};
  101449. struct wl_surface * surface = {};
  101450. };
  101451. template <>
  101452. struct CppType<StructureType, StructureType::eWaylandSurfaceCreateInfoKHR>
  101453. {
  101454. using Type = WaylandSurfaceCreateInfoKHR;
  101455. };
  101456. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  101457. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  101458. struct Win32KeyedMutexAcquireReleaseInfoKHR
  101459. {
  101460. using NativeType = VkWin32KeyedMutexAcquireReleaseInfoKHR;
  101461. static const bool allowDuplicate = false;
  101462. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
  101463. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  101464. VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( uint32_t acquireCount_ = {},
  101465. const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ = {},
  101466. const uint64_t * pAcquireKeys_ = {},
  101467. const uint32_t * pAcquireTimeouts_ = {},
  101468. uint32_t releaseCount_ = {},
  101469. const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ = {},
  101470. const uint64_t * pReleaseKeys_ = {},
  101471. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  101472. : pNext( pNext_ )
  101473. , acquireCount( acquireCount_ )
  101474. , pAcquireSyncs( pAcquireSyncs_ )
  101475. , pAcquireKeys( pAcquireKeys_ )
  101476. , pAcquireTimeouts( pAcquireTimeouts_ )
  101477. , releaseCount( releaseCount_ )
  101478. , pReleaseSyncs( pReleaseSyncs_ )
  101479. , pReleaseKeys( pReleaseKeys_ )
  101480. {
  101481. }
  101482. VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101483. Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101484. : Win32KeyedMutexAcquireReleaseInfoKHR( *reinterpret_cast<Win32KeyedMutexAcquireReleaseInfoKHR const *>( &rhs ) )
  101485. {
  101486. }
  101487. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101488. Win32KeyedMutexAcquireReleaseInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_,
  101489. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ = {},
  101490. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ = {},
  101491. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ = {},
  101492. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ = {},
  101493. const void * pNext_ = nullptr )
  101494. : pNext( pNext_ )
  101495. , acquireCount( static_cast<uint32_t>( acquireSyncs_.size() ) )
  101496. , pAcquireSyncs( acquireSyncs_.data() )
  101497. , pAcquireKeys( acquireKeys_.data() )
  101498. , pAcquireTimeouts( acquireTimeouts_.data() )
  101499. , releaseCount( static_cast<uint32_t>( releaseSyncs_.size() ) )
  101500. , pReleaseSyncs( releaseSyncs_.data() )
  101501. , pReleaseKeys( releaseKeys_.data() )
  101502. {
  101503. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  101504. VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
  101505. VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeouts_.size() );
  101506. VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeouts_.size() );
  101507. # else
  101508. if ( acquireSyncs_.size() != acquireKeys_.size() )
  101509. {
  101510. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  101511. "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireKeys_.size()" );
  101512. }
  101513. if ( acquireSyncs_.size() != acquireTimeouts_.size() )
  101514. {
  101515. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  101516. "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireTimeouts_.size()" );
  101517. }
  101518. if ( acquireKeys_.size() != acquireTimeouts_.size() )
  101519. {
  101520. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  101521. "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireKeys_.size() != acquireTimeouts_.size()" );
  101522. }
  101523. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  101524. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  101525. VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
  101526. # else
  101527. if ( releaseSyncs_.size() != releaseKeys_.size() )
  101528. {
  101529. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  101530. "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: releaseSyncs_.size() != releaseKeys_.size()" );
  101531. }
  101532. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  101533. }
  101534. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101535. Win32KeyedMutexAcquireReleaseInfoKHR & operator=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101536. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  101537. Win32KeyedMutexAcquireReleaseInfoKHR & operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101538. {
  101539. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR const *>( &rhs );
  101540. return *this;
  101541. }
  101542. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  101543. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  101544. {
  101545. pNext = pNext_;
  101546. return *this;
  101547. }
  101548. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
  101549. {
  101550. acquireCount = acquireCount_;
  101551. return *this;
  101552. }
  101553. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR &
  101554. setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
  101555. {
  101556. pAcquireSyncs = pAcquireSyncs_;
  101557. return *this;
  101558. }
  101559. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101560. Win32KeyedMutexAcquireReleaseInfoKHR &
  101561. setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
  101562. {
  101563. acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
  101564. pAcquireSyncs = acquireSyncs_.data();
  101565. return *this;
  101566. }
  101567. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101568. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
  101569. {
  101570. pAcquireKeys = pAcquireKeys_;
  101571. return *this;
  101572. }
  101573. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101574. Win32KeyedMutexAcquireReleaseInfoKHR &
  101575. setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
  101576. {
  101577. acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
  101578. pAcquireKeys = acquireKeys_.data();
  101579. return *this;
  101580. }
  101581. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101582. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t * pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
  101583. {
  101584. pAcquireTimeouts = pAcquireTimeouts_;
  101585. return *this;
  101586. }
  101587. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101588. Win32KeyedMutexAcquireReleaseInfoKHR &
  101589. setAcquireTimeouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeouts_ ) VULKAN_HPP_NOEXCEPT
  101590. {
  101591. acquireCount = static_cast<uint32_t>( acquireTimeouts_.size() );
  101592. pAcquireTimeouts = acquireTimeouts_.data();
  101593. return *this;
  101594. }
  101595. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101596. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
  101597. {
  101598. releaseCount = releaseCount_;
  101599. return *this;
  101600. }
  101601. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR &
  101602. setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
  101603. {
  101604. pReleaseSyncs = pReleaseSyncs_;
  101605. return *this;
  101606. }
  101607. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101608. Win32KeyedMutexAcquireReleaseInfoKHR &
  101609. setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
  101610. {
  101611. releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
  101612. pReleaseSyncs = releaseSyncs_.data();
  101613. return *this;
  101614. }
  101615. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101616. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
  101617. {
  101618. pReleaseKeys = pReleaseKeys_;
  101619. return *this;
  101620. }
  101621. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101622. Win32KeyedMutexAcquireReleaseInfoKHR &
  101623. setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
  101624. {
  101625. releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
  101626. pReleaseKeys = releaseKeys_.data();
  101627. return *this;
  101628. }
  101629. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101630. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  101631. operator VkWin32KeyedMutexAcquireReleaseInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  101632. {
  101633. return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR *>( this );
  101634. }
  101635. operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT
  101636. {
  101637. return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR *>( this );
  101638. }
  101639. # if defined( VULKAN_HPP_USE_REFLECT )
  101640. # if 14 <= VULKAN_HPP_CPP_VERSION
  101641. auto
  101642. # else
  101643. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  101644. const void * const &,
  101645. uint32_t const &,
  101646. const VULKAN_HPP_NAMESPACE::DeviceMemory * const &,
  101647. const uint64_t * const &,
  101648. const uint32_t * const &,
  101649. uint32_t const &,
  101650. const VULKAN_HPP_NAMESPACE::DeviceMemory * const &,
  101651. const uint64_t * const &>
  101652. # endif
  101653. reflect() const VULKAN_HPP_NOEXCEPT
  101654. {
  101655. return std::tie( sType, pNext, acquireCount, pAcquireSyncs, pAcquireKeys, pAcquireTimeouts, releaseCount, pReleaseSyncs, pReleaseKeys );
  101656. }
  101657. # endif
  101658. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  101659. auto operator<=>( Win32KeyedMutexAcquireReleaseInfoKHR const & ) const = default;
  101660. # else
  101661. bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101662. {
  101663. # if defined( VULKAN_HPP_USE_REFLECT )
  101664. return this->reflect() == rhs.reflect();
  101665. # else
  101666. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( acquireCount == rhs.acquireCount ) && ( pAcquireSyncs == rhs.pAcquireSyncs ) &&
  101667. ( pAcquireKeys == rhs.pAcquireKeys ) && ( pAcquireTimeouts == rhs.pAcquireTimeouts ) && ( releaseCount == rhs.releaseCount ) &&
  101668. ( pReleaseSyncs == rhs.pReleaseSyncs ) && ( pReleaseKeys == rhs.pReleaseKeys );
  101669. # endif
  101670. }
  101671. bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  101672. {
  101673. return !operator==( rhs );
  101674. }
  101675. # endif
  101676. public:
  101677. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
  101678. const void * pNext = {};
  101679. uint32_t acquireCount = {};
  101680. const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs = {};
  101681. const uint64_t * pAcquireKeys = {};
  101682. const uint32_t * pAcquireTimeouts = {};
  101683. uint32_t releaseCount = {};
  101684. const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs = {};
  101685. const uint64_t * pReleaseKeys = {};
  101686. };
  101687. template <>
  101688. struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR>
  101689. {
  101690. using Type = Win32KeyedMutexAcquireReleaseInfoKHR;
  101691. };
  101692. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  101693. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  101694. struct Win32KeyedMutexAcquireReleaseInfoNV
  101695. {
  101696. using NativeType = VkWin32KeyedMutexAcquireReleaseInfoNV;
  101697. static const bool allowDuplicate = false;
  101698. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
  101699. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  101700. VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( uint32_t acquireCount_ = {},
  101701. const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ = {},
  101702. const uint64_t * pAcquireKeys_ = {},
  101703. const uint32_t * pAcquireTimeoutMilliseconds_ = {},
  101704. uint32_t releaseCount_ = {},
  101705. const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ = {},
  101706. const uint64_t * pReleaseKeys_ = {},
  101707. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  101708. : pNext( pNext_ )
  101709. , acquireCount( acquireCount_ )
  101710. , pAcquireSyncs( pAcquireSyncs_ )
  101711. , pAcquireKeys( pAcquireKeys_ )
  101712. , pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ )
  101713. , releaseCount( releaseCount_ )
  101714. , pReleaseSyncs( pReleaseSyncs_ )
  101715. , pReleaseKeys( pReleaseKeys_ )
  101716. {
  101717. }
  101718. VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101719. Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  101720. : Win32KeyedMutexAcquireReleaseInfoNV( *reinterpret_cast<Win32KeyedMutexAcquireReleaseInfoNV const *>( &rhs ) )
  101721. {
  101722. }
  101723. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101724. Win32KeyedMutexAcquireReleaseInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_,
  101725. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ = {},
  101726. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ = {},
  101727. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ = {},
  101728. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ = {},
  101729. const void * pNext_ = nullptr )
  101730. : pNext( pNext_ )
  101731. , acquireCount( static_cast<uint32_t>( acquireSyncs_.size() ) )
  101732. , pAcquireSyncs( acquireSyncs_.data() )
  101733. , pAcquireKeys( acquireKeys_.data() )
  101734. , pAcquireTimeoutMilliseconds( acquireTimeoutMilliseconds_.data() )
  101735. , releaseCount( static_cast<uint32_t>( releaseSyncs_.size() ) )
  101736. , pReleaseSyncs( releaseSyncs_.data() )
  101737. , pReleaseKeys( releaseKeys_.data() )
  101738. {
  101739. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  101740. VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() );
  101741. VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeoutMilliseconds_.size() );
  101742. VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeoutMilliseconds_.size() );
  101743. # else
  101744. if ( acquireSyncs_.size() != acquireKeys_.size() )
  101745. {
  101746. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  101747. "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireKeys_.size()" );
  101748. }
  101749. if ( acquireSyncs_.size() != acquireTimeoutMilliseconds_.size() )
  101750. {
  101751. throw LogicError(
  101752. VULKAN_HPP_NAMESPACE_STRING
  101753. "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireTimeoutMilliseconds_.size()" );
  101754. }
  101755. if ( acquireKeys_.size() != acquireTimeoutMilliseconds_.size() )
  101756. {
  101757. throw LogicError(
  101758. VULKAN_HPP_NAMESPACE_STRING
  101759. "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireKeys_.size() != acquireTimeoutMilliseconds_.size()" );
  101760. }
  101761. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  101762. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  101763. VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() );
  101764. # else
  101765. if ( releaseSyncs_.size() != releaseKeys_.size() )
  101766. {
  101767. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  101768. "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: releaseSyncs_.size() != releaseKeys_.size()" );
  101769. }
  101770. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  101771. }
  101772. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101773. Win32KeyedMutexAcquireReleaseInfoNV & operator=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101774. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  101775. Win32KeyedMutexAcquireReleaseInfoNV & operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT
  101776. {
  101777. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV const *>( &rhs );
  101778. return *this;
  101779. }
  101780. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  101781. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  101782. {
  101783. pNext = pNext_;
  101784. return *this;
  101785. }
  101786. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT
  101787. {
  101788. acquireCount = acquireCount_;
  101789. return *this;
  101790. }
  101791. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV &
  101792. setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT
  101793. {
  101794. pAcquireSyncs = pAcquireSyncs_;
  101795. return *this;
  101796. }
  101797. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101798. Win32KeyedMutexAcquireReleaseInfoNV &
  101799. setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT
  101800. {
  101801. acquireCount = static_cast<uint32_t>( acquireSyncs_.size() );
  101802. pAcquireSyncs = acquireSyncs_.data();
  101803. return *this;
  101804. }
  101805. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101806. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT
  101807. {
  101808. pAcquireKeys = pAcquireKeys_;
  101809. return *this;
  101810. }
  101811. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101812. Win32KeyedMutexAcquireReleaseInfoNV &
  101813. setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT
  101814. {
  101815. acquireCount = static_cast<uint32_t>( acquireKeys_.size() );
  101816. pAcquireKeys = acquireKeys_.data();
  101817. return *this;
  101818. }
  101819. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101820. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV &
  101821. setPAcquireTimeoutMilliseconds( const uint32_t * pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
  101822. {
  101823. pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_;
  101824. return *this;
  101825. }
  101826. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101827. Win32KeyedMutexAcquireReleaseInfoNV &
  101828. setAcquireTimeoutMilliseconds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint32_t> const & acquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT
  101829. {
  101830. acquireCount = static_cast<uint32_t>( acquireTimeoutMilliseconds_.size() );
  101831. pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds_.data();
  101832. return *this;
  101833. }
  101834. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101835. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT
  101836. {
  101837. releaseCount = releaseCount_;
  101838. return *this;
  101839. }
  101840. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV &
  101841. setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT
  101842. {
  101843. pReleaseSyncs = pReleaseSyncs_;
  101844. return *this;
  101845. }
  101846. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101847. Win32KeyedMutexAcquireReleaseInfoNV &
  101848. setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DeviceMemory> const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT
  101849. {
  101850. releaseCount = static_cast<uint32_t>( releaseSyncs_.size() );
  101851. pReleaseSyncs = releaseSyncs_.data();
  101852. return *this;
  101853. }
  101854. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101855. VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT
  101856. {
  101857. pReleaseKeys = pReleaseKeys_;
  101858. return *this;
  101859. }
  101860. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  101861. Win32KeyedMutexAcquireReleaseInfoNV &
  101862. setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const uint64_t> const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT
  101863. {
  101864. releaseCount = static_cast<uint32_t>( releaseKeys_.size() );
  101865. pReleaseKeys = releaseKeys_.data();
  101866. return *this;
  101867. }
  101868. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  101869. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  101870. operator VkWin32KeyedMutexAcquireReleaseInfoNV const &() const VULKAN_HPP_NOEXCEPT
  101871. {
  101872. return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV *>( this );
  101873. }
  101874. operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT
  101875. {
  101876. return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV *>( this );
  101877. }
  101878. # if defined( VULKAN_HPP_USE_REFLECT )
  101879. # if 14 <= VULKAN_HPP_CPP_VERSION
  101880. auto
  101881. # else
  101882. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  101883. const void * const &,
  101884. uint32_t const &,
  101885. const VULKAN_HPP_NAMESPACE::DeviceMemory * const &,
  101886. const uint64_t * const &,
  101887. const uint32_t * const &,
  101888. uint32_t const &,
  101889. const VULKAN_HPP_NAMESPACE::DeviceMemory * const &,
  101890. const uint64_t * const &>
  101891. # endif
  101892. reflect() const VULKAN_HPP_NOEXCEPT
  101893. {
  101894. return std::tie( sType, pNext, acquireCount, pAcquireSyncs, pAcquireKeys, pAcquireTimeoutMilliseconds, releaseCount, pReleaseSyncs, pReleaseKeys );
  101895. }
  101896. # endif
  101897. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  101898. auto operator<=>( Win32KeyedMutexAcquireReleaseInfoNV const & ) const = default;
  101899. # else
  101900. bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  101901. {
  101902. # if defined( VULKAN_HPP_USE_REFLECT )
  101903. return this->reflect() == rhs.reflect();
  101904. # else
  101905. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( acquireCount == rhs.acquireCount ) && ( pAcquireSyncs == rhs.pAcquireSyncs ) &&
  101906. ( pAcquireKeys == rhs.pAcquireKeys ) && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds ) &&
  101907. ( releaseCount == rhs.releaseCount ) && ( pReleaseSyncs == rhs.pReleaseSyncs ) && ( pReleaseKeys == rhs.pReleaseKeys );
  101908. # endif
  101909. }
  101910. bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  101911. {
  101912. return !operator==( rhs );
  101913. }
  101914. # endif
  101915. public:
  101916. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
  101917. const void * pNext = {};
  101918. uint32_t acquireCount = {};
  101919. const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs = {};
  101920. const uint64_t * pAcquireKeys = {};
  101921. const uint32_t * pAcquireTimeoutMilliseconds = {};
  101922. uint32_t releaseCount = {};
  101923. const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs = {};
  101924. const uint64_t * pReleaseKeys = {};
  101925. };
  101926. template <>
  101927. struct CppType<StructureType, StructureType::eWin32KeyedMutexAcquireReleaseInfoNV>
  101928. {
  101929. using Type = Win32KeyedMutexAcquireReleaseInfoNV;
  101930. };
  101931. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  101932. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  101933. struct Win32SurfaceCreateInfoKHR
  101934. {
  101935. using NativeType = VkWin32SurfaceCreateInfoKHR;
  101936. static const bool allowDuplicate = false;
  101937. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32SurfaceCreateInfoKHR;
  101938. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  101939. VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {},
  101940. HINSTANCE hinstance_ = {},
  101941. HWND hwnd_ = {},
  101942. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  101943. : pNext( pNext_ )
  101944. , flags( flags_ )
  101945. , hinstance( hinstance_ )
  101946. , hwnd( hwnd_ )
  101947. {
  101948. }
  101949. VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101950. Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101951. : Win32SurfaceCreateInfoKHR( *reinterpret_cast<Win32SurfaceCreateInfoKHR const *>( &rhs ) )
  101952. {
  101953. }
  101954. Win32SurfaceCreateInfoKHR & operator=( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  101955. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  101956. Win32SurfaceCreateInfoKHR & operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  101957. {
  101958. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const *>( &rhs );
  101959. return *this;
  101960. }
  101961. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  101962. VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  101963. {
  101964. pNext = pNext_;
  101965. return *this;
  101966. }
  101967. VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  101968. {
  101969. flags = flags_;
  101970. return *this;
  101971. }
  101972. VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT
  101973. {
  101974. hinstance = hinstance_;
  101975. return *this;
  101976. }
  101977. VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT
  101978. {
  101979. hwnd = hwnd_;
  101980. return *this;
  101981. }
  101982. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  101983. operator VkWin32SurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  101984. {
  101985. return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( this );
  101986. }
  101987. operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  101988. {
  101989. return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR *>( this );
  101990. }
  101991. # if defined( VULKAN_HPP_USE_REFLECT )
  101992. # if 14 <= VULKAN_HPP_CPP_VERSION
  101993. auto
  101994. # else
  101995. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  101996. const void * const &,
  101997. VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR const &,
  101998. HINSTANCE const &,
  101999. HWND const &>
  102000. # endif
  102001. reflect() const VULKAN_HPP_NOEXCEPT
  102002. {
  102003. return std::tie( sType, pNext, flags, hinstance, hwnd );
  102004. }
  102005. # endif
  102006. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  102007. auto operator<=>( Win32SurfaceCreateInfoKHR const & ) const = default;
  102008. # else
  102009. bool operator==( Win32SurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  102010. {
  102011. # if defined( VULKAN_HPP_USE_REFLECT )
  102012. return this->reflect() == rhs.reflect();
  102013. # else
  102014. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( hinstance == rhs.hinstance ) && ( hwnd == rhs.hwnd );
  102015. # endif
  102016. }
  102017. bool operator!=( Win32SurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  102018. {
  102019. return !operator==( rhs );
  102020. }
  102021. # endif
  102022. public:
  102023. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR;
  102024. const void * pNext = {};
  102025. VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {};
  102026. HINSTANCE hinstance = {};
  102027. HWND hwnd = {};
  102028. };
  102029. template <>
  102030. struct CppType<StructureType, StructureType::eWin32SurfaceCreateInfoKHR>
  102031. {
  102032. using Type = Win32SurfaceCreateInfoKHR;
  102033. };
  102034. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  102035. struct WriteDescriptorSet
  102036. {
  102037. using NativeType = VkWriteDescriptorSet;
  102038. static const bool allowDuplicate = false;
  102039. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSet;
  102040. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  102041. VULKAN_HPP_CONSTEXPR WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {},
  102042. uint32_t dstBinding_ = {},
  102043. uint32_t dstArrayElement_ = {},
  102044. uint32_t descriptorCount_ = {},
  102045. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler,
  102046. const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_ = {},
  102047. const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ = {},
  102048. const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ = {},
  102049. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  102050. : pNext( pNext_ )
  102051. , dstSet( dstSet_ )
  102052. , dstBinding( dstBinding_ )
  102053. , dstArrayElement( dstArrayElement_ )
  102054. , descriptorCount( descriptorCount_ )
  102055. , descriptorType( descriptorType_ )
  102056. , pImageInfo( pImageInfo_ )
  102057. , pBufferInfo( pBufferInfo_ )
  102058. , pTexelBufferView( pTexelBufferView_ )
  102059. {
  102060. }
  102061. VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102062. WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT : WriteDescriptorSet( *reinterpret_cast<WriteDescriptorSet const *>( &rhs ) ) {}
  102063. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  102064. WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_,
  102065. uint32_t dstBinding_,
  102066. uint32_t dstArrayElement_,
  102067. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_,
  102068. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_,
  102069. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ = {},
  102070. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ = {},
  102071. const void * pNext_ = nullptr )
  102072. : pNext( pNext_ )
  102073. , dstSet( dstSet_ )
  102074. , dstBinding( dstBinding_ )
  102075. , dstArrayElement( dstArrayElement_ )
  102076. , descriptorCount( static_cast<uint32_t>( !imageInfo_.empty() ? imageInfo_.size()
  102077. : !bufferInfo_.empty() ? bufferInfo_.size()
  102078. : texelBufferView_.size() ) )
  102079. , descriptorType( descriptorType_ )
  102080. , pImageInfo( imageInfo_.data() )
  102081. , pBufferInfo( bufferInfo_.data() )
  102082. , pTexelBufferView( texelBufferView_.data() )
  102083. {
  102084. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  102085. VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) <= 1 );
  102086. # else
  102087. if ( 1 < ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) )
  102088. {
  102089. throw LogicError( VULKAN_HPP_NAMESPACE_STRING
  102090. "::WriteDescriptorSet::WriteDescriptorSet: 1 < ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() )" );
  102091. }
  102092. # endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  102093. }
  102094. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  102095. WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102096. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  102097. WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT
  102098. {
  102099. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSet const *>( &rhs );
  102100. return *this;
  102101. }
  102102. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  102103. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  102104. {
  102105. pNext = pNext_;
  102106. return *this;
  102107. }
  102108. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT
  102109. {
  102110. dstSet = dstSet_;
  102111. return *this;
  102112. }
  102113. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT
  102114. {
  102115. dstBinding = dstBinding_;
  102116. return *this;
  102117. }
  102118. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT
  102119. {
  102120. dstArrayElement = dstArrayElement_;
  102121. return *this;
  102122. }
  102123. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT
  102124. {
  102125. descriptorCount = descriptorCount_;
  102126. return *this;
  102127. }
  102128. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT
  102129. {
  102130. descriptorType = descriptorType_;
  102131. return *this;
  102132. }
  102133. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_ ) VULKAN_HPP_NOEXCEPT
  102134. {
  102135. pImageInfo = pImageInfo_;
  102136. return *this;
  102137. }
  102138. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  102139. WriteDescriptorSet &
  102140. setImageInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorImageInfo> const & imageInfo_ ) VULKAN_HPP_NOEXCEPT
  102141. {
  102142. descriptorCount = static_cast<uint32_t>( imageInfo_.size() );
  102143. pImageInfo = imageInfo_.data();
  102144. return *this;
  102145. }
  102146. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  102147. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ ) VULKAN_HPP_NOEXCEPT
  102148. {
  102149. pBufferInfo = pBufferInfo_;
  102150. return *this;
  102151. }
  102152. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  102153. WriteDescriptorSet &
  102154. setBufferInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo> const & bufferInfo_ ) VULKAN_HPP_NOEXCEPT
  102155. {
  102156. descriptorCount = static_cast<uint32_t>( bufferInfo_.size() );
  102157. pBufferInfo = bufferInfo_.data();
  102158. return *this;
  102159. }
  102160. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  102161. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT
  102162. {
  102163. pTexelBufferView = pTexelBufferView_;
  102164. return *this;
  102165. }
  102166. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  102167. WriteDescriptorSet &
  102168. setTexelBufferView( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::BufferView> const & texelBufferView_ ) VULKAN_HPP_NOEXCEPT
  102169. {
  102170. descriptorCount = static_cast<uint32_t>( texelBufferView_.size() );
  102171. pTexelBufferView = texelBufferView_.data();
  102172. return *this;
  102173. }
  102174. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  102175. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  102176. operator VkWriteDescriptorSet const &() const VULKAN_HPP_NOEXCEPT
  102177. {
  102178. return *reinterpret_cast<const VkWriteDescriptorSet *>( this );
  102179. }
  102180. operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT
  102181. {
  102182. return *reinterpret_cast<VkWriteDescriptorSet *>( this );
  102183. }
  102184. #if defined( VULKAN_HPP_USE_REFLECT )
  102185. # if 14 <= VULKAN_HPP_CPP_VERSION
  102186. auto
  102187. # else
  102188. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  102189. const void * const &,
  102190. VULKAN_HPP_NAMESPACE::DescriptorSet const &,
  102191. uint32_t const &,
  102192. uint32_t const &,
  102193. uint32_t const &,
  102194. VULKAN_HPP_NAMESPACE::DescriptorType const &,
  102195. const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * const &,
  102196. const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * const &,
  102197. const VULKAN_HPP_NAMESPACE::BufferView * const &>
  102198. # endif
  102199. reflect() const VULKAN_HPP_NOEXCEPT
  102200. {
  102201. return std::tie( sType, pNext, dstSet, dstBinding, dstArrayElement, descriptorCount, descriptorType, pImageInfo, pBufferInfo, pTexelBufferView );
  102202. }
  102203. #endif
  102204. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  102205. auto operator<=>( WriteDescriptorSet const & ) const = default;
  102206. #else
  102207. bool operator==( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
  102208. {
  102209. # if defined( VULKAN_HPP_USE_REFLECT )
  102210. return this->reflect() == rhs.reflect();
  102211. # else
  102212. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dstSet == rhs.dstSet ) && ( dstBinding == rhs.dstBinding ) &&
  102213. ( dstArrayElement == rhs.dstArrayElement ) && ( descriptorCount == rhs.descriptorCount ) && ( descriptorType == rhs.descriptorType ) &&
  102214. ( pImageInfo == rhs.pImageInfo ) && ( pBufferInfo == rhs.pBufferInfo ) && ( pTexelBufferView == rhs.pTexelBufferView );
  102215. # endif
  102216. }
  102217. bool operator!=( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT
  102218. {
  102219. return !operator==( rhs );
  102220. }
  102221. #endif
  102222. public:
  102223. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet;
  102224. const void * pNext = {};
  102225. VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {};
  102226. uint32_t dstBinding = {};
  102227. uint32_t dstArrayElement = {};
  102228. uint32_t descriptorCount = {};
  102229. VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler;
  102230. const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo = {};
  102231. const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo = {};
  102232. const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView = {};
  102233. };
  102234. template <>
  102235. struct CppType<StructureType, StructureType::eWriteDescriptorSet>
  102236. {
  102237. using Type = WriteDescriptorSet;
  102238. };
  102239. struct WriteDescriptorSetAccelerationStructureKHR
  102240. {
  102241. using NativeType = VkWriteDescriptorSetAccelerationStructureKHR;
  102242. static const bool allowDuplicate = false;
  102243. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
  102244. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  102245. VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( uint32_t accelerationStructureCount_ = {},
  102246. const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures_ = {},
  102247. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  102248. : pNext( pNext_ )
  102249. , accelerationStructureCount( accelerationStructureCount_ )
  102250. , pAccelerationStructures( pAccelerationStructures_ )
  102251. {
  102252. }
  102253. VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102254. WriteDescriptorSetAccelerationStructureKHR( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  102255. : WriteDescriptorSetAccelerationStructureKHR( *reinterpret_cast<WriteDescriptorSetAccelerationStructureKHR const *>( &rhs ) )
  102256. {
  102257. }
  102258. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  102259. WriteDescriptorSetAccelerationStructureKHR(
  102260. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_,
  102261. const void * pNext_ = nullptr )
  102262. : pNext( pNext_ )
  102263. , accelerationStructureCount( static_cast<uint32_t>( accelerationStructures_.size() ) )
  102264. , pAccelerationStructures( accelerationStructures_.data() )
  102265. {
  102266. }
  102267. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  102268. WriteDescriptorSetAccelerationStructureKHR & operator=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102269. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  102270. WriteDescriptorSetAccelerationStructureKHR & operator=( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  102271. {
  102272. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR const *>( &rhs );
  102273. return *this;
  102274. }
  102275. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  102276. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  102277. {
  102278. pNext = pNext_;
  102279. return *this;
  102280. }
  102281. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR &
  102282. setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
  102283. {
  102284. accelerationStructureCount = accelerationStructureCount_;
  102285. return *this;
  102286. }
  102287. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR &
  102288. setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
  102289. {
  102290. pAccelerationStructures = pAccelerationStructures_;
  102291. return *this;
  102292. }
  102293. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  102294. WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures(
  102295. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
  102296. {
  102297. accelerationStructureCount = static_cast<uint32_t>( accelerationStructures_.size() );
  102298. pAccelerationStructures = accelerationStructures_.data();
  102299. return *this;
  102300. }
  102301. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  102302. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  102303. operator VkWriteDescriptorSetAccelerationStructureKHR const &() const VULKAN_HPP_NOEXCEPT
  102304. {
  102305. return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR *>( this );
  102306. }
  102307. operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT
  102308. {
  102309. return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR *>( this );
  102310. }
  102311. #if defined( VULKAN_HPP_USE_REFLECT )
  102312. # if 14 <= VULKAN_HPP_CPP_VERSION
  102313. auto
  102314. # else
  102315. std::
  102316. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * const &>
  102317. # endif
  102318. reflect() const VULKAN_HPP_NOEXCEPT
  102319. {
  102320. return std::tie( sType, pNext, accelerationStructureCount, pAccelerationStructures );
  102321. }
  102322. #endif
  102323. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  102324. auto operator<=>( WriteDescriptorSetAccelerationStructureKHR const & ) const = default;
  102325. #else
  102326. bool operator==( WriteDescriptorSetAccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  102327. {
  102328. # if defined( VULKAN_HPP_USE_REFLECT )
  102329. return this->reflect() == rhs.reflect();
  102330. # else
  102331. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructureCount == rhs.accelerationStructureCount ) &&
  102332. ( pAccelerationStructures == rhs.pAccelerationStructures );
  102333. # endif
  102334. }
  102335. bool operator!=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  102336. {
  102337. return !operator==( rhs );
  102338. }
  102339. #endif
  102340. public:
  102341. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureKHR;
  102342. const void * pNext = {};
  102343. uint32_t accelerationStructureCount = {};
  102344. const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures = {};
  102345. };
  102346. template <>
  102347. struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureKHR>
  102348. {
  102349. using Type = WriteDescriptorSetAccelerationStructureKHR;
  102350. };
  102351. struct WriteDescriptorSetAccelerationStructureNV
  102352. {
  102353. using NativeType = VkWriteDescriptorSetAccelerationStructureNV;
  102354. static const bool allowDuplicate = false;
  102355. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureNV;
  102356. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  102357. VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( uint32_t accelerationStructureCount_ = {},
  102358. const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures_ = {},
  102359. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  102360. : pNext( pNext_ )
  102361. , accelerationStructureCount( accelerationStructureCount_ )
  102362. , pAccelerationStructures( pAccelerationStructures_ )
  102363. {
  102364. }
  102365. VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102366. WriteDescriptorSetAccelerationStructureNV( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT
  102367. : WriteDescriptorSetAccelerationStructureNV( *reinterpret_cast<WriteDescriptorSetAccelerationStructureNV const *>( &rhs ) )
  102368. {
  102369. }
  102370. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  102371. WriteDescriptorSetAccelerationStructureNV(
  102372. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures_,
  102373. const void * pNext_ = nullptr )
  102374. : pNext( pNext_ )
  102375. , accelerationStructureCount( static_cast<uint32_t>( accelerationStructures_.size() ) )
  102376. , pAccelerationStructures( accelerationStructures_.data() )
  102377. {
  102378. }
  102379. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  102380. WriteDescriptorSetAccelerationStructureNV & operator=( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102381. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  102382. WriteDescriptorSetAccelerationStructureNV & operator=( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT
  102383. {
  102384. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV const *>( &rhs );
  102385. return *this;
  102386. }
  102387. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  102388. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  102389. {
  102390. pNext = pNext_;
  102391. return *this;
  102392. }
  102393. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV &
  102394. setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT
  102395. {
  102396. accelerationStructureCount = accelerationStructureCount_;
  102397. return *this;
  102398. }
  102399. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV &
  102400. setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT
  102401. {
  102402. pAccelerationStructures = pAccelerationStructures_;
  102403. return *this;
  102404. }
  102405. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  102406. WriteDescriptorSetAccelerationStructureNV & setAccelerationStructures(
  102407. VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT
  102408. {
  102409. accelerationStructureCount = static_cast<uint32_t>( accelerationStructures_.size() );
  102410. pAccelerationStructures = accelerationStructures_.data();
  102411. return *this;
  102412. }
  102413. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  102414. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  102415. operator VkWriteDescriptorSetAccelerationStructureNV const &() const VULKAN_HPP_NOEXCEPT
  102416. {
  102417. return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV *>( this );
  102418. }
  102419. operator VkWriteDescriptorSetAccelerationStructureNV &() VULKAN_HPP_NOEXCEPT
  102420. {
  102421. return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV *>( this );
  102422. }
  102423. #if defined( VULKAN_HPP_USE_REFLECT )
  102424. # if 14 <= VULKAN_HPP_CPP_VERSION
  102425. auto
  102426. # else
  102427. std::
  102428. tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * const &>
  102429. # endif
  102430. reflect() const VULKAN_HPP_NOEXCEPT
  102431. {
  102432. return std::tie( sType, pNext, accelerationStructureCount, pAccelerationStructures );
  102433. }
  102434. #endif
  102435. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  102436. auto operator<=>( WriteDescriptorSetAccelerationStructureNV const & ) const = default;
  102437. #else
  102438. bool operator==( WriteDescriptorSetAccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  102439. {
  102440. # if defined( VULKAN_HPP_USE_REFLECT )
  102441. return this->reflect() == rhs.reflect();
  102442. # else
  102443. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructureCount == rhs.accelerationStructureCount ) &&
  102444. ( pAccelerationStructures == rhs.pAccelerationStructures );
  102445. # endif
  102446. }
  102447. bool operator!=( WriteDescriptorSetAccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT
  102448. {
  102449. return !operator==( rhs );
  102450. }
  102451. #endif
  102452. public:
  102453. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureNV;
  102454. const void * pNext = {};
  102455. uint32_t accelerationStructureCount = {};
  102456. const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures = {};
  102457. };
  102458. template <>
  102459. struct CppType<StructureType, StructureType::eWriteDescriptorSetAccelerationStructureNV>
  102460. {
  102461. using Type = WriteDescriptorSetAccelerationStructureNV;
  102462. };
  102463. struct WriteDescriptorSetInlineUniformBlock
  102464. {
  102465. using NativeType = VkWriteDescriptorSetInlineUniformBlock;
  102466. static const bool allowDuplicate = false;
  102467. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetInlineUniformBlock;
  102468. #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  102469. VULKAN_HPP_CONSTEXPR
  102470. WriteDescriptorSetInlineUniformBlock( uint32_t dataSize_ = {}, const void * pData_ = {}, const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  102471. : pNext( pNext_ )
  102472. , dataSize( dataSize_ )
  102473. , pData( pData_ )
  102474. {
  102475. }
  102476. VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlock( WriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102477. WriteDescriptorSetInlineUniformBlock( VkWriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT
  102478. : WriteDescriptorSetInlineUniformBlock( *reinterpret_cast<WriteDescriptorSetInlineUniformBlock const *>( &rhs ) )
  102479. {
  102480. }
  102481. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  102482. template <typename T>
  102483. WriteDescriptorSetInlineUniformBlock( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_, const void * pNext_ = nullptr )
  102484. : pNext( pNext_ ), dataSize( static_cast<uint32_t>( data_.size() * sizeof( T ) ) ), pData( data_.data() )
  102485. {
  102486. }
  102487. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  102488. WriteDescriptorSetInlineUniformBlock & operator=( WriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102489. #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  102490. WriteDescriptorSetInlineUniformBlock & operator=( VkWriteDescriptorSetInlineUniformBlock const & rhs ) VULKAN_HPP_NOEXCEPT
  102491. {
  102492. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock const *>( &rhs );
  102493. return *this;
  102494. }
  102495. #if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  102496. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlock & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  102497. {
  102498. pNext = pNext_;
  102499. return *this;
  102500. }
  102501. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlock & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT
  102502. {
  102503. dataSize = dataSize_;
  102504. return *this;
  102505. }
  102506. VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlock & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT
  102507. {
  102508. pData = pData_;
  102509. return *this;
  102510. }
  102511. # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  102512. template <typename T>
  102513. WriteDescriptorSetInlineUniformBlock & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const T> const & data_ ) VULKAN_HPP_NOEXCEPT
  102514. {
  102515. dataSize = static_cast<uint32_t>( data_.size() * sizeof( T ) );
  102516. pData = data_.data();
  102517. return *this;
  102518. }
  102519. # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  102520. #endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  102521. operator VkWriteDescriptorSetInlineUniformBlock const &() const VULKAN_HPP_NOEXCEPT
  102522. {
  102523. return *reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlock *>( this );
  102524. }
  102525. operator VkWriteDescriptorSetInlineUniformBlock &() VULKAN_HPP_NOEXCEPT
  102526. {
  102527. return *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlock *>( this );
  102528. }
  102529. #if defined( VULKAN_HPP_USE_REFLECT )
  102530. # if 14 <= VULKAN_HPP_CPP_VERSION
  102531. auto
  102532. # else
  102533. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const void * const &>
  102534. # endif
  102535. reflect() const VULKAN_HPP_NOEXCEPT
  102536. {
  102537. return std::tie( sType, pNext, dataSize, pData );
  102538. }
  102539. #endif
  102540. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  102541. auto operator<=>( WriteDescriptorSetInlineUniformBlock const & ) const = default;
  102542. #else
  102543. bool operator==( WriteDescriptorSetInlineUniformBlock const & rhs ) const VULKAN_HPP_NOEXCEPT
  102544. {
  102545. # if defined( VULKAN_HPP_USE_REFLECT )
  102546. return this->reflect() == rhs.reflect();
  102547. # else
  102548. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dataSize == rhs.dataSize ) && ( pData == rhs.pData );
  102549. # endif
  102550. }
  102551. bool operator!=( WriteDescriptorSetInlineUniformBlock const & rhs ) const VULKAN_HPP_NOEXCEPT
  102552. {
  102553. return !operator==( rhs );
  102554. }
  102555. #endif
  102556. public:
  102557. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlock;
  102558. const void * pNext = {};
  102559. uint32_t dataSize = {};
  102560. const void * pData = {};
  102561. };
  102562. template <>
  102563. struct CppType<StructureType, StructureType::eWriteDescriptorSetInlineUniformBlock>
  102564. {
  102565. using Type = WriteDescriptorSetInlineUniformBlock;
  102566. };
  102567. using WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock;
  102568. #if defined( VK_USE_PLATFORM_XCB_KHR )
  102569. struct XcbSurfaceCreateInfoKHR
  102570. {
  102571. using NativeType = VkXcbSurfaceCreateInfoKHR;
  102572. static const bool allowDuplicate = false;
  102573. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXcbSurfaceCreateInfoKHR;
  102574. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  102575. VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {},
  102576. xcb_connection_t * connection_ = {},
  102577. xcb_window_t window_ = {},
  102578. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  102579. : pNext( pNext_ )
  102580. , flags( flags_ )
  102581. , connection( connection_ )
  102582. , window( window_ )
  102583. {
  102584. }
  102585. VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102586. XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  102587. : XcbSurfaceCreateInfoKHR( *reinterpret_cast<XcbSurfaceCreateInfoKHR const *>( &rhs ) )
  102588. {
  102589. }
  102590. XcbSurfaceCreateInfoKHR & operator=( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102591. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  102592. XcbSurfaceCreateInfoKHR & operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  102593. {
  102594. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const *>( &rhs );
  102595. return *this;
  102596. }
  102597. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  102598. VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  102599. {
  102600. pNext = pNext_;
  102601. return *this;
  102602. }
  102603. VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  102604. {
  102605. flags = flags_;
  102606. return *this;
  102607. }
  102608. VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t * connection_ ) VULKAN_HPP_NOEXCEPT
  102609. {
  102610. connection = connection_;
  102611. return *this;
  102612. }
  102613. VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT
  102614. {
  102615. window = window_;
  102616. return *this;
  102617. }
  102618. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  102619. operator VkXcbSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  102620. {
  102621. return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( this );
  102622. }
  102623. operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  102624. {
  102625. return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR *>( this );
  102626. }
  102627. # if defined( VULKAN_HPP_USE_REFLECT )
  102628. # if 14 <= VULKAN_HPP_CPP_VERSION
  102629. auto
  102630. # else
  102631. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  102632. const void * const &,
  102633. VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR const &,
  102634. xcb_connection_t * const &,
  102635. xcb_window_t const &>
  102636. # endif
  102637. reflect() const VULKAN_HPP_NOEXCEPT
  102638. {
  102639. return std::tie( sType, pNext, flags, connection, window );
  102640. }
  102641. # endif
  102642. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  102643. std::strong_ordering operator<=>( XcbSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  102644. {
  102645. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  102646. return cmp;
  102647. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  102648. return cmp;
  102649. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  102650. return cmp;
  102651. if ( auto cmp = connection <=> rhs.connection; cmp != 0 )
  102652. return cmp;
  102653. if ( auto cmp = memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ); cmp != 0 )
  102654. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  102655. return std::strong_ordering::equivalent;
  102656. }
  102657. # endif
  102658. bool operator==( XcbSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  102659. {
  102660. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( connection == rhs.connection ) &&
  102661. ( memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ) == 0 );
  102662. }
  102663. bool operator!=( XcbSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  102664. {
  102665. return !operator==( rhs );
  102666. }
  102667. public:
  102668. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR;
  102669. const void * pNext = {};
  102670. VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {};
  102671. xcb_connection_t * connection = {};
  102672. xcb_window_t window = {};
  102673. };
  102674. template <>
  102675. struct CppType<StructureType, StructureType::eXcbSurfaceCreateInfoKHR>
  102676. {
  102677. using Type = XcbSurfaceCreateInfoKHR;
  102678. };
  102679. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  102680. #if defined( VK_USE_PLATFORM_XLIB_KHR )
  102681. struct XlibSurfaceCreateInfoKHR
  102682. {
  102683. using NativeType = VkXlibSurfaceCreateInfoKHR;
  102684. static const bool allowDuplicate = false;
  102685. static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXlibSurfaceCreateInfoKHR;
  102686. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  102687. VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {},
  102688. Display * dpy_ = {},
  102689. Window window_ = {},
  102690. const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
  102691. : pNext( pNext_ )
  102692. , flags( flags_ )
  102693. , dpy( dpy_ )
  102694. , window( window_ )
  102695. {
  102696. }
  102697. VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102698. XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  102699. : XlibSurfaceCreateInfoKHR( *reinterpret_cast<XlibSurfaceCreateInfoKHR const *>( &rhs ) )
  102700. {
  102701. }
  102702. XlibSurfaceCreateInfoKHR & operator=( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  102703. # endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
  102704. XlibSurfaceCreateInfoKHR & operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
  102705. {
  102706. *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const *>( &rhs );
  102707. return *this;
  102708. }
  102709. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  102710. VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
  102711. {
  102712. pNext = pNext_;
  102713. return *this;
  102714. }
  102715. VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT
  102716. {
  102717. flags = flags_;
  102718. return *this;
  102719. }
  102720. VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setDpy( Display * dpy_ ) VULKAN_HPP_NOEXCEPT
  102721. {
  102722. dpy = dpy_;
  102723. return *this;
  102724. }
  102725. VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT
  102726. {
  102727. window = window_;
  102728. return *this;
  102729. }
  102730. # endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
  102731. operator VkXlibSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT
  102732. {
  102733. return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( this );
  102734. }
  102735. operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT
  102736. {
  102737. return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR *>( this );
  102738. }
  102739. # if defined( VULKAN_HPP_USE_REFLECT )
  102740. # if 14 <= VULKAN_HPP_CPP_VERSION
  102741. auto
  102742. # else
  102743. std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
  102744. const void * const &,
  102745. VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR const &,
  102746. Display * const &,
  102747. Window const &>
  102748. # endif
  102749. reflect() const VULKAN_HPP_NOEXCEPT
  102750. {
  102751. return std::tie( sType, pNext, flags, dpy, window );
  102752. }
  102753. # endif
  102754. # if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  102755. std::strong_ordering operator<=>( XlibSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  102756. {
  102757. if ( auto cmp = sType <=> rhs.sType; cmp != 0 )
  102758. return cmp;
  102759. if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 )
  102760. return cmp;
  102761. if ( auto cmp = flags <=> rhs.flags; cmp != 0 )
  102762. return cmp;
  102763. if ( auto cmp = dpy <=> rhs.dpy; cmp != 0 )
  102764. return cmp;
  102765. if ( auto cmp = memcmp( &window, &rhs.window, sizeof( Window ) ); cmp != 0 )
  102766. return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater;
  102767. return std::strong_ordering::equivalent;
  102768. }
  102769. # endif
  102770. bool operator==( XlibSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  102771. {
  102772. return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dpy == rhs.dpy ) &&
  102773. ( memcmp( &window, &rhs.window, sizeof( Window ) ) == 0 );
  102774. }
  102775. bool operator!=( XlibSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
  102776. {
  102777. return !operator==( rhs );
  102778. }
  102779. public:
  102780. VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR;
  102781. const void * pNext = {};
  102782. VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {};
  102783. Display * dpy = {};
  102784. Window window = {};
  102785. };
  102786. template <>
  102787. struct CppType<StructureType, StructureType::eXlibSurfaceCreateInfoKHR>
  102788. {
  102789. using Type = XlibSurfaceCreateInfoKHR;
  102790. };
  102791. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  102792. } // namespace VULKAN_HPP_NAMESPACE
  102793. #endif